oceanbase

Форк
0
3709 строк · 234.7 Кб
1
drop table if exists t1,t2;
2
explain_protocol: 1
3
result_format: 4
4
alter system set ob_enable_batched_multi_statement=true;
5
create table t1 (a int auto_increment , primary key (a));
6
EXPLAIN BASIC insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
7
Query Plan
8
============================
9
|ID|OPERATOR          |NAME|
10
----------------------------
11
|0 |DISTRIBUTED INSERT|    |
12
|1 |└─EXPRESSION      |    |
13
============================
14
Outputs & filters:
15
-------------------------------------
16
  0 - output(nil), filter(nil)
17
      columns([{t1: ({t1: (t1.a)})}]), 
18
      column_values([column_conv(INT,PS:(11,0),NOT NULL,t1.a.nextval(column_conv(INT,PS:(11,0),NOT NULL,__values.a)))])
19
  1 - output([__values.a]), filter(nil)
20
      values({NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
21
       {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL})
22
insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
23
EXPLAIN BASIC update t1 set a=a+10 where a > 34;
24
Query Plan
25
============================
26
|ID|OPERATOR          |NAME|
27
----------------------------
28
|0 |UPDATE            |    |
29
|1 |└─TABLE RANGE SCAN|t1  |
30
============================
31
Outputs & filters:
32
-------------------------------------
33
  0 - output(nil), filter(nil)
34
      table_columns([{t1: ({t1: (t1.a)})}]),
35
      update([t1.a=column_conv(INT,PS:(11,0),NOT NULL,cast(t1.a + 10, INT(-1, 0)))])
36
  1 - output([t1.a]), filter(nil), rowset=16
37
      access([t1.a]), partitions(p0)
38
      is_index_back=false, is_global_index=false, 
39
      range_key([t1.a]), range(34 ; MAX), 
40
      range_cond([t1.a > 34])
41
update t1 set a=a+10 where a > 34;
42
EXPLAIN BASIC update t1 set a=a+100 where a > 0;
43
Query Plan
44
============================
45
|ID|OPERATOR          |NAME|
46
----------------------------
47
|0 |UPDATE            |    |
48
|1 |└─TABLE RANGE SCAN|t1  |
49
============================
50
Outputs & filters:
51
-------------------------------------
52
  0 - output(nil), filter(nil)
53
      table_columns([{t1: ({t1: (t1.a)})}]),
54
      update([t1.a=column_conv(INT,PS:(11,0),NOT NULL,cast(t1.a + 100, INT(-1, 0)))])
55
  1 - output([t1.a]), filter(nil), rowset=256
56
      access([t1.a]), partitions(p0)
57
      is_index_back=false, is_global_index=false, 
58
      range_key([t1.a]), range(0 ; MAX), 
59
      range_cond([t1.a > 0])
60
update t1 set a=a+100 where a > 0;
61

62
EXPLAIN BASIC update t1 set a=a+100 where a=1 and a=2;
63
Query Plan
64
============================
65
|ID|OPERATOR          |NAME|
66
----------------------------
67
|0 |UPDATE            |    |
68
|1 |└─TABLE RANGE SCAN|t1  |
69
============================
70
Outputs & filters:
71
-------------------------------------
72
  0 - output(nil), filter(nil)
73
      table_columns([{t1: ({t1: (t1.a)})}]),
74
      update([t1.a=column_conv(INT,PS:(11,0),NOT NULL,cast(cast(1, INT(11, 0)) + 100, INT(-1, 0)))])
75
  1 - output([t1.a]), filter(nil), rowset=16
76
      access([t1.a]), partitions(p0)
77
      is_index_back=false, is_global_index=false, 
78
      range_key([t1.a]), range(MAX ; MIN)always false, 
79
      range_cond([t1.a = 1], [t1.a = 2])
80
update t1 set a=a+100 where a=1 and a=2;
81
update t1 set a=b+100 where a=1 and a=2;
82
ERROR 42S22: Unknown column 'b' in 'field list'
83
update t1 set a=b+100 where c=1 and a=2;
84
ERROR 42S22: Unknown column 'b' in 'field list'
85
update t1 set d=a+100 where a=1;
86
ERROR 42S22: Unknown column 'd' in 'field list'
87
EXPLAIN BASIC select * from t1;
88
Query Plan
89
=========================
90
|ID|OPERATOR       |NAME|
91
-------------------------
92
|0 |TABLE FULL SCAN|t1  |
93
=========================
94
Outputs & filters:
95
-------------------------------------
96
  0 - output([t1.a]), filter(nil), rowset=256
97
      access([t1.a]), partitions(p0)
98
      is_index_back=false, is_global_index=false, 
99
      range_key([t1.a]), range(MIN ; MAX)always true
100
select * from t1;
101
+-----+
102
| a   |
103
+-----+
104
| 101 |
105
| 102 |
106
| 103 |
107
| 104 |
108
| 105 |
109
| 106 |
110
| 107 |
111
| 108 |
112
| 109 |
113
| 110 |
114
| 111 |
115
| 112 |
116
| 113 |
117
| 114 |
118
| 115 |
119
| 116 |
120
| 117 |
121
| 118 |
122
| 119 |
123
| 120 |
124
| 121 |
125
| 122 |
126
| 123 |
127
| 124 |
128
| 125 |
129
| 126 |
130
| 127 |
131
| 128 |
132
| 129 |
133
| 130 |
134
| 131 |
135
| 132 |
136
| 133 |
137
| 134 |
138
| 145 |
139
| 146 |
140
+-----+
141
drop table t1;
142

143
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
144
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2);
145
Query Plan
146
============================
147
|ID|OPERATOR          |NAME|
148
----------------------------
149
|0 |DISTRIBUTED INSERT|    |
150
|1 |└─EXPRESSION      |    |
151
============================
152
Outputs & filters:
153
-------------------------------------
154
  0 - output(nil), filter(nil)
155
      columns([{t1: ({t1: (t1.a, t1.b)})}]), 
156
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
157
  1 - output([__values.a], [__values.b]), filter(nil)
158
      values({1, 1}, {2, 2})
159
insert into t1 values(1, 1), (2, 2);
160
EXPLAIN BASIC update t1 set b=b+1 where a>0;
161
Query Plan
162
=======================================
163
|ID|OPERATOR                 |NAME    |
164
---------------------------------------
165
|0 |PX COORDINATOR           |        |
166
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
167
|2 |  └─PX PARTITION ITERATOR|        |
168
|3 |    └─UPDATE             |        |
169
|4 |      └─TABLE RANGE SCAN |t1      |
170
=======================================
171
Outputs & filters:
172
-------------------------------------
173
  0 - output(nil), filter(nil), rowset=16
174
  1 - output(nil), filter(nil), rowset=16
175
      dop=1
176
  2 - output(nil), filter(nil), rowset=16
177
      partition wise, force partition granule
178
  3 - output(nil), filter(nil)
179
      table_columns([{t1: ({t1: (t1.a, t1.b)})}]),
180
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
181
  4 - output([t1.a], [t1.b]), filter(nil), rowset=16
182
      access([t1.a], [t1.b]), partitions(p[0-2])
183
      is_index_back=false, is_global_index=false, 
184
      range_key([t1.a]), range(0 ; MAX), 
185
      range_cond([t1.a > 0])
186
update t1 set b=b+1 where a>0;
187
EXPLAIN BASIC select * from t1;
188
Query Plan
189
=======================================
190
|ID|OPERATOR                 |NAME    |
191
---------------------------------------
192
|0 |PX COORDINATOR           |        |
193
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
194
|2 |  └─PX PARTITION ITERATOR|        |
195
|3 |    └─TABLE FULL SCAN    |t1      |
196
=======================================
197
Outputs & filters:
198
-------------------------------------
199
  0 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
200
  1 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
201
      dop=1
202
  2 - output([t1.a], [t1.b]), filter(nil), rowset=16
203
      force partition granule
204
  3 - output([t1.a], [t1.b]), filter(nil), rowset=16
205
      access([t1.a], [t1.b]), partitions(p[0-2])
206
      is_index_back=false, is_global_index=false, 
207
      range_key([t1.a]), range(MIN ; MAX)always true
208
select * from t1;
209
+---+------+
210
| a | b    |
211
+---+------+
212
| 1 |    2 |
213
| 2 |    3 |
214
+---+------+
215
drop table t1;
216

217
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
218
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
219
Query Plan
220
============================
221
|ID|OPERATOR          |NAME|
222
----------------------------
223
|0 |DISTRIBUTED INSERT|    |
224
|1 |└─EXPRESSION      |    |
225
============================
226
Outputs & filters:
227
-------------------------------------
228
  0 - output(nil), filter(nil)
229
      columns([{t1: ({t1: (t1.a, t1.b)})}]), 
230
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
231
  1 - output([__values.a], [__values.b]), filter(nil)
232
      values({1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5})
233
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
234
EXPLAIN BASIC update t1 set b=b+1 where a>0;
235
Query Plan
236
=======================================
237
|ID|OPERATOR                 |NAME    |
238
---------------------------------------
239
|0 |PX COORDINATOR           |        |
240
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
241
|2 |  └─PX PARTITION ITERATOR|        |
242
|3 |    └─UPDATE             |        |
243
|4 |      └─TABLE RANGE SCAN |t1      |
244
=======================================
245
Outputs & filters:
246
-------------------------------------
247
  0 - output(nil), filter(nil), rowset=16
248
  1 - output(nil), filter(nil), rowset=16
249
      dop=1
250
  2 - output(nil), filter(nil), rowset=16
251
      partition wise, force partition granule
252
  3 - output(nil), filter(nil)
253
      table_columns([{t1: ({t1: (t1.a, t1.b)})}]),
254
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
255
  4 - output([t1.a], [t1.b]), filter(nil), rowset=16
256
      access([t1.a], [t1.b]), partitions(p[0-2])
257
      is_index_back=false, is_global_index=false, 
258
      range_key([t1.a]), range(0 ; MAX), 
259
      range_cond([t1.a > 0])
260
update t1 set b=b+1 where a>0;
261
EXPLAIN BASIC select * from t1;
262
Query Plan
263
=======================================
264
|ID|OPERATOR                 |NAME    |
265
---------------------------------------
266
|0 |PX COORDINATOR           |        |
267
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
268
|2 |  └─PX PARTITION ITERATOR|        |
269
|3 |    └─TABLE FULL SCAN    |t1      |
270
=======================================
271
Outputs & filters:
272
-------------------------------------
273
  0 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
274
  1 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
275
      dop=1
276
  2 - output([t1.a], [t1.b]), filter(nil), rowset=16
277
      force partition granule
278
  3 - output([t1.a], [t1.b]), filter(nil), rowset=16
279
      access([t1.a], [t1.b]), partitions(p[0-2])
280
      is_index_back=false, is_global_index=false, 
281
      range_key([t1.a]), range(MIN ; MAX)always true
282
select * from t1;
283
+---+------+
284
| a | b    |
285
+---+------+
286
| 3 |    4 |
287
| 1 |    2 |
288
| 4 |    5 |
289
| 2 |    3 |
290
| 5 |    6 |
291
+---+------+
292
drop table t1;
293

294
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
295
create index gkey on t1(b) global;
296
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2);
297
Query Plan
298
============================
299
|ID|OPERATOR          |NAME|
300
----------------------------
301
|0 |DISTRIBUTED INSERT|    |
302
|1 |└─EXPRESSION      |    |
303
============================
304
Outputs & filters:
305
-------------------------------------
306
  0 - output(nil), filter(nil)
307
      columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]), 
308
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
309
  1 - output([__values.a], [__values.b]), filter(nil)
310
      values({1, 1}, {2, 2})
311
insert into t1 values(1, 1), (2, 2);
312
EXPLAIN BASIC update t1 set b=b+1 where a>0;
313
Query Plan
314
=========================================
315
|ID|OPERATOR                   |NAME    |
316
-----------------------------------------
317
|0 |DISTRIBUTED UPDATE         |        |
318
|1 |└─PX COORDINATOR           |        |
319
|2 |  └─EXCHANGE OUT DISTR     |:EX10000|
320
|3 |    └─PX PARTITION ITERATOR|        |
321
|4 |      └─TABLE RANGE SCAN   |t1      |
322
=========================================
323
Outputs & filters:
324
-------------------------------------
325
  0 - output(nil), filter(nil)
326
      table_columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]),
327
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
328
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
329
  2 - output([t1.a], [t1.b]), filter(nil), rowset=16
330
      dop=1
331
  3 - output([t1.a], [t1.b]), filter(nil), rowset=16
332
      force partition granule
333
  4 - output([t1.a], [t1.b]), filter(nil), rowset=16
334
      access([t1.a], [t1.b]), partitions(p[0-2])
335
      is_index_back=false, is_global_index=false, 
336
      range_key([t1.a]), range(0 ; MAX), 
337
      range_cond([t1.a > 0])
338
update t1 set b=b+1 where a>0;
339
EXPLAIN BASIC select * from t1;
340
Query Plan
341
=========================================
342
|ID|OPERATOR                   |NAME    |
343
-----------------------------------------
344
|0 |DISTRIBUTED TABLE FULL SCAN|t1(gkey)|
345
=========================================
346
Outputs & filters:
347
-------------------------------------
348
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
349
      access([t1.a], [t1.b]), partitions(p0)
350
      is_index_back=false, is_global_index=true, 
351
      range_key([t1.b], [t1.a]), range(MIN,MIN ; MAX,MAX)always true
352
select * from t1;
353
+---+------+
354
| a | b    |
355
+---+------+
356
| 1 |    2 |
357
| 2 |    3 |
358
+---+------+
359
drop table t1;
360

361
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
362
create index gkey on t1(b) global;
363
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
364
Query Plan
365
============================
366
|ID|OPERATOR          |NAME|
367
----------------------------
368
|0 |DISTRIBUTED INSERT|    |
369
|1 |└─EXPRESSION      |    |
370
============================
371
Outputs & filters:
372
-------------------------------------
373
  0 - output(nil), filter(nil)
374
      columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]), 
375
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
376
  1 - output([__values.a], [__values.b]), filter(nil)
377
      values({1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5})
378
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
379
EXPLAIN BASIC update t1 set b=b+1 where a>0;
380
Query Plan
381
=========================================
382
|ID|OPERATOR                   |NAME    |
383
-----------------------------------------
384
|0 |DISTRIBUTED UPDATE         |        |
385
|1 |└─PX COORDINATOR           |        |
386
|2 |  └─EXCHANGE OUT DISTR     |:EX10000|
387
|3 |    └─PX PARTITION ITERATOR|        |
388
|4 |      └─TABLE RANGE SCAN   |t1      |
389
=========================================
390
Outputs & filters:
391
-------------------------------------
392
  0 - output(nil), filter(nil)
393
      table_columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]),
394
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
395
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
396
  2 - output([t1.a], [t1.b]), filter(nil), rowset=16
397
      dop=1
398
  3 - output([t1.a], [t1.b]), filter(nil), rowset=16
399
      force partition granule
400
  4 - output([t1.a], [t1.b]), filter(nil), rowset=16
401
      access([t1.a], [t1.b]), partitions(p[0-2])
402
      is_index_back=false, is_global_index=false, 
403
      range_key([t1.a]), range(0 ; MAX), 
404
      range_cond([t1.a > 0])
405
update t1 set b=b+1 where a>0;
406
EXPLAIN BASIC select * from t1;
407
Query Plan
408
=========================================
409
|ID|OPERATOR                   |NAME    |
410
-----------------------------------------
411
|0 |DISTRIBUTED TABLE FULL SCAN|t1(gkey)|
412
=========================================
413
Outputs & filters:
414
-------------------------------------
415
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
416
      access([t1.a], [t1.b]), partitions(p0)
417
      is_index_back=false, is_global_index=true, 
418
      range_key([t1.b], [t1.a]), range(MIN,MIN ; MAX,MAX)always true
419
select * from t1;
420
+---+------+
421
| a | b    |
422
+---+------+
423
| 1 |    2 |
424
| 2 |    3 |
425
| 3 |    4 |
426
| 4 |    5 |
427
| 5 |    6 |
428
+---+------+
429
drop table t1;
430

431
create table t1(a int primary key, b int);
432
create index gkey on t1(b) partition by hash(b) partitions 2;
433
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
434
Query Plan
435
============================
436
|ID|OPERATOR          |NAME|
437
----------------------------
438
|0 |DISTRIBUTED INSERT|    |
439
|1 |└─EXPRESSION      |    |
440
============================
441
Outputs & filters:
442
-------------------------------------
443
  0 - output(nil), filter(nil)
444
      columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]), 
445
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
446
  1 - output([__values.a], [__values.b]), filter(nil)
447
      values({1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5})
448
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
449
EXPLAIN BASIC update /*+index(t1 gkey)*/ t1 set b=b+1 where b>0 and b<5;
450
Query Plan
451
============================================
452
|ID|OPERATOR                      |NAME    |
453
--------------------------------------------
454
|0 |DISTRIBUTED UPDATE            |        |
455
|1 |└─DISTRIBUTED TABLE RANGE SCAN|t1(gkey)|
456
============================================
457
Outputs & filters:
458
-------------------------------------
459
  0 - output(nil), filter(nil)
460
      table_columns([{t1: ({t1: (t1.a, t1.b)}, {gkey: (t1.b, t1.a)})}]),
461
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
462
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
463
      access([t1.a], [t1.b]), partitions(p[0-1])
464
      is_index_back=false, is_global_index=true, 
465
      range_key([t1.b], [t1.a]), range(0,MAX ; 5,MIN), 
466
      range_cond([t1.b > 0], [t1.b < 5])
467
update /*+index(t1 gkey)*/ t1 set b=b+1 where b>0 and b<5;
468
EXPLAIN BASIC select /*+index(t1 primary)*/ * from t1 order by a;
469
Query Plan
470
=========================
471
|ID|OPERATOR       |NAME|
472
-------------------------
473
|0 |TABLE FULL SCAN|t1  |
474
=========================
475
Outputs & filters:
476
-------------------------------------
477
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
478
      access([t1.a], [t1.b]), partitions(p0)
479
      is_index_back=false, is_global_index=false, 
480
      range_key([t1.a]), range(MIN ; MAX)always true
481
select /*+index(t1 primary)*/ * from t1 order by a;
482
+---+------+
483
| a | b    |
484
+---+------+
485
| 1 |    2 |
486
| 2 |    3 |
487
| 3 |    4 |
488
| 4 |    5 |
489
| 5 |    5 |
490
+---+------+
491
drop table t1;
492

493
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
494
create table t2(a int primary key, b int) partition by hash(a) partitions 3;
495
EXPLAIN BASIC insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
496
Query Plan
497
============================
498
|ID|OPERATOR          |NAME|
499
----------------------------
500
|0 |DISTRIBUTED INSERT|    |
501
|1 |└─EXPRESSION      |    |
502
============================
503
Outputs & filters:
504
-------------------------------------
505
  0 - output(nil), filter(nil)
506
      columns([{t1: ({t1: (t1.a, t1.b)})}]), 
507
      column_values([column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,__values.b)])
508
  1 - output([__values.a], [__values.b]), filter(nil)
509
      values({1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5})
510
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
511
EXPLAIN BASIC update /*+use_nl(t1, t2), leading(t1)*/ t1 set b=b+1 where a in (select a from t2);
512
Query Plan
513
=======================================
514
|ID|OPERATOR                 |NAME    |
515
---------------------------------------
516
|0 |PX COORDINATOR           |        |
517
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
518
|2 |  └─PX PARTITION ITERATOR|        |
519
|3 |    └─UPDATE             |        |
520
|4 |      └─NESTED-LOOP JOIN |        |
521
|5 |        ├─TABLE FULL SCAN|t1      |
522
|6 |        └─TABLE GET      |t2      |
523
=======================================
524
Outputs & filters:
525
-------------------------------------
526
  0 - output(nil), filter(nil), rowset=16
527
  1 - output(nil), filter(nil), rowset=16
528
      dop=1
529
  2 - output(nil), filter(nil), rowset=16
530
      partition wise, force partition granule
531
  3 - output(nil), filter(nil)
532
      table_columns([{t1: ({t1: (t1.a, t1.b)})}]),
533
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(t1.b + 1, INT(-1, 0)))])
534
  4 - output([t1.a], [t1.b]), filter(nil), rowset=16
535
      conds(nil), nl_params_([t1.a(:0)]), use_batch=true
536
  5 - output([t1.a], [t1.b]), filter(nil), rowset=16
537
      access([t1.a], [t1.b]), partitions(p[0-2])
538
      is_index_back=false, is_global_index=false, 
539
      range_key([t1.a]), range(MIN ; MAX)always true
540
  6 - output(nil), filter(nil), rowset=16
541
      access([GROUP_ID]), partitions(p[0-2])
542
      is_index_back=false, is_global_index=false, 
543
      range_key([t2.a]), range(MIN ; MAX), 
544
      range_cond([:0 = t2.a])
545
update /*+use_nl(t1, t2), leading(t1)*/ t1 set b=b+1 where a in (select a from t2);
546
EXPLAIN BASIC select * from t1;
547
Query Plan
548
=======================================
549
|ID|OPERATOR                 |NAME    |
550
---------------------------------------
551
|0 |PX COORDINATOR           |        |
552
|1 |└─EXCHANGE OUT DISTR     |:EX10000|
553
|2 |  └─PX PARTITION ITERATOR|        |
554
|3 |    └─TABLE FULL SCAN    |t1      |
555
=======================================
556
Outputs & filters:
557
-------------------------------------
558
  0 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
559
  1 - output([INTERNAL_FUNCTION(t1.a, t1.b)]), filter(nil), rowset=16
560
      dop=1
561
  2 - output([t1.a], [t1.b]), filter(nil), rowset=16
562
      force partition granule
563
  3 - output([t1.a], [t1.b]), filter(nil), rowset=16
564
      access([t1.a], [t1.b]), partitions(p[0-2])
565
      is_index_back=false, is_global_index=false, 
566
      range_key([t1.a]), range(MIN ; MAX)always true
567
select * from t1;
568
+---+------+
569
| a | b    |
570
+---+------+
571
| 3 |    3 |
572
| 1 |    1 |
573
| 4 |    4 |
574
| 2 |    2 |
575
| 5 |    5 |
576
+---+------+
577
drop table t1, t2;
578

579
CREATE TABLE t1
580
 (
581
 place_id int (10) unsigned NOT NULL,
582
 shows int(10) unsigned DEFAULT '0' NOT NULL,
583
 ishows int(10) unsigned DEFAULT '0' NOT NULL,
584
 ushows int(10) unsigned DEFAULT '0' NOT NULL,
585
 clicks int(10) unsigned DEFAULT '0' NOT NULL,
586
 iclicks int(10) unsigned DEFAULT '0' NOT NULL,
587
 uclicks int(10) unsigned DEFAULT '0' NOT NULL,
588
 ts timestamp,
589
 PRIMARY KEY (place_id,ts)
590
 );
591

592
EXPLAIN BASIC INSERT INTO t1 (place_id,shows,ishows,ushows,clicks,iclicks,uclicks,ts)
593
VALUES (1,0,0,0,0,0,0,20000928174434);
594
Query Plan
595
============================
596
|ID|OPERATOR          |NAME|
597
----------------------------
598
|0 |DISTRIBUTED INSERT|    |
599
|1 |└─EXPRESSION      |    |
600
============================
601
Outputs & filters:
602
-------------------------------------
603
  0 - output(nil), filter(nil)
604
      columns([{t1: ({t1: (t1.place_id, t1.ts, t1.shows, t1.ishows, t1.ushows, t1.clicks, t1.iclicks, t1.uclicks)})}]), 
605
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.place_id)], [column_conv(TIMESTAMP,PS:(19,0),NOT NULL,timestamp_nvl(__values.ts,
606
       cast(current_timestamp(), TIMESTAMP(19, 0))))], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.shows)], [column_conv(INT UNSIGNED,PS:(10,0),NOT 
607
      NULL,__values.ishows)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.ushows)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.clicks)], 
608
      [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.iclicks)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.uclicks)])
609
  1 - output([__values.place_id], [__values.shows], [__values.ishows], [__values.ushows], [__values.clicks], [__values.iclicks], [__values.uclicks], [__values.ts]), filter(nil)
610
      values({1, 0, 0, 0, 0, 0, 0, 20000928174434})
611
INSERT INTO t1 (place_id,shows,ishows,ushows,clicks,iclicks,uclicks,ts)
612
VALUES (1,0,0,0,0,0,0,20000928174434);
613
EXPLAIN BASIC UPDATE t1 SET shows=shows+1,ishows=ishows+1,ushows=ushows+1,clicks=clicks+1,iclicks=iclicks+1,uclicks=uclicks+1 WHERE place_id=1 AND ts>="2000-09-28 00:00:00";
614
Query Plan
615
============================
616
|ID|OPERATOR          |NAME|
617
----------------------------
618
|0 |UPDATE            |    |
619
|1 |└─TABLE RANGE SCAN|t1  |
620
============================
621
Outputs & filters:
622
-------------------------------------
623
  0 - output(nil), filter(nil)
624
      table_columns([{t1: ({t1: (t1.place_id, t1.ts, t1.shows, t1.ishows, t1.ushows, t1.clicks, t1.iclicks, t1.uclicks)})}]),
625
      update([t1.shows=column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.shows + 1, INT UNSIGNED(-1, 0)))], [t1.ishows=column_conv(INT UNSIGNED,PS:(10,
626
      0),NOT NULL,cast(t1.ishows + 1, INT UNSIGNED(-1, 0)))], [t1.ushows=column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.ushows + 1, INT UNSIGNED(-1, 0)))],
627
       [t1.clicks=column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.clicks + 1, INT UNSIGNED(-1, 0)))], [t1.iclicks=column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
628
      cast(t1.iclicks + 1, INT UNSIGNED(-1, 0)))], [t1.uclicks=column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.uclicks + 1, INT UNSIGNED(-1, 0)))], [t1.ts=column_conv(TIMESTAMP,
629
      PS:(19,0),NOT NULL,cast(current_timestamp(), TIMESTAMP(19, 0)))])
630
  1 - output([t1.place_id], [t1.ts], [t1.shows], [t1.ishows], [t1.ushows], [t1.clicks], [t1.iclicks], [t1.uclicks]), filter(nil), rowset=16
631
      access([t1.place_id], [t1.ts], [t1.shows], [t1.ishows], [t1.ushows], [t1.clicks], [t1.iclicks], [t1.uclicks]), partitions(p0)
632
      is_index_back=false, is_global_index=false, 
633
      range_key([t1.place_id], [t1.ts]), range[1,2000-09-27 16:00:00.000000 ; 1,MAX), 
634
      range_cond([t1.place_id = 1], [t1.ts >= cast('2000-09-28 00:00:00', TIMESTAMP(-1, -1))])
635
UPDATE t1 SET shows=shows+1,ishows=ishows+1,ushows=ushows+1,clicks=clicks+1,iclicks=iclicks+1,uclicks=uclicks+1 WHERE place_id=1 AND ts>="2000-09-28 00:00:00";
636
EXPLAIN BASIC select place_id,shows from t1;
637
Query Plan
638
=========================
639
|ID|OPERATOR       |NAME|
640
-------------------------
641
|0 |TABLE FULL SCAN|t1  |
642
=========================
643
Outputs & filters:
644
-------------------------------------
645
  0 - output([t1.place_id], [t1.shows]), filter(nil), rowset=16
646
      access([t1.place_id], [t1.shows]), partitions(p0)
647
      is_index_back=false, is_global_index=false, 
648
      range_key([t1.place_id], [t1.ts]), range(MIN,MIN ; MAX,MAX)always true
649
select place_id,shows from t1;
650
+----------+-------+
651
| place_id | shows |
652
+----------+-------+
653
|        1 |     1 |
654
+----------+-------+
655
drop table t1;
656

657
CREATE TABLE t1 (
658
  lfdnr int(10) unsigned NOT NULL default '0',
659
  ticket int(10) unsigned NOT NULL default '0',
660
  client varchar(255) NOT NULL default '',
661
  replyto varchar(255) NOT NULL default '',
662
  subject varchar(100) NOT NULL default '',
663
  timestamp int(10) unsigned NOT NULL default '0',
664
  tstamp timestamp NOT NULL,
665
  status int(3) NOT NULL default '0',
666
  type varchar(15) NOT NULL default '',
667
  assignment int(10) unsigned NOT NULL default '0',
668
  fupcount int(4) unsigned NOT NULL default '0',
669
  parent int(10) unsigned NOT NULL default '0',
670
  activity int(10) unsigned NOT NULL default '0',
671
  priority tinyint(1) unsigned NOT NULL default '1',
672
  cc varchar(255) NOT NULL default '',
673
  bcc varchar(255) NOT NULL default '',
674
  body varchar(255) NOT NULL,
675
  comment varchar(255),
676
  header varchar(255),
677
  PRIMARY KEY  (lfdnr),
678
  KEY k1 (timestamp),
679
  KEY k2 (type),
680
  KEY k3 (parent),
681
  KEY k4 (assignment),
682
  KEY ticket (ticket)
683
) ;
684

685
EXPLAIN BASIC INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
686
Query Plan
687
============================
688
|ID|OPERATOR          |NAME|
689
----------------------------
690
|0 |DISTRIBUTED INSERT|    |
691
|1 |└─EXPRESSION      |    |
692
============================
693
Outputs & filters:
694
-------------------------------------
695
  0 - output(nil), filter(nil)
696
      columns([{t1: ({t1: (t1.lfdnr, t1.ticket, t1.client, t1.replyto, t1.subject, t1.timestamp, t1.tstamp, t1.status, t1.type, t1.assignment, t1.fupcount,
697
       t1.parent, t1.activity, t1.priority, t1.cc, t1.bcc, t1.body, t1.comment, t1.header)})}]), 
698
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.lfdnr)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.ticket)], [column_conv(VARCHAR,
699
      utf8mb4_general_ci,length:255,NOT NULL,__values.client)], [column_conv(VARCHAR,utf8mb4_general_ci,length:255,NOT NULL,__values.replyto)], [column_conv(VARCHAR,
700
      utf8mb4_general_ci,length:100,NOT NULL,__values.subject)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.timestamp)], [column_conv(TIMESTAMP,PS:(19,
701
      0),NOT NULL,timestamp_nvl(__values.tstamp, cast(current_timestamp(), TIMESTAMP(19, 0))))], [column_conv(INT,PS:(3,0),NOT NULL,__values.status)], [column_conv(VARCHAR,
702
      utf8mb4_general_ci,length:15,NOT NULL,__values.type)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.assignment)], [column_conv(INT UNSIGNED,PS:(4,
703
      0),NOT NULL,__values.fupcount)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.parent)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.activity)],
704
       [column_conv(TINYINT UNSIGNED,PS:(1,0),NOT NULL,__values.priority)], [column_conv(VARCHAR,utf8mb4_general_ci,length:255,NOT NULL,__values.cc)], [column_conv(VARCHAR,
705
      utf8mb4_general_ci,length:255,NOT NULL,__values.bcc)], [column_conv(VARCHAR,utf8mb4_general_ci,length:255,NOT NULL,__values.body)], [column_conv(VARCHAR,
706
      utf8mb4_general_ci,length:255,NULL,__values.comment)], [column_conv(VARCHAR,utf8mb4_general_ci,length:255,NULL,__values.header)])
707
  1 - output([__values.lfdnr], [__values.ticket], [__values.client], [__values.replyto], [__values.subject], [__values.timestamp], [__values.tstamp], [__values.status],
708
       [__values.type], [__values.assignment], [__values.fupcount], [__values.parent], [__values.activity], [__values.priority], [__values.cc], [__values.bcc],
709
       [__values.body], [__values.comment], [__values.header]), filter(nil)
710
      values({773, 773, '', '', '', 980257344, 20010318180652, 0, 'Open', 10, 0, 0, 0, 1, '', '', '', '', ''})
711
INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
712

713
alter table t1 change lfdnr lfdnr int(10) unsigned not null auto_increment;
714
EXPLAIN BASIC update t1 set status=1 where type='Open';
715
Query Plan
716
==============================
717
|ID|OPERATOR          |NAME  |
718
------------------------------
719
|0 |UPDATE            |      |
720
|1 |└─TABLE RANGE SCAN|t1(k2)|
721
==============================
722
Outputs & filters:
723
-------------------------------------
724
  0 - output(nil), filter(nil)
725
      table_columns([{t1: ({t1: (t1.lfdnr, t1.ticket, t1.client, t1.replyto, t1.subject, t1.timestamp, t1.tstamp, t1.status, t1.type, t1.assignment, t1.fupcount,
726
       t1.parent, t1.activity, t1.priority, t1.cc, t1.bcc, t1.body, t1.comment, t1.header)})}]),
727
      update([t1.status=column_conv(INT,PS:(3,0),NOT NULL,cast(1, INT(-1, 0)))], [t1.tstamp=column_conv(TIMESTAMP,PS:(19,0),NOT NULL,cast(current_timestamp(),
728
       TIMESTAMP(19, 0)))])
729
  1 - output([t1.lfdnr], [t1.status], [t1.tstamp], [t1.ticket], [t1.client], [t1.replyto], [t1.subject], [t1.timestamp], [t1.type], [t1.assignment], [t1.fupcount],
730
       [t1.parent], [t1.activity], [t1.priority], [t1.cc], [t1.bcc], [t1.body], [t1.comment], [t1.header]), filter(nil), rowset=16
731
      access([t1.lfdnr], [t1.status], [t1.tstamp], [t1.ticket], [t1.client], [t1.replyto], [t1.subject], [t1.timestamp], [t1.type], [t1.assignment], [t1.fupcount],
732
       [t1.parent], [t1.activity], [t1.priority], [t1.cc], [t1.bcc], [t1.body], [t1.comment], [t1.header]), partitions(p0)
733
      is_index_back=true, is_global_index=false, 
734
      range_key([t1.type], [t1.lfdnr]), range(Open,MIN ; Open,MAX), 
735
      range_cond([t1.type = 'Open'])
736
update t1 set status=1 where type='Open';
737
EXPLAIN BASIC select status from t1;
738
Query Plan
739
=========================
740
|ID|OPERATOR       |NAME|
741
-------------------------
742
|0 |TABLE FULL SCAN|t1  |
743
=========================
744
Outputs & filters:
745
-------------------------------------
746
  0 - output([t1.status]), filter(nil), rowset=16
747
      access([t1.status]), partitions(p0)
748
      is_index_back=false, is_global_index=false, 
749
      range_key([t1.lfdnr]), range(MIN ; MAX)always true
750
select status from t1;
751
+--------+
752
| status |
753
+--------+
754
|      1 |
755
+--------+
756
drop table t1;
757

758
create table t1 (a int not null, b int not null, key (a));
759
EXPLAIN BASIC insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3);
760
Query Plan
761
============================
762
|ID|OPERATOR          |NAME|
763
----------------------------
764
|0 |DISTRIBUTED INSERT|    |
765
|1 |└─EXPRESSION      |    |
766
============================
767
Outputs & filters:
768
-------------------------------------
769
  0 - output(nil), filter(nil)
770
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]), 
771
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NOT NULL,__values.b)])
772
  1 - output([__values.a], [__values.b]), filter(nil)
773
      values({1, 1}, {1, 2}, {1, 3}, {3, 1}, {3, 2}, {3, 3}, {3, 1}, {3, 2}, {3, 3}, {2, 1}, {2, 2}, {2, 3})
774
insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3);
775
SET @tmp=0;
776
EXPLAIN BASIC update t1 set b=(@tmp:=@tmp+1) order by a;
777
Query Plan
778
=========================================
779
|ID|OPERATOR                       |NAME|
780
-----------------------------------------
781
|0 |DISTRIBUTED UPDATE             |    |
782
|1 |└─SORT                         |    |
783
|2 |  └─DISTRIBUTED TABLE FULL SCAN|t1  |
784
=========================================
785
Outputs & filters:
786
-------------------------------------
787
  0 - output(nil), filter(nil)
788
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
789
      update([t1.b=column_conv(INT,PS:(11,0),NOT NULL,cast((T_OP_ASSIGN, 'tmp', ('tmp') + 1), INT(-1, 0)))])
790
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil)
791
      sort_keys([t1.a, ASC])
792
  2 - output([t1.__pk_increment], [t1.b], [t1.a]), filter(nil)
793
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
794
      is_index_back=false, is_global_index=false, 
795
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
796
update t1 set b=(@tmp:=@tmp+1) order by a;
797
EXPLAIN BASIC update /*+index(t1 a)*/ t1 set b=99 where a=1 order by b asc limit 1;
798
Query Plan
799
===============================
800
|ID|OPERATOR            |NAME |
801
-------------------------------
802
|0 |UPDATE              |     |
803
|1 |└─TOP-N SORT        |     |
804
|2 |  └─TABLE RANGE SCAN|t1(a)|
805
===============================
806
Outputs & filters:
807
-------------------------------------
808
  0 - output(nil), filter(nil)
809
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
810
      update([t1.b=column_conv(INT,PS:(11,0),NOT NULL,cast(99, INT(-1, 0)))])
811
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
812
      sort_keys([t1.b, ASC]), topn(1)
813
  2 - output([t1.__pk_increment], [t1.b], [t1.a]), filter(nil), rowset=16
814
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
815
      is_index_back=true, is_global_index=false, 
816
      range_key([t1.a], [t1.__pk_increment]), range(1,MIN ; 1,MAX), 
817
      range_cond([t1.a = 1])
818
update /*+index(t1 a)*/ t1 set b=99 where a=1 order by b asc limit 1;
819
EXPLAIN BASIC select * from t1 order by a,b;
820
Query Plan
821
===========================
822
|ID|OPERATOR         |NAME|
823
---------------------------
824
|0 |SORT             |    |
825
|1 |└─TABLE FULL SCAN|t1  |
826
===========================
827
Outputs & filters:
828
-------------------------------------
829
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
830
      sort_keys([t1.a, ASC], [t1.b, ASC])
831
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
832
      access([t1.a], [t1.b]), partitions(p0)
833
      is_index_back=false, is_global_index=false, 
834
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
835
select * from t1 order by a,b;
836
+---+----+
837
| a | b  |
838
+---+----+
839
| 1 |  2 |
840
| 1 |  3 |
841
| 1 | 99 |
842
| 2 |  4 |
843
| 2 |  5 |
844
| 2 |  6 |
845
| 3 |  7 |
846
| 3 |  8 |
847
| 3 |  9 |
848
| 3 | 10 |
849
| 3 | 11 |
850
| 3 | 12 |
851
+---+----+
852
EXPLAIN BASIC update t1 set b=100 where a=1 order by b desc limit 2;
853
Query Plan
854
===============================
855
|ID|OPERATOR            |NAME |
856
-------------------------------
857
|0 |UPDATE              |     |
858
|1 |└─TOP-N SORT        |     |
859
|2 |  └─TABLE RANGE SCAN|t1(a)|
860
===============================
861
Outputs & filters:
862
-------------------------------------
863
  0 - output(nil), filter(nil)
864
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
865
      update([t1.b=column_conv(INT,PS:(11,0),NOT NULL,cast(100, INT(-1, 0)))])
866
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
867
      sort_keys([t1.b, DESC]), topn(2)
868
  2 - output([t1.__pk_increment], [t1.b], [t1.a]), filter(nil), rowset=16
869
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
870
      is_index_back=true, is_global_index=false, 
871
      range_key([t1.a], [t1.__pk_increment]), range(1,MIN ; 1,MAX), 
872
      range_cond([t1.a = 1])
873
update t1 set b=100 where a=1 order by b desc limit 2;
874
EXPLAIN BASIC update t1 set a=a+10+b where a=1 order by b;
875
Query Plan
876
===============================
877
|ID|OPERATOR            |NAME |
878
-------------------------------
879
|0 |UPDATE              |     |
880
|1 |└─SORT              |     |
881
|2 |  └─TABLE RANGE SCAN|t1(a)|
882
===============================
883
Outputs & filters:
884
-------------------------------------
885
  0 - output(nil), filter(nil)
886
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
887
      update([t1.a=column_conv(INT,PS:(11,0),NOT NULL,cast(cast(1, INT(11, 0)) + 10 + t1.b, INT(-1, 0)))])
888
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
889
      sort_keys([t1.b, ASC])
890
  2 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
891
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
892
      is_index_back=true, is_global_index=false, 
893
      range_key([t1.a], [t1.__pk_increment]), range(1,MIN ; 1,MAX), 
894
      range_cond([t1.a = 1])
895
update t1 set a=a+10+b where a=1 order by b;
896
EXPLAIN BASIC select * from t1 order by a,b;
897
Query Plan
898
===========================
899
|ID|OPERATOR         |NAME|
900
---------------------------
901
|0 |SORT             |    |
902
|1 |└─TABLE FULL SCAN|t1  |
903
===========================
904
Outputs & filters:
905
-------------------------------------
906
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
907
      sort_keys([t1.a, ASC], [t1.b, ASC])
908
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
909
      access([t1.a], [t1.b]), partitions(p0)
910
      is_index_back=false, is_global_index=false, 
911
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
912
select * from t1 order by a,b;
913
+-----+-----+
914
| a   | b   |
915
+-----+-----+
916
|   2 |   4 |
917
|   2 |   5 |
918
|   2 |   6 |
919
|   3 |   7 |
920
|   3 |   8 |
921
|   3 |   9 |
922
|   3 |  10 |
923
|   3 |  11 |
924
|   3 |  12 |
925
|  13 |   2 |
926
| 111 | 100 |
927
| 111 | 100 |
928
+-----+-----+
929
create table t2 (a int not null, b int not null);
930
EXPLAIN BASIC insert into t2 values (1,1),(1,2),(1,3);
931
Query Plan
932
============================
933
|ID|OPERATOR          |NAME|
934
----------------------------
935
|0 |DISTRIBUTED INSERT|    |
936
|1 |└─EXPRESSION      |    |
937
============================
938
Outputs & filters:
939
-------------------------------------
940
  0 - output(nil), filter(nil)
941
      columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b)})}]), 
942
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NOT NULL,__values.a)], [column_conv(INT,PS:(11,0),NOT NULL,__values.b)])
943
  1 - output([__values.a], [__values.b]), filter(nil)
944
      values({1, 1}, {1, 2}, {1, 3})
945
insert into t2 values (1,1),(1,2),(1,3);
946
EXPLAIN BASIC update t1 set b=(select distinct 1 from (select * from t2) a);
947
Query Plan
948
=============================
949
|ID|OPERATOR           |NAME|
950
-----------------------------
951
|0 |UPDATE             |    |
952
|1 |└─SUBPLAN FILTER   |    |
953
|2 |  ├─TABLE FULL SCAN|t1  |
954
|3 |  └─TABLE FULL SCAN|t2  |
955
=============================
956
Outputs & filters:
957
-------------------------------------
958
  0 - output(nil), filter(nil)
959
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
960
      update([t1.b=column_conv(INT,PS:(11,0),NOT NULL,cast(:0, INT(-1, 0)))])
961
  1 - output([t1.__pk_increment], [t1.a], [t1.b], [:0]), filter(nil), rowset=16
962
      exec_params_(nil), onetime_exprs_([subquery(1)(:0)]), init_plan_idxs_(nil), use_batch=false
963
  2 - output([t1.__pk_increment], [t1.b], [t1.a]), filter(nil), rowset=16
964
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
965
      is_index_back=false, is_global_index=false, 
966
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
967
  3 - output([1]), filter(nil), rowset=16
968
      access(nil), partitions(p0)
969
      limit(1), offset(nil), is_index_back=false, is_global_index=false, 
970
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
971
update t1 set b=(select distinct 1 from (select * from t2) a);
972
drop table t1,t2;
973

974
CREATE TABLE t1 (
975
   `id_param` smallint(3) unsigned NOT NULL default '0',
976
   `nom_option` char(40) NOT NULL default '',
977
   `valid` tinyint(1) NOT NULL default '0',
978
   KEY `id_param` (`id_param`,`nom_option`)
979
 );
980

981
EXPLAIN BASIC INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
982
Query Plan
983
============================
984
|ID|OPERATOR          |NAME|
985
----------------------------
986
|0 |DISTRIBUTED INSERT|    |
987
|1 |└─EXPRESSION      |    |
988
============================
989
Outputs & filters:
990
-------------------------------------
991
  0 - output(nil), filter(nil)
992
      columns([{t1: ({t1: (t1.__pk_increment, t1.id_param, t1.nom_option, t1.valid)})}]), 
993
      column_values([T_HIDDEN_PK], [column_conv(SMALLINT UNSIGNED,PS:(3,0),NOT NULL,__values.id_param)], [column_conv(CHAR,utf8mb4_general_ci,length:40,
994
      NOT NULL,__values.nom_option)], [column_conv(TINYINT,PS:(1,0),NOT NULL,__values.valid)])
995
  1 - output([__values.id_param], [__values.nom_option], [__values.valid]), filter(nil)
996
      values({185, '600x1200', 1})
997
INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
998

999
EXPLAIN BASIC UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
1000
Query Plan
1001
====================================
1002
|ID|OPERATOR          |NAME        |
1003
------------------------------------
1004
|0 |UPDATE            |            |
1005
|1 |└─TABLE RANGE SCAN|t1(id_param)|
1006
====================================
1007
Outputs & filters:
1008
-------------------------------------
1009
  0 - output(nil), filter(nil)
1010
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.id_param, t1.nom_option, t1.valid)})}]),
1011
      update([t1.nom_option=column_conv(CHAR,utf8mb4_general_ci,length:40,NOT NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), 'test'), CHAR(1048576)))])
1012
  1 - output([t1.__pk_increment], [t1.nom_option], [t1.id_param], [t1.valid]), filter([t1.valid = 1]), rowset=16
1013
      access([t1.__pk_increment], [t1.nom_option], [t1.id_param], [t1.valid]), partitions(p0)
1014
      limit(1), offset(nil), is_index_back=true, is_global_index=false, filter_before_indexback[false], 
1015
      range_key([t1.id_param], [t1.nom_option], [t1.__pk_increment]), range(185,600x1200,MIN ; 185,600x1200,MAX), 
1016
      range_cond([t1.id_param = 185], [t1.nom_option = '600x1200'])
1017
UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
1018
EXPLAIN BASIC select * from t1;
1019
Query Plan
1020
=========================
1021
|ID|OPERATOR       |NAME|
1022
-------------------------
1023
|0 |TABLE FULL SCAN|t1  |
1024
=========================
1025
Outputs & filters:
1026
-------------------------------------
1027
  0 - output([t1.id_param], [t1.nom_option], [t1.valid]), filter(nil), rowset=16
1028
      access([t1.id_param], [t1.nom_option], [t1.valid]), partitions(p0)
1029
      is_index_back=false, is_global_index=false, 
1030
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1031
select * from t1;
1032
+----------+------------+-------+
1033
| id_param | nom_option | valid |
1034
+----------+------------+-------+
1035
|      185 | test       |     1 |
1036
+----------+------------+-------+
1037
drop table t1;
1038

1039
create table t1 (F1 VARCHAR(30), F2 VARCHAR(30), F3 VARCHAR(30), cnt int, groupid int, KEY groupid_index (groupid));
1040

1041
EXPLAIN BASIC insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
1042
('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
1043
('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
1044
('2','2','0',1,7);
1045
Query Plan
1046
============================
1047
|ID|OPERATOR          |NAME|
1048
----------------------------
1049
|0 |DISTRIBUTED INSERT|    |
1050
|1 |└─EXPRESSION      |    |
1051
============================
1052
Outputs & filters:
1053
-------------------------------------
1054
  0 - output(nil), filter(nil)
1055
      columns([{t1: ({t1: (t1.__pk_increment, t1.F1, t1.F2, t1.F3, t1.cnt, t1.groupid)})}]), 
1056
      column_values([T_HIDDEN_PK], [column_conv(VARCHAR,utf8mb4_general_ci,length:30,NULL,__values.F1)], [column_conv(VARCHAR,utf8mb4_general_ci,length:30,
1057
      NULL,__values.F2)], [column_conv(VARCHAR,utf8mb4_general_ci,length:30,NULL,__values.F3)], [column_conv(INT,PS:(11,0),NULL,__values.cnt)], [column_conv(INT,
1058
      PS:(11,0),NULL,__values.groupid)])
1059
  1 - output([__values.F1], [__values.F2], [__values.F3], [__values.cnt], [__values.groupid]), filter(nil)
1060
      values({'0', '0', '0', 1, 6}, {'0', '1', '2', 1, 5}, {'0', '2', '0', 1, 3}, {'1', '0', '1', 1, 2}, {'1', '2', '1', 1, 1}, {'1', '2', '2', 1, 1}, {'2',
1061
       '0', '1', 2, 4}, {'2', '2', '0', 1, 7})
1062
insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
1063
('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
1064
('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
1065
('2','2','0',1,7);
1066
EXPLAIN BASIC delete from m1 using t1 m1,t1 m2 where m1.groupid=m2.groupid and (m1.cnt < m2.cnt or m1.cnt=m2.cnt and m1.F3>m2.F3);
1067
Query Plan
1068
=============================
1069
|ID|OPERATOR           |NAME|
1070
-----------------------------
1071
|0 |DELETE             |    |
1072
|1 |└─HASH JOIN        |    |
1073
|2 |  ├─TABLE FULL SCAN|m2  |
1074
|3 |  └─TABLE FULL SCAN|m1  |
1075
=============================
1076
Outputs & filters:
1077
-------------------------------------
1078
  0 - output(nil), filter(nil)
1079
      table_columns([{m1: ({t1: (m1.__pk_increment, m1.F1, m1.F2, m1.F3, m1.cnt, m1.groupid)}), hash_distinct}])
1080
  1 - output([m1.__pk_increment], [m1.F1], [m1.F2], [m1.F3], [m1.cnt], [m1.groupid]), filter(nil), rowset=16
1081
      equal_conds([m1.groupid = m2.groupid]), other_conds([m1.cnt < m2.cnt OR m1.cnt = m2.cnt AND m1.F3 > m2.F3])
1082
  2 - output([m2.groupid], [m2.cnt], [m2.F3]), filter(nil), rowset=16
1083
      access([m2.groupid], [m2.cnt], [m2.F3]), partitions(p0)
1084
      is_index_back=false, is_global_index=false, 
1085
      range_key([m2.__pk_increment]), range(MIN ; MAX)always true
1086
  3 - output([m1.__pk_increment], [m1.F1], [m1.F2], [m1.F3], [m1.cnt], [m1.groupid]), filter(nil), rowset=16
1087
      access([m1.__pk_increment], [m1.F1], [m1.F2], [m1.F3], [m1.cnt], [m1.groupid]), partitions(p0)
1088
      is_index_back=false, is_global_index=false, 
1089
      range_key([m1.__pk_increment]), range(MIN ; MAX)always true
1090
delete from m1 using t1 m1,t1 m2 where m1.groupid=m2.groupid and (m1.cnt < m2.cnt or m1.cnt=m2.cnt and m1.F3>m2.F3);
1091
EXPLAIN BASIC select * from t1;
1092
Query Plan
1093
=========================
1094
|ID|OPERATOR       |NAME|
1095
-------------------------
1096
|0 |TABLE FULL SCAN|t1  |
1097
=========================
1098
Outputs & filters:
1099
-------------------------------------
1100
  0 - output([t1.F1], [t1.F2], [t1.F3], [t1.cnt], [t1.groupid]), filter(nil), rowset=16
1101
      access([t1.F1], [t1.F2], [t1.F3], [t1.cnt], [t1.groupid]), partitions(p0)
1102
      is_index_back=false, is_global_index=false, 
1103
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1104
select * from t1;
1105
+------+------+------+------+---------+
1106
| F1   | F2   | F3   | cnt  | groupid |
1107
+------+------+------+------+---------+
1108
| 0    | 0    | 0    |    1 |       6 |
1109
| 0    | 1    | 2    |    1 |       5 |
1110
| 0    | 2    | 0    |    1 |       3 |
1111
| 1    | 0    | 1    |    1 |       2 |
1112
| 1    | 2    | 1    |    1 |       1 |
1113
| 2    | 0    | 1    |    2 |       4 |
1114
| 2    | 2    | 0    |    1 |       7 |
1115
+------+------+------+------+---------+
1116
drop table t1;
1117

1118

1119
CREATE TABLE t1 ( 
1120
   `colA` int(10) unsigned NOT NULL auto_increment,
1121
   `colB` int(11) NOT NULL default '0',
1122
   PRIMARY KEY  (`colA`)
1123
);
1124
EXPLAIN BASIC INSERT INTO t1 VALUES (4433,5424);
1125
Query Plan
1126
============================
1127
|ID|OPERATOR          |NAME|
1128
----------------------------
1129
|0 |DISTRIBUTED INSERT|    |
1130
|1 |└─EXPRESSION      |    |
1131
============================
1132
Outputs & filters:
1133
-------------------------------------
1134
  0 - output(nil), filter(nil)
1135
      columns([{t1: ({t1: (t1.colA, t1.colB)})}]), 
1136
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,t1.colA.nextval(column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)))], [column_conv(INT,
1137
      PS:(11,0),NOT NULL,__values.colB)])
1138
  1 - output([__values.colA], [__values.colB]), filter(nil)
1139
      values({4433, 5424})
1140
INSERT INTO t1 VALUES (4433,5424);
1141
CREATE TABLE t2 (
1142
  `colC` int(10) unsigned NOT NULL default '0',
1143
  `colA` int(10) unsigned NOT NULL default '0',
1144
  `colD` int(10) unsigned NOT NULL default '0',
1145
  `colE` int(10) unsigned NOT NULL default '0',
1146
  `colF` int(10) unsigned NOT NULL default '0',
1147
  PRIMARY KEY  (`colC`,`colA`,`colD`,`colE`)
1148
);
1149
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,495,500);
1150
Query Plan
1151
============================
1152
|ID|OPERATOR          |NAME|
1153
----------------------------
1154
|0 |DISTRIBUTED INSERT|    |
1155
|1 |└─EXPRESSION      |    |
1156
============================
1157
Outputs & filters:
1158
-------------------------------------
1159
  0 - output(nil), filter(nil)
1160
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1161
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1162
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1163
      __values.colF)])
1164
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1165
      values({3, 4433, 10005, 495, 500})
1166
INSERT INTO t2 VALUES (3,4433,10005,495,500);
1167
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,496,500);
1168
Query Plan
1169
============================
1170
|ID|OPERATOR          |NAME|
1171
----------------------------
1172
|0 |DISTRIBUTED INSERT|    |
1173
|1 |└─EXPRESSION      |    |
1174
============================
1175
Outputs & filters:
1176
-------------------------------------
1177
  0 - output(nil), filter(nil)
1178
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1179
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1180
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1181
      __values.colF)])
1182
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1183
      values({3, 4433, 10005, 496, 500})
1184
INSERT INTO t2 VALUES (3,4433,10005,496,500);
1185
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10009,494,500);
1186
Query Plan
1187
============================
1188
|ID|OPERATOR          |NAME|
1189
----------------------------
1190
|0 |DISTRIBUTED INSERT|    |
1191
|1 |└─EXPRESSION      |    |
1192
============================
1193
Outputs & filters:
1194
-------------------------------------
1195
  0 - output(nil), filter(nil)
1196
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1197
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1198
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1199
      __values.colF)])
1200
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1201
      values({3, 4433, 10009, 494, 500})
1202
INSERT INTO t2 VALUES (3,4433,10009,494,500);
1203
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10011,494,500);
1204
Query Plan
1205
============================
1206
|ID|OPERATOR          |NAME|
1207
----------------------------
1208
|0 |DISTRIBUTED INSERT|    |
1209
|1 |└─EXPRESSION      |    |
1210
============================
1211
Outputs & filters:
1212
-------------------------------------
1213
  0 - output(nil), filter(nil)
1214
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1215
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1216
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1217
      __values.colF)])
1218
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1219
      values({3, 4433, 10011, 494, 500})
1220
INSERT INTO t2 VALUES (3,4433,10011,494,500);
1221
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,497,500);
1222
Query Plan
1223
============================
1224
|ID|OPERATOR          |NAME|
1225
----------------------------
1226
|0 |DISTRIBUTED INSERT|    |
1227
|1 |└─EXPRESSION      |    |
1228
============================
1229
Outputs & filters:
1230
-------------------------------------
1231
  0 - output(nil), filter(nil)
1232
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1233
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1234
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1235
      __values.colF)])
1236
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1237
      values({3, 4433, 10005, 497, 500})
1238
INSERT INTO t2 VALUES (3,4433,10005,497,500);
1239
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10013,489,500);
1240
Query Plan
1241
============================
1242
|ID|OPERATOR          |NAME|
1243
----------------------------
1244
|0 |DISTRIBUTED INSERT|    |
1245
|1 |└─EXPRESSION      |    |
1246
============================
1247
Outputs & filters:
1248
-------------------------------------
1249
  0 - output(nil), filter(nil)
1250
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1251
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1252
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1253
      __values.colF)])
1254
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1255
      values({3, 4433, 10013, 489, 500})
1256
INSERT INTO t2 VALUES (3,4433,10013,489,500);
1257
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,494,500);
1258
Query Plan
1259
============================
1260
|ID|OPERATOR          |NAME|
1261
----------------------------
1262
|0 |DISTRIBUTED INSERT|    |
1263
|1 |└─EXPRESSION      |    |
1264
============================
1265
Outputs & filters:
1266
-------------------------------------
1267
  0 - output(nil), filter(nil)
1268
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1269
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1270
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1271
      __values.colF)])
1272
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1273
      values({3, 4433, 10005, 494, 500})
1274
INSERT INTO t2 VALUES (3,4433,10005,494,500);
1275
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,493,500);
1276
Query Plan
1277
============================
1278
|ID|OPERATOR          |NAME|
1279
----------------------------
1280
|0 |DISTRIBUTED INSERT|    |
1281
|1 |└─EXPRESSION      |    |
1282
============================
1283
Outputs & filters:
1284
-------------------------------------
1285
  0 - output(nil), filter(nil)
1286
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1287
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1288
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1289
      __values.colF)])
1290
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1291
      values({3, 4433, 10005, 493, 500})
1292
INSERT INTO t2 VALUES (3,4433,10005,493,500);
1293
EXPLAIN BASIC INSERT INTO t2 VALUES (3,4433,10005,492,500);
1294
Query Plan
1295
============================
1296
|ID|OPERATOR          |NAME|
1297
----------------------------
1298
|0 |DISTRIBUTED INSERT|    |
1299
|1 |└─EXPRESSION      |    |
1300
============================
1301
Outputs & filters:
1302
-------------------------------------
1303
  0 - output(nil), filter(nil)
1304
      columns([{t2: ({t2: (t2.colC, t2.colA, t2.colD, t2.colE, t2.colF)})}]), 
1305
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colC)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colA)], [column_conv(INT 
1306
      UNSIGNED,PS:(10,0),NOT NULL,__values.colD)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,__values.colE)], [column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,
1307
      __values.colF)])
1308
  1 - output([__values.colC], [__values.colA], [__values.colD], [__values.colE], [__values.colF]), filter(nil)
1309
      values({3, 4433, 10005, 492, 500})
1310
INSERT INTO t2 VALUES (3,4433,10005,492,500);
1311
UPDATE t2,t1 set t2.colE = t2.colE + 1,colF=0 WHERE t1.colA = t2.colA AND (t1.colB & 4096) > 0 AND (colE + 1) < colF;
1312
ERROR 23000: Duplicate entry '3-4433-10005-493' for key 'PRIMARY'
1313

1314
EXPLAIN BASIC SELECT * FROM t2;
1315
Query Plan
1316
=========================
1317
|ID|OPERATOR       |NAME|
1318
-------------------------
1319
|0 |TABLE FULL SCAN|t2  |
1320
=========================
1321
Outputs & filters:
1322
-------------------------------------
1323
  0 - output([t2.colC], [t2.colA], [t2.colD], [t2.colE], [t2.colF]), filter(nil), rowset=16
1324
      access([t2.colC], [t2.colA], [t2.colD], [t2.colE], [t2.colF]), partitions(p0)
1325
      is_index_back=false, is_global_index=false, 
1326
      range_key([t2.colC], [t2.colA], [t2.colD], [t2.colE]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
1327
SELECT * FROM t2;
1328
+------+------+-------+------+------+
1329
| colC | colA | colD  | colE | colF |
1330
+------+------+-------+------+------+
1331
|    3 | 4433 | 10005 |  492 |  500 |
1332
|    3 | 4433 | 10005 |  493 |  500 |
1333
|    3 | 4433 | 10005 |  494 |  500 |
1334
|    3 | 4433 | 10005 |  495 |  500 |
1335
|    3 | 4433 | 10005 |  496 |  500 |
1336
|    3 | 4433 | 10005 |  497 |  500 |
1337
|    3 | 4433 | 10009 |  494 |  500 |
1338
|    3 | 4433 | 10011 |  494 |  500 |
1339
|    3 | 4433 | 10013 |  489 |  500 |
1340
+------+------+-------+------+------+
1341
DROP TABLE t1;
1342
DROP TABLE t2;
1343

1344
create table t1 (c1 int, c2 char(6), c3 int);
1345
create table t2 (c1 int, c2 char(6));
1346
EXPLAIN BASIC insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
1347
Query Plan
1348
============================
1349
|ID|OPERATOR          |NAME|
1350
----------------------------
1351
|0 |DISTRIBUTED INSERT|    |
1352
|1 |└─EXPRESSION      |    |
1353
============================
1354
Outputs & filters:
1355
-------------------------------------
1356
  0 - output(nil), filter(nil)
1357
      columns([{t1: ({t1: (t1.__pk_increment, t1.c1, t1.c2, t1.c3)})}]), 
1358
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.c1)], [column_conv(CHAR,utf8mb4_general_ci,length:6,NULL,__values.c2)], [column_conv(INT,
1359
      PS:(11,0),NULL,__values.c3)])
1360
  1 - output([__values.c1], [__values.c2], [__values.c3]), filter(nil)
1361
      values({1, 't1c2-1', 10}, {2, 't1c2-2', 20})
1362
insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
1363
EXPLAIN BASIC update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
1364
Query Plan
1365
==================================
1366
|ID|OPERATOR                |NAME|
1367
----------------------------------
1368
|0 |UPDATE                  |    |
1369
|1 |└─HASH RIGHT OUTER JOIN |    |
1370
|2 |  ├─TABLE FULL SCAN     |t2  |
1371
|3 |  └─TABLE FULL SCAN     |t1  |
1372
==================================
1373
Outputs & filters:
1374
-------------------------------------
1375
  0 - output(nil), filter(nil)
1376
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.c1, t2.c2)}), hash_distinct}]),
1377
      update([t2.c2=column_conv(CHAR,utf8mb4_general_ci,length:6,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), 't2c2-1'), CHAR(1048576)))])
1378
  1 - output([t2.__pk_increment], [t2.c1], [t2.c2]), filter(nil), rowset=16
1379
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
1380
  2 - output([t2.__pk_increment], [t2.c1], [t2.c2]), filter(nil), rowset=16
1381
      access([t2.__pk_increment], [t2.c1], [t2.c2]), partitions(p0)
1382
      is_index_back=false, is_global_index=false, 
1383
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
1384
  3 - output([t1.c1]), filter(nil), rowset=16
1385
      access([t1.c1]), partitions(p0)
1386
      is_index_back=false, is_global_index=false, 
1387
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1388
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
1389
EXPLAIN BASIC update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
1390
Query Plan
1391
==================================
1392
|ID|OPERATOR                |NAME|
1393
----------------------------------
1394
|0 |UPDATE                  |    |
1395
|1 |└─HASH RIGHT OUTER JOIN |    |
1396
|2 |  ├─TABLE FULL SCAN     |t2  |
1397
|3 |  └─TABLE FULL SCAN     |t1  |
1398
==================================
1399
Outputs & filters:
1400
-------------------------------------
1401
  0 - output(nil), filter(nil)
1402
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.c1, t2.c2)}), hash_distinct}]),
1403
      update([t2.c2=column_conv(CHAR,utf8mb4_general_ci,length:6,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), 't2c2-1'), CHAR(1048576)))])
1404
  1 - output([t2.__pk_increment], [t2.c1], [t2.c2]), filter(nil), rowset=16
1405
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
1406
  2 - output([t2.__pk_increment], [t2.c1], [t2.c2]), filter(nil), rowset=16
1407
      access([t2.__pk_increment], [t2.c1], [t2.c2]), partitions(p0)
1408
      is_index_back=false, is_global_index=false, 
1409
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
1410
  3 - output([t1.c1]), filter([t1.c3 = 10]), rowset=16
1411
      access([t1.c1], [t1.c3]), partitions(p0)
1412
      is_index_back=false, is_global_index=false, filter_before_indexback[false], 
1413
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1414
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
1415
drop table t1, t2;
1416

1417
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
1418
EXPLAIN BASIC insert into t1 (id_str) values ("test");
1419
Query Plan
1420
============================
1421
|ID|OPERATOR          |NAME|
1422
----------------------------
1423
|0 |DISTRIBUTED INSERT|    |
1424
|1 |└─EXPRESSION      |    |
1425
============================
1426
Outputs & filters:
1427
-------------------------------------
1428
  0 - output(nil), filter(nil)
1429
      columns([{t1: ({t1: (t1.id, t1.id_str)})}]), 
1430
      column_values([column_conv(INT,PS:(11,0),NOT NULL,cast(t1.id.nextval(), INT(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,length:32,NULL,__values.id_str)])
1431
  1 - output([__values.id_str]), filter(nil)
1432
      values({'test'})
1433
insert into t1 (id_str) values ("test");
1434
EXPLAIN BASIC update t1 set id_str = concat(id_str, id) where id = last_insert_id();
1435
Query Plan
1436
=====================
1437
|ID|OPERATOR   |NAME|
1438
---------------------
1439
|0 |UPDATE     |    |
1440
|1 |└─TABLE GET|t1  |
1441
=====================
1442
Outputs & filters:
1443
-------------------------------------
1444
  0 - output(nil), filter(nil)
1445
      table_columns([{t1: ({t1: (t1.id, t1.id_str)})}]),
1446
      update([t1.id_str=column_conv(VARCHAR,utf8mb4_general_ci,length:32,NULL,concat(t1.id_str, cast(cast(last_insert_id(), INT(11, 0)), VARCHAR(1048576))))])
1447
  1 - output([t1.id], [t1.id_str]), filter(nil), rowset=16
1448
      access([t1.id], [t1.id_str]), partitions(p0)
1449
      is_index_back=false, is_global_index=false, 
1450
      range_key([t1.id]), range[1 ; 1], 
1451
      range_cond([t1.id = last_insert_id()])
1452
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
1453
EXPLAIN BASIC select * from t1;
1454
Query Plan
1455
=========================
1456
|ID|OPERATOR       |NAME|
1457
-------------------------
1458
|0 |TABLE FULL SCAN|t1  |
1459
=========================
1460
Outputs & filters:
1461
-------------------------------------
1462
  0 - output([t1.id], [t1.id_str]), filter(nil), rowset=16
1463
      access([t1.id], [t1.id_str]), partitions(p0)
1464
      is_index_back=false, is_global_index=false, 
1465
      range_key([t1.id]), range(MIN ; MAX)always true
1466
select * from t1;
1467
+----+--------+
1468
| id | id_str |
1469
+----+--------+
1470
|  1 | test1  |
1471
+----+--------+
1472
drop table t1;
1473

1474
create table t1 (a int, b char(255), key(a, b(20)));
1475
EXPLAIN BASIC insert into t1 values (0, '1');
1476
Query Plan
1477
============================
1478
|ID|OPERATOR          |NAME|
1479
----------------------------
1480
|0 |DISTRIBUTED INSERT|    |
1481
|1 |└─EXPRESSION      |    |
1482
============================
1483
Outputs & filters:
1484
-------------------------------------
1485
  0 - output(nil), filter(nil)
1486
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b, t1.__substr20_17)})}]), 
1487
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(CHAR,utf8mb4_general_ci,length:255,NULL,__values.b)], [column_conv(CHAR,
1488
      utf8mb4_general_ci,length:20,NULL,column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), substr(inner_trim(2,
1489
       cast(' ', VARCHAR(1048576)), cast(column_conv(CHAR,utf8mb4_general_ci,length:255,NULL,__values.b), VARCHAR(1048576))), 1, 20)), CHAR(1048576))))])
1490
  1 - output([__values.a], [__values.b]), filter(nil)
1491
      values({0, '1'})
1492
insert into t1 values (0, '1');
1493
EXPLAIN BASIC update /*+index(t1 a)*/ t1 set b = b + 1 where a = 0;
1494
Query Plan
1495
=============================
1496
|ID|OPERATOR          |NAME |
1497
-----------------------------
1498
|0 |UPDATE            |     |
1499
|1 |└─TABLE RANGE SCAN|t1(a)|
1500
=============================
1501
Outputs & filters:
1502
-------------------------------------
1503
  0 - output(nil), filter(nil)
1504
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b, t1.__substr20_17)})}]),
1505
      update([t1.b=column_conv(CHAR,utf8mb4_general_ci,length:255,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(cast(t1.b, DOUBLE(-1, -1)) + 
1506
      cast(1, DOUBLE(-1, -1)), VARCHAR(1048576))), CHAR(1048576)))], [t1.__substr20_17=column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,column_conv(CHAR,utf8mb4_general_ci,
1507
      length:20,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), substr(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(column_conv(CHAR,utf8mb4_general_ci,
1508
      length:255,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(cast(t1.b, DOUBLE(-1, -1)) + cast(1, DOUBLE(-1, -1)), VARCHAR(1048576))), CHAR(1048576))),
1509
       VARCHAR(1048576))), 1, 20)), CHAR(1048576))))])
1510
  1 - output([t1.__pk_increment], [t1.b], [column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), substr(inner_trim(2,
1511
       cast(' ', VARCHAR(1048576)), cast(t1.b, VARCHAR(1048576))), 1, 20)), CHAR(1048576)))], [t1.a]), filter(nil), rowset=16
1512
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
1513
      is_index_back=true, is_global_index=false, 
1514
      range_key([t1.a], [t1.__substr20_17], [t1.__pk_increment]), range(0,MIN,MIN ; 0,MAX,MAX), 
1515
      range_cond([t1.a = 0])
1516
update /*+index(t1 a)*/ t1 set b = b + 1 where a = 0;
1517
EXPLAIN BASIC select * from t1;
1518
Query Plan
1519
=========================
1520
|ID|OPERATOR       |NAME|
1521
-------------------------
1522
|0 |TABLE FULL SCAN|t1  |
1523
=========================
1524
Outputs & filters:
1525
-------------------------------------
1526
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
1527
      access([t1.b], [t1.a]), partitions(p0)
1528
      is_index_back=false, is_global_index=false, 
1529
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1530
select * from t1;
1531
+------+------+
1532
| a    | b    |
1533
+------+------+
1534
|    0 | 2    |
1535
+------+------+
1536
drop table t1;
1537

1538
create table t1 (a int, b varchar(10), key b(b(5)));
1539
create table t2 (a int, b varchar(10));
1540

1541
EXPLAIN BASIC insert into t1 values ( 1, 'abcd1e');
1542
Query Plan
1543
============================
1544
|ID|OPERATOR          |NAME|
1545
----------------------------
1546
|0 |DISTRIBUTED INSERT|    |
1547
|1 |└─EXPRESSION      |    |
1548
============================
1549
Outputs & filters:
1550
-------------------------------------
1551
  0 - output(nil), filter(nil)
1552
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b, t1.__substr5_17)})}]), 
1553
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b)], [column_conv(VARCHAR,
1554
      utf8mb4_general_ci,length:5,NULL,substr(column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b), 1, 5))])
1555
  1 - output([__values.a], [__values.b]), filter(nil)
1556
      values({1, 'abcd1e'})
1557
insert into t1 values ( 1, 'abcd1e');
1558
EXPLAIN BASIC insert into t1 values ( 2, 'abcd2e');
1559
Query Plan
1560
============================
1561
|ID|OPERATOR          |NAME|
1562
----------------------------
1563
|0 |DISTRIBUTED INSERT|    |
1564
|1 |└─EXPRESSION      |    |
1565
============================
1566
Outputs & filters:
1567
-------------------------------------
1568
  0 - output(nil), filter(nil)
1569
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b, t1.__substr5_17)})}]), 
1570
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b)], [column_conv(VARCHAR,
1571
      utf8mb4_general_ci,length:5,NULL,substr(column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b), 1, 5))])
1572
  1 - output([__values.a], [__values.b]), filter(nil)
1573
      values({2, 'abcd2e'})
1574
insert into t1 values ( 2, 'abcd2e');
1575
EXPLAIN BASIC insert into t2 values ( 1, 'abcd1e');
1576
Query Plan
1577
============================
1578
|ID|OPERATOR          |NAME|
1579
----------------------------
1580
|0 |DISTRIBUTED INSERT|    |
1581
|1 |└─EXPRESSION      |    |
1582
============================
1583
Outputs & filters:
1584
-------------------------------------
1585
  0 - output(nil), filter(nil)
1586
      columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b)})}]), 
1587
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b)])
1588
  1 - output([__values.a], [__values.b]), filter(nil)
1589
      values({1, 'abcd1e'})
1590
insert into t2 values ( 1, 'abcd1e');
1591
EXPLAIN BASIC insert into t2 values ( 2, 'abcd2e');
1592
Query Plan
1593
============================
1594
|ID|OPERATOR          |NAME|
1595
----------------------------
1596
|0 |DISTRIBUTED INSERT|    |
1597
|1 |└─EXPRESSION      |    |
1598
============================
1599
Outputs & filters:
1600
-------------------------------------
1601
  0 - output(nil), filter(nil)
1602
      columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b)})}]), 
1603
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(VARCHAR,utf8mb4_general_ci,length:10,NULL,__values.b)])
1604
  1 - output([__values.a], [__values.b]), filter(nil)
1605
      values({2, 'abcd2e'})
1606
insert into t2 values ( 2, 'abcd2e');
1607
EXPLAIN BASIC update t1, t2 set t1.a = t2.a where t2.b = t1.b;
1608
Query Plan
1609
=============================
1610
|ID|OPERATOR           |NAME|
1611
-----------------------------
1612
|0 |UPDATE             |    |
1613
|1 |└─HASH JOIN        |    |
1614
|2 |  ├─TABLE FULL SCAN|t1  |
1615
|3 |  └─TABLE FULL SCAN|t2  |
1616
=============================
1617
Outputs & filters:
1618
-------------------------------------
1619
  0 - output(nil), filter(nil)
1620
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b, t1.__substr5_17)}), hash_distinct}]),
1621
      update([t1.a=column_conv(INT,PS:(11,0),NULL,t2.a)])
1622
  1 - output([t1.__pk_increment], [t1.a], [t1.b], [substr(t1.b, 1, 5)], [t2.a]), filter(nil), rowset=16
1623
      equal_conds([t2.b = t1.b]), other_conds(nil)
1624
  2 - output([t1.__pk_increment], [t1.b], [substr(t1.b, 1, 5)], [t1.a]), filter(nil), rowset=16
1625
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
1626
      is_index_back=false, is_global_index=false, 
1627
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1628
  3 - output([t2.a], [t2.b]), filter(nil), rowset=16
1629
      access([t2.a], [t2.b]), partitions(p0)
1630
      is_index_back=false, is_global_index=false, 
1631
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
1632
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
1633
show warnings;
1634
Level	Code	Message
1635
EXPLAIN BASIC select * from t1;
1636
Query Plan
1637
=========================
1638
|ID|OPERATOR       |NAME|
1639
-------------------------
1640
|0 |TABLE FULL SCAN|t1  |
1641
=========================
1642
Outputs & filters:
1643
-------------------------------------
1644
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
1645
      access([t1.b], [t1.a]), partitions(p0)
1646
      is_index_back=false, is_global_index=false, 
1647
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1648
select * from t1;
1649
+------+--------+
1650
| a    | b      |
1651
+------+--------+
1652
|    1 | abcd1e |
1653
|    2 | abcd2e |
1654
+------+--------+
1655
EXPLAIN BASIC select * from t2;
1656
Query Plan
1657
=========================
1658
|ID|OPERATOR       |NAME|
1659
-------------------------
1660
|0 |TABLE FULL SCAN|t2  |
1661
=========================
1662
Outputs & filters:
1663
-------------------------------------
1664
  0 - output([t2.a], [t2.b]), filter(nil), rowset=16
1665
      access([t2.a], [t2.b]), partitions(p0)
1666
      is_index_back=false, is_global_index=false, 
1667
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
1668
select * from t2;
1669
+------+--------+
1670
| a    | b      |
1671
+------+--------+
1672
|    1 | abcd1e |
1673
|    2 | abcd2e |
1674
+------+--------+
1675
drop table t1, t2;
1676

1677
create table t1(f1 int, f2 int);
1678
create table t2(f3 int, f4 int);
1679
create index idx on t2(f3);
1680
EXPLAIN BASIC insert into t1 values(1,0),(2,0);
1681
Query Plan
1682
============================
1683
|ID|OPERATOR          |NAME|
1684
----------------------------
1685
|0 |DISTRIBUTED INSERT|    |
1686
|1 |└─EXPRESSION      |    |
1687
============================
1688
Outputs & filters:
1689
-------------------------------------
1690
  0 - output(nil), filter(nil)
1691
      columns([{t1: ({t1: (t1.__pk_increment, t1.f1, t1.f2)})}]), 
1692
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.f1)], [column_conv(INT,PS:(11,0),NULL,__values.f2)])
1693
  1 - output([__values.f1], [__values.f2]), filter(nil)
1694
      values({1, 0}, {2, 0})
1695
insert into t1 values(1,0),(2,0);
1696
EXPLAIN BASIC insert into t2 values(1,1),(2,2);
1697
Query Plan
1698
============================
1699
|ID|OPERATOR          |NAME|
1700
----------------------------
1701
|0 |DISTRIBUTED INSERT|    |
1702
|1 |└─EXPRESSION      |    |
1703
============================
1704
Outputs & filters:
1705
-------------------------------------
1706
  0 - output(nil), filter(nil)
1707
      columns([{t2: ({t2: (t2.__pk_increment, t2.f3, t2.f4)})}]), 
1708
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.f3)], [column_conv(INT,PS:(11,0),NULL,__values.f4)])
1709
  1 - output([__values.f3], [__values.f4]), filter(nil)
1710
      values({1, 1}, {2, 2})
1711
insert into t2 values(1,1),(2,2);
1712
EXPLAIN BASIC UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
1713
Query Plan
1714
==================================
1715
|ID|OPERATOR               |NAME |
1716
----------------------------------
1717
|0 |UPDATE                 |     |
1718
|1 |└─HASH OUTER JOIN      |     |
1719
|2 |  ├─TABLE FULL SCAN    |t1   |
1720
|3 |  └─SUBPLAN SCAN       |VIEW1|
1721
|4 |    └─HASH GROUP BY    |     |
1722
|5 |      └─TABLE FULL SCAN|t2   |
1723
==================================
1724
Outputs & filters:
1725
-------------------------------------
1726
  0 - output(nil), filter(nil)
1727
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.f1, t1.f2)})}]),
1728
      update([t1.f2=column_conv(INT,PS:(11,0),NULL,VIEW1.MAX(t2.f4))])
1729
  1 - output([t1.__pk_increment], [t1.f1], [t1.f2], [VIEW1.MAX(t2.f4)]), filter(nil), rowset=16
1730
      equal_conds([VIEW1.t2.f3 = t1.f1]), other_conds(nil)
1731
  2 - output([t1.__pk_increment], [t1.f2], [t1.f1]), filter(nil), rowset=16
1732
      access([t1.__pk_increment], [t1.f2], [t1.f1]), partitions(p0)
1733
      is_index_back=false, is_global_index=false, 
1734
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1735
  3 - output([VIEW1.MAX(t2.f4)], [VIEW1.t2.f3]), filter(nil), rowset=16
1736
      access([VIEW1.MAX(t2.f4)], [VIEW1.t2.f3])
1737
  4 - output([T_FUN_MAX(t2.f4)], [t2.f3]), filter(nil), rowset=16
1738
      group([t2.f3]), agg_func([T_FUN_MAX(t2.f4)])
1739
  5 - output([t2.f3], [t2.f4]), filter(nil), rowset=16
1740
      access([t2.f3], [t2.f4]), partitions(p0)
1741
      is_index_back=false, is_global_index=false, 
1742
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
1743
UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
1744
EXPLAIN BASIC select * from t1;
1745
Query Plan
1746
=========================
1747
|ID|OPERATOR       |NAME|
1748
-------------------------
1749
|0 |TABLE FULL SCAN|t1  |
1750
=========================
1751
Outputs & filters:
1752
-------------------------------------
1753
  0 - output([t1.f1], [t1.f2]), filter(nil), rowset=16
1754
      access([t1.f1], [t1.f2]), partitions(p0)
1755
      is_index_back=false, is_global_index=false, 
1756
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1757
select * from t1;
1758
+------+------+
1759
| f1   | f2   |
1760
+------+------+
1761
|    1 |    1 |
1762
|    2 |    2 |
1763
+------+------+
1764
drop table t1,t2;
1765

1766
create table t1(f1 int);
1767
EXPLAIN BASIC select DATABASE();
1768
Query Plan
1769
====================
1770
|ID|OPERATOR  |NAME|
1771
--------------------
1772
|0 |EXPRESSION|    |
1773
====================
1774
Outputs & filters:
1775
-------------------------------------
1776
  0 - output([database()]), filter(nil)
1777
      values({database()})
1778
select DATABASE();
1779
+------------+
1780
| DATABASE() |
1781
+------------+
1782
| test       |
1783
+------------+
1784
update t1 set f1=1 where count(*)=1;
1785
ERROR HY000: Invalid use of group function
1786
EXPLAIN BASIC select DATABASE();
1787
Query Plan
1788
====================
1789
|ID|OPERATOR  |NAME|
1790
--------------------
1791
|0 |EXPRESSION|    |
1792
====================
1793
Outputs & filters:
1794
-------------------------------------
1795
  0 - output([database()]), filter(nil)
1796
      values({database()})
1797
select DATABASE();
1798
+------------+
1799
| DATABASE() |
1800
+------------+
1801
| test       |
1802
+------------+
1803
delete from t1 where count(*)=1;
1804
ERROR HY000: Invalid use of group function
1805
drop table t1;
1806

1807
create table t1 ( a int, b int default 0, index (a) );
1808
EXPLAIN BASIC insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
1809
Query Plan
1810
============================
1811
|ID|OPERATOR          |NAME|
1812
----------------------------
1813
|0 |DISTRIBUTED INSERT|    |
1814
|1 |└─EXPRESSION      |    |
1815
============================
1816
Outputs & filters:
1817
-------------------------------------
1818
  0 - output(nil), filter(nil)
1819
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]), 
1820
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(INT,PS:(11,0),NULL,0)])
1821
  1 - output([__values.a]), filter(nil)
1822
      values({0}, {0}, {0}, {0}, {0}, {0}, {0}, {0})
1823
insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
1824

1825
EXPLAIN BASIC select a from t1 order by a limit 1;
1826
Query Plan
1827
==========================
1828
|ID|OPERATOR       |NAME |
1829
--------------------------
1830
|0 |TABLE FULL SCAN|t1(a)|
1831
==========================
1832
Outputs & filters:
1833
-------------------------------------
1834
  0 - output([t1.a]), filter(nil), rowset=16
1835
      access([t1.a]), partitions(p0)
1836
      limit(1), offset(nil), is_index_back=false, is_global_index=false, 
1837
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1838
select a from t1 order by a limit 1;
1839
+------+
1840
| a    |
1841
+------+
1842
|    0 |
1843
+------+
1844
EXPLAIN BASIC update t1 set a=9999 order by a limit 1;
1845
Query Plan
1846
============================
1847
|ID|OPERATOR         |NAME |
1848
----------------------------
1849
|0 |UPDATE           |     |
1850
|1 |└─TABLE FULL SCAN|t1(a)|
1851
============================
1852
Outputs & filters:
1853
-------------------------------------
1854
  0 - output(nil), filter(nil)
1855
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
1856
      update([t1.a=column_conv(INT,PS:(11,0),NULL,cast(9999, INT(-1, 0)))])
1857
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1858
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1859
      limit(1), offset(nil), is_index_back=true, is_global_index=false, 
1860
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1861
update t1 set a=9999 order by a limit 1;
1862
EXPLAIN BASIC update t1 set b=9999 order by a limit 1;
1863
Query Plan
1864
============================
1865
|ID|OPERATOR         |NAME |
1866
----------------------------
1867
|0 |UPDATE           |     |
1868
|1 |└─TABLE FULL SCAN|t1(a)|
1869
============================
1870
Outputs & filters:
1871
-------------------------------------
1872
  0 - output(nil), filter(nil)
1873
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
1874
      update([t1.b=column_conv(INT,PS:(11,0),NULL,cast(9999, INT(-1, 0)))])
1875
  1 - output([t1.__pk_increment], [t1.b], [t1.a]), filter(nil), rowset=16
1876
      access([t1.__pk_increment], [t1.b], [t1.a]), partitions(p0)
1877
      limit(1), offset(nil), is_index_back=true, is_global_index=false, 
1878
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1879
update t1 set b=9999 order by a limit 1;
1880
EXPLAIN BASIC delete from t1 order by a limit 1;
1881
Query Plan
1882
============================
1883
|ID|OPERATOR         |NAME |
1884
----------------------------
1885
|0 |DELETE           |     |
1886
|1 |└─TABLE FULL SCAN|t1(a)|
1887
============================
1888
Outputs & filters:
1889
-------------------------------------
1890
  0 - output(nil), filter(nil)
1891
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}])
1892
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1893
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1894
      limit(1), offset(nil), is_index_back=true, is_global_index=false, 
1895
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1896
delete from t1 order by a limit 1;
1897
EXPLAIN BASIC delete from t1 order by a desc limit 1;
1898
Query Plan
1899
====================================
1900
|ID|OPERATOR         |NAME         |
1901
------------------------------------
1902
|0 |DELETE           |             |
1903
|1 |└─TABLE FULL SCAN|t1(a,Reverse)|
1904
====================================
1905
Outputs & filters:
1906
-------------------------------------
1907
  0 - output(nil), filter(nil)
1908
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}])
1909
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1910
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1911
      limit(1), offset(nil), is_index_back=true, is_global_index=false, 
1912
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1913
delete from t1 order by a desc limit 1;
1914
EXPLAIN BASIC delete from t1 order by a limit 1;
1915
Query Plan
1916
============================
1917
|ID|OPERATOR         |NAME |
1918
----------------------------
1919
|0 |DELETE           |     |
1920
|1 |└─TABLE FULL SCAN|t1(a)|
1921
============================
1922
Outputs & filters:
1923
-------------------------------------
1924
  0 - output(nil), filter(nil)
1925
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}])
1926
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1927
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1928
      limit(1), offset(nil), is_index_back=true, is_global_index=false, 
1929
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1930
delete from t1 order by a limit 1;
1931
EXPLAIN BASIC select * from t1;
1932
Query Plan
1933
=========================
1934
|ID|OPERATOR       |NAME|
1935
-------------------------
1936
|0 |TABLE FULL SCAN|t1  |
1937
=========================
1938
Outputs & filters:
1939
-------------------------------------
1940
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
1941
      access([t1.a], [t1.b]), partitions(p0)
1942
      is_index_back=false, is_global_index=false, 
1943
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
1944
select * from t1;
1945
+------+------+
1946
| a    | b    |
1947
+------+------+
1948
|    0 |    0 |
1949
|    0 |    0 |
1950
|    0 |    0 |
1951
|    0 |    0 |
1952
|    0 |    0 |
1953
+------+------+
1954
EXPLAIN BASIC update t1 set a=a+10,b=1 order by a limit 3;
1955
Query Plan
1956
============================
1957
|ID|OPERATOR         |NAME |
1958
----------------------------
1959
|0 |UPDATE           |     |
1960
|1 |└─TABLE FULL SCAN|t1(a)|
1961
============================
1962
Outputs & filters:
1963
-------------------------------------
1964
  0 - output(nil), filter(nil)
1965
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
1966
      update([t1.a=column_conv(INT,PS:(11,0),NULL,cast(t1.a + 10, INT(-1, 0)))], [t1.b=column_conv(INT,PS:(11,0),NULL,cast(1, INT(-1, 0)))])
1967
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1968
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1969
      limit(3), offset(nil), is_index_back=true, is_global_index=false, 
1970
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1971
update t1 set a=a+10,b=1 order by a limit 3;
1972
EXPLAIN BASIC update t1 set a=a+11,b=2 order by a limit 3;
1973
Query Plan
1974
============================
1975
|ID|OPERATOR         |NAME |
1976
----------------------------
1977
|0 |UPDATE           |     |
1978
|1 |└─TABLE FULL SCAN|t1(a)|
1979
============================
1980
Outputs & filters:
1981
-------------------------------------
1982
  0 - output(nil), filter(nil)
1983
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
1984
      update([t1.a=column_conv(INT,PS:(11,0),NULL,cast(t1.a + 11, INT(-1, 0)))], [t1.b=column_conv(INT,PS:(11,0),NULL,cast(2, INT(-1, 0)))])
1985
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
1986
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
1987
      limit(3), offset(nil), is_index_back=true, is_global_index=false, 
1988
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
1989
update t1 set a=a+11,b=2 order by a limit 3;
1990
EXPLAIN BASIC update t1 set a=a+12,b=3 order by a limit 3;
1991
Query Plan
1992
============================
1993
|ID|OPERATOR         |NAME |
1994
----------------------------
1995
|0 |UPDATE           |     |
1996
|1 |└─TABLE FULL SCAN|t1(a)|
1997
============================
1998
Outputs & filters:
1999
-------------------------------------
2000
  0 - output(nil), filter(nil)
2001
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.b)})}]),
2002
      update([t1.a=column_conv(INT,PS:(11,0),NULL,cast(t1.a + 12, INT(-1, 0)))], [t1.b=column_conv(INT,PS:(11,0),NULL,cast(3, INT(-1, 0)))])
2003
  1 - output([t1.__pk_increment], [t1.a], [t1.b]), filter(nil), rowset=16
2004
      access([t1.__pk_increment], [t1.a], [t1.b]), partitions(p0)
2005
      limit(3), offset(nil), is_index_back=true, is_global_index=false, 
2006
      range_key([t1.a], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
2007
update t1 set a=a+12,b=3 order by a limit 3;
2008
EXPLAIN BASIC select * from t1 order by a;
2009
Query Plan
2010
===========================
2011
|ID|OPERATOR         |NAME|
2012
---------------------------
2013
|0 |SORT             |    |
2014
|1 |└─TABLE FULL SCAN|t1  |
2015
===========================
2016
Outputs & filters:
2017
-------------------------------------
2018
  0 - output([t1.a], [t1.b]), filter(nil), rowset=16
2019
      sort_keys([t1.a, ASC])
2020
  1 - output([t1.a], [t1.b]), filter(nil), rowset=16
2021
      access([t1.a], [t1.b]), partitions(p0)
2022
      is_index_back=false, is_global_index=false, 
2023
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2024
select * from t1 order by a;
2025
+------+------+
2026
| a    | b    |
2027
+------+------+
2028
|   11 |    2 |
2029
|   21 |    2 |
2030
|   22 |    3 |
2031
|   22 |    3 |
2032
|   23 |    3 |
2033
+------+------+
2034

2035
drop table t1;
2036

2037
create table t1 (f1 date not null);
2038
EXPLAIN BASIC insert into t1 values('2000-01-01'),('0000-00-00');
2039
Query Plan
2040
============================
2041
|ID|OPERATOR          |NAME|
2042
----------------------------
2043
|0 |DISTRIBUTED INSERT|    |
2044
|1 |└─EXPRESSION      |    |
2045
============================
2046
Outputs & filters:
2047
-------------------------------------
2048
  0 - output(nil), filter(nil)
2049
      columns([{t1: ({t1: (t1.__pk_increment, t1.f1)})}]), 
2050
      column_values([T_HIDDEN_PK], [column_conv(DATE,PS:(10,0),NOT NULL,__values.f1)])
2051
  1 - output([__values.f1]), filter(nil)
2052
      values({'2000-01-01'}, {'0000-00-00'})
2053
insert into t1 values('2000-01-01'),('0000-00-00');
2054
EXPLAIN BASIC update t1 set f1='2002-02-02' where f1 is null;
2055
Query Plan
2056
===========================
2057
|ID|OPERATOR         |NAME|
2058
---------------------------
2059
|0 |UPDATE           |    |
2060
|1 |└─TABLE FULL SCAN|t1  |
2061
===========================
2062
Outputs & filters:
2063
-------------------------------------
2064
  0 - output(nil), filter(nil)
2065
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.f1)})}]),
2066
      update([t1.f1=column_conv(DATE,PS:(10,0),NOT NULL,cast('2002-02-02', DATE(-1, -1)))])
2067
  1 - output([t1.__pk_increment], [t1.f1]), filter([t1.f1 = '0000-00-00']), rowset=16
2068
      access([t1.__pk_increment], [t1.f1]), partitions(p0)
2069
      is_index_back=false, is_global_index=false, filter_before_indexback[false], 
2070
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2071
update t1 set f1='2002-02-02' where f1 is null;
2072
EXPLAIN BASIC select * from t1;
2073
Query Plan
2074
=========================
2075
|ID|OPERATOR       |NAME|
2076
-------------------------
2077
|0 |TABLE FULL SCAN|t1  |
2078
=========================
2079
Outputs & filters:
2080
-------------------------------------
2081
  0 - output([t1.f1]), filter(nil), rowset=16
2082
      access([t1.f1]), partitions(p0)
2083
      is_index_back=false, is_global_index=false, 
2084
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2085
select * from t1;
2086
+------------+
2087
| f1         |
2088
+------------+
2089
| 2000-01-01 |
2090
| 2002-02-02 |
2091
+------------+
2092
drop table t1;
2093

2094
create table t1 (f1 int);
2095
create table t2 (f2 int);
2096
EXPLAIN BASIC insert into t1 values(1),(2);
2097
Query Plan
2098
============================
2099
|ID|OPERATOR          |NAME|
2100
----------------------------
2101
|0 |DISTRIBUTED INSERT|    |
2102
|1 |└─EXPRESSION      |    |
2103
============================
2104
Outputs & filters:
2105
-------------------------------------
2106
  0 - output(nil), filter(nil)
2107
      columns([{t1: ({t1: (t1.__pk_increment, t1.f1)})}]), 
2108
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.f1)])
2109
  1 - output([__values.f1]), filter(nil)
2110
      values({1}, {2})
2111
insert into t1 values(1),(2);
2112
EXPLAIN BASIC insert into t2 values(1),(1);
2113
Query Plan
2114
============================
2115
|ID|OPERATOR          |NAME|
2116
----------------------------
2117
|0 |DISTRIBUTED INSERT|    |
2118
|1 |└─EXPRESSION      |    |
2119
============================
2120
Outputs & filters:
2121
-------------------------------------
2122
  0 - output(nil), filter(nil)
2123
      columns([{t2: ({t2: (t2.__pk_increment, t2.f2)})}]), 
2124
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.f2)])
2125
  1 - output([__values.f2]), filter(nil)
2126
      values({1}, {1})
2127
insert into t2 values(1),(1);
2128
EXPLAIN BASIC update t2 set f2=1;
2129
Query Plan
2130
===========================
2131
|ID|OPERATOR         |NAME|
2132
---------------------------
2133
|0 |UPDATE           |    |
2134
|1 |└─TABLE FULL SCAN|t2  |
2135
===========================
2136
Outputs & filters:
2137
-------------------------------------
2138
  0 - output(nil), filter(nil)
2139
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.f2)})}]),
2140
      update([t2.f2=column_conv(INT,PS:(11,0),NULL,cast(1, INT(-1, 0)))])
2141
  1 - output([t2.__pk_increment], [t2.f2]), filter(nil), rowset=16
2142
      access([t2.__pk_increment], [t2.f2]), partitions(p0)
2143
      is_index_back=false, is_global_index=false, 
2144
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2145
update t2 set f2=1;
2146
EXPLAIN BASIC update t1 set f1=1 where f1=3;
2147
Query Plan
2148
===========================
2149
|ID|OPERATOR         |NAME|
2150
---------------------------
2151
|0 |UPDATE           |    |
2152
|1 |└─TABLE FULL SCAN|t1  |
2153
===========================
2154
Outputs & filters:
2155
-------------------------------------
2156
  0 - output(nil), filter(nil)
2157
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.f1)})}]),
2158
      update([t1.f1=column_conv(INT,PS:(11,0),NULL,cast(1, INT(-1, 0)))])
2159
  1 - output([t1.__pk_increment], [t1.f1]), filter([t1.f1 = 3]), rowset=16
2160
      access([t1.__pk_increment], [t1.f1]), partitions(p0)
2161
      is_index_back=false, is_global_index=false, filter_before_indexback[false], 
2162
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2163
update t1 set f1=1 where f1=3;
2164
drop table t1,t2;
2165

2166
create table t1(f1 int, `*f2` int);
2167
EXPLAIN BASIC insert into t1 values (1,1);
2168
Query Plan
2169
============================
2170
|ID|OPERATOR          |NAME|
2171
----------------------------
2172
|0 |DISTRIBUTED INSERT|    |
2173
|1 |└─EXPRESSION      |    |
2174
============================
2175
Outputs & filters:
2176
-------------------------------------
2177
  0 - output(nil), filter(nil)
2178
      columns([{t1: ({t1: (t1.__pk_increment, t1.f1, t1.*f2)})}]), 
2179
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.f1)], [column_conv(INT,PS:(11,0),NULL,__values.*f2)])
2180
  1 - output([__values.f1], [__values.*f2]), filter(nil)
2181
      values({1, 1})
2182
insert into t1 values (1,1);
2183
EXPLAIN BASIC update t1 set `*f2`=1;
2184
Query Plan
2185
===========================
2186
|ID|OPERATOR         |NAME|
2187
---------------------------
2188
|0 |UPDATE           |    |
2189
|1 |└─TABLE FULL SCAN|t1  |
2190
===========================
2191
Outputs & filters:
2192
-------------------------------------
2193
  0 - output(nil), filter(nil)
2194
      table_columns([{t1: ({t1: (t1.__pk_increment, t1.f1, t1.*f2)})}]),
2195
      update([t1.*f2=column_conv(INT,PS:(11,0),NULL,cast(1, INT(-1, 0)))])
2196
  1 - output([t1.__pk_increment], [t1.*f2], [t1.f1]), filter(nil), rowset=16
2197
      access([t1.__pk_increment], [t1.*f2], [t1.f1]), partitions(p0)
2198
      is_index_back=false, is_global_index=false, 
2199
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2200
update t1 set `*f2`=1;
2201
drop table t1;
2202

2203
create table t1(f1 int);
2204
update t1 set f2=1 order by f2;
2205
ERROR 42S22: Unknown column 'f2' in 'field list'
2206
drop table t1;
2207
CREATE TABLE t1 (
2208
  request_id int unsigned NOT NULL auto_increment,
2209
  user_id varchar(12) default NULL,
2210
  time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
2211
  ip_address varchar(15) default NULL,
2212
  PRIMARY KEY (request_id),
2213
  KEY user_id_2 (user_id,time_stamp)
2214
);
2215

2216
EXPLAIN BASIC INSERT INTO t1 (user_id) VALUES ('user1');
2217
Query Plan
2218
============================
2219
|ID|OPERATOR          |NAME|
2220
----------------------------
2221
|0 |DISTRIBUTED INSERT|    |
2222
|1 |└─EXPRESSION      |    |
2223
============================
2224
Outputs & filters:
2225
-------------------------------------
2226
  0 - output(nil), filter(nil)
2227
      columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]), 
2228
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.request_id.nextval(), INT UNSIGNED(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,
2229
      length:12,NULL,__values.user_id)], [column_conv(DATETIME,PS:(19,0),NOT NULL,'0000-00-00 00:00:00')], [column_conv(VARCHAR,utf8mb4_general_ci,length:15,NULL,
2230
      cast(NULL, VARCHAR(1048576)))])
2231
  1 - output([__values.user_id]), filter(nil)
2232
      values({'user1'})
2233
INSERT INTO t1 (user_id) VALUES ('user1');
2234
EXPLAIN BASIC INSERT INTO t1 (user_id) VALUES ('user1');
2235
Query Plan
2236
============================
2237
|ID|OPERATOR          |NAME|
2238
----------------------------
2239
|0 |DISTRIBUTED INSERT|    |
2240
|1 |└─EXPRESSION      |    |
2241
============================
2242
Outputs & filters:
2243
-------------------------------------
2244
  0 - output(nil), filter(nil)
2245
      columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]), 
2246
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.request_id.nextval(), INT UNSIGNED(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,
2247
      length:12,NULL,__values.user_id)], [column_conv(DATETIME,PS:(19,0),NOT NULL,'0000-00-00 00:00:00')], [column_conv(VARCHAR,utf8mb4_general_ci,length:15,NULL,
2248
      cast(NULL, VARCHAR(1048576)))])
2249
  1 - output([__values.user_id]), filter(nil)
2250
      values({'user1'})
2251
INSERT INTO t1 (user_id) VALUES ('user1');
2252
EXPLAIN BASIC INSERT INTO t1 (user_id) VALUES ('user1');
2253
Query Plan
2254
============================
2255
|ID|OPERATOR          |NAME|
2256
----------------------------
2257
|0 |DISTRIBUTED INSERT|    |
2258
|1 |└─EXPRESSION      |    |
2259
============================
2260
Outputs & filters:
2261
-------------------------------------
2262
  0 - output(nil), filter(nil)
2263
      columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]), 
2264
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.request_id.nextval(), INT UNSIGNED(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,
2265
      length:12,NULL,__values.user_id)], [column_conv(DATETIME,PS:(19,0),NOT NULL,'0000-00-00 00:00:00')], [column_conv(VARCHAR,utf8mb4_general_ci,length:15,NULL,
2266
      cast(NULL, VARCHAR(1048576)))])
2267
  1 - output([__values.user_id]), filter(nil)
2268
      values({'user1'})
2269
INSERT INTO t1 (user_id) VALUES ('user1');
2270
EXPLAIN BASIC INSERT INTO t1 (user_id) VALUES ('user1');
2271
Query Plan
2272
============================
2273
|ID|OPERATOR          |NAME|
2274
----------------------------
2275
|0 |DISTRIBUTED INSERT|    |
2276
|1 |└─EXPRESSION      |    |
2277
============================
2278
Outputs & filters:
2279
-------------------------------------
2280
  0 - output(nil), filter(nil)
2281
      columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]), 
2282
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.request_id.nextval(), INT UNSIGNED(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,
2283
      length:12,NULL,__values.user_id)], [column_conv(DATETIME,PS:(19,0),NOT NULL,'0000-00-00 00:00:00')], [column_conv(VARCHAR,utf8mb4_general_ci,length:15,NULL,
2284
      cast(NULL, VARCHAR(1048576)))])
2285
  1 - output([__values.user_id]), filter(nil)
2286
      values({'user1'})
2287
INSERT INTO t1 (user_id) VALUES ('user1');
2288
EXPLAIN BASIC INSERT INTO t1 (user_id) VALUES ('user1');
2289
Query Plan
2290
============================
2291
|ID|OPERATOR          |NAME|
2292
----------------------------
2293
|0 |DISTRIBUTED INSERT|    |
2294
|1 |└─EXPRESSION      |    |
2295
============================
2296
Outputs & filters:
2297
-------------------------------------
2298
  0 - output(nil), filter(nil)
2299
      columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]), 
2300
      column_values([column_conv(INT UNSIGNED,PS:(10,0),NOT NULL,cast(t1.request_id.nextval(), INT UNSIGNED(-1, 0)))], [column_conv(VARCHAR,utf8mb4_general_ci,
2301
      length:12,NULL,__values.user_id)], [column_conv(DATETIME,PS:(19,0),NOT NULL,'0000-00-00 00:00:00')], [column_conv(VARCHAR,utf8mb4_general_ci,length:15,NULL,
2302
      cast(NULL, VARCHAR(1048576)))])
2303
  1 - output([__values.user_id]), filter(nil)
2304
      values({'user1'})
2305
INSERT INTO t1 (user_id) VALUES ('user1');
2306
EXPLAIN BASIC SELECT user_id FROM t1 WHERE request_id=9999999999999;
2307
Query Plan
2308
==========================
2309
|ID|OPERATOR        |NAME|
2310
--------------------------
2311
|0 |TABLE RANGE SCAN|t1  |
2312
==========================
2313
Outputs & filters:
2314
-------------------------------------
2315
  0 - output([t1.user_id]), filter(nil), rowset=16
2316
      access([t1.user_id]), partitions(p0)
2317
      is_index_back=false, is_global_index=false, 
2318
      range_key([t1.request_id]), range(MAX ; MIN)always false, 
2319
      range_cond([t1.request_id = 9999999999999])
2320
SELECT user_id FROM t1 WHERE request_id=9999999999999;
2321
+---------+
2322
| user_id |
2323
+---------+
2324
+---------+
2325
EXPLAIN BASIC SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
2326
Query Plan
2327
==========================
2328
|ID|OPERATOR        |NAME|
2329
--------------------------
2330
|0 |TABLE RANGE SCAN|t1  |
2331
==========================
2332
Outputs & filters:
2333
-------------------------------------
2334
  0 - output([t1.user_id]), filter(nil), rowset=16
2335
      access([t1.user_id]), partitions(p0)
2336
      is_index_back=false, is_global_index=false, 
2337
      range_key([t1.request_id]), range(MAX ; MIN)always false, 
2338
      range_cond([cast(t1.request_id, DECIMAL_INT(30, 0)) = 999999999999999999999999999999])
2339
SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
2340
+---------+
2341
| user_id |
2342
+---------+
2343
+---------+
2344
EXPLAIN BASIC UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
2345
Query Plan
2346
============================
2347
|ID|OPERATOR          |NAME|
2348
----------------------------
2349
|0 |UPDATE            |    |
2350
|1 |└─TABLE RANGE SCAN|t1  |
2351
============================
2352
Outputs & filters:
2353
-------------------------------------
2354
  0 - output(nil), filter(nil)
2355
      table_columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]),
2356
      update([t1.user_id=column_conv(VARCHAR,utf8mb4_general_ci,length:12,NULL,cast(NULL, VARCHAR(1048576)))])
2357
  1 - output([t1.request_id], [t1.user_id], [t1.time_stamp], [t1.ip_address]), filter(nil), rowset=16
2358
      access([t1.request_id], [t1.user_id], [t1.time_stamp], [t1.ip_address]), partitions(p0)
2359
      is_index_back=false, is_global_index=false, 
2360
      range_key([t1.request_id]), range(MAX ; MIN)always false, 
2361
      range_cond([t1.request_id = 9999999999999])
2362
UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
2363
EXPLAIN BASIC UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
2364
Query Plan
2365
============================
2366
|ID|OPERATOR          |NAME|
2367
----------------------------
2368
|0 |UPDATE            |    |
2369
|1 |└─TABLE RANGE SCAN|t1  |
2370
============================
2371
Outputs & filters:
2372
-------------------------------------
2373
  0 - output(nil), filter(nil)
2374
      table_columns([{t1: ({t1: (t1.request_id, t1.user_id, t1.time_stamp, t1.ip_address)})}]),
2375
      update([t1.user_id=column_conv(VARCHAR,utf8mb4_general_ci,length:12,NULL,cast(NULL, VARCHAR(1048576)))])
2376
  1 - output([t1.request_id], [t1.user_id], [t1.time_stamp], [t1.ip_address]), filter(nil), rowset=16
2377
      access([t1.request_id], [t1.user_id], [t1.time_stamp], [t1.ip_address]), partitions(p0)
2378
      is_index_back=false, is_global_index=false, 
2379
      range_key([t1.request_id]), range(MAX ; MIN)always false, 
2380
      range_cond([cast(t1.request_id, DECIMAL_INT(30, 0)) = 999999999999999999999999999999])
2381
UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
2382
DROP TABLE t1;
2383

2384
CREATE TABLE t1 (
2385

2386
  a INT(11),
2387
  quux decimal( 31, 30 ),
2388

2389
  UNIQUE KEY bar (a),
2390
  KEY quux (quux)
2391
);
2392

2393
EXPLAIN BASIC INSERT INTO
2394
 t1 ( a, quux )
2395
VALUES
2396
    ( 1,    1 ),
2397
    ( 2,  0.1 );
2398
Query Plan
2399
============================
2400
|ID|OPERATOR          |NAME|
2401
----------------------------
2402
|0 |DISTRIBUTED INSERT|    |
2403
|1 |└─EXPRESSION      |    |
2404
============================
2405
Outputs & filters:
2406
-------------------------------------
2407
  0 - output(nil), filter(nil)
2408
      columns([{t1: ({t1: (t1.__pk_increment, t1.a, t1.quux)})}]), 
2409
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)], [column_conv(DECIMAL_INT,PS:(31,30),NULL,__values.quux)])
2410
  1 - output([__values.a], [__values.quux]), filter(nil)
2411
      values({1, 1}, {2, 0.1})
2412
INSERT INTO
2413
 t1 ( a, quux )
2414
VALUES
2415
    ( 1,    1 ),
2416
    ( 2,  0.1 );
2417

2418
EXPLAIN BASIC SELECT * FROM t1;
2419
Query Plan
2420
=========================
2421
|ID|OPERATOR       |NAME|
2422
-------------------------
2423
|0 |TABLE FULL SCAN|t1  |
2424
=========================
2425
Outputs & filters:
2426
-------------------------------------
2427
  0 - output([t1.a], [t1.quux]), filter(nil), rowset=16
2428
      access([t1.a], [t1.quux]), partitions(p0)
2429
      is_index_back=false, is_global_index=false, 
2430
      range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2431
SELECT * FROM t1;
2432
+------+----------------------------------+
2433
| a    | quux                             |
2434
+------+----------------------------------+
2435
|    1 | 1.000000000000000000000000000000 |
2436
|    2 | 0.100000000000000000000000000000 |
2437
+------+----------------------------------+
2438

2439
DROP TABLE t1;
2440

2441
## Create the test tables
2442
##insert into t2(a) select a from t2; 
2443
##insert into t2(a) select a from t2;
2444
##insert into t2(a) select a from t2; 
2445
## Check that the number of matched rows is correct when the temporary
2446
## table is small enough to not be converted to MyISAM
2447
##--enable_info
2448
##update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
2449
##--disable_info
2450
## Increase table sizes
2451
##insert into t2(a) select a from t2; 
2452
##insert into t1 select * from t2; 
2453
## Check that the number of matched rows is correct when the temporary
2454
## table has to be converted to MyISAM
2455
## Check that the number of matched rows is correct when there are duplicate
2456
## key errors
2457
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1));
2458
CREATE TABLE t2(f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1));
2459
EXPLAIN BASIC INSERT INTO t1 VALUES (1);
2460
Query Plan
2461
============================
2462
|ID|OPERATOR          |NAME|
2463
----------------------------
2464
|0 |DISTRIBUTED INSERT|    |
2465
|1 |└─EXPRESSION      |    |
2466
============================
2467
Outputs & filters:
2468
-------------------------------------
2469
  0 - output(nil), filter(nil)
2470
      columns([{t1: ({t1: (t1.f1)})}]), 
2471
      column_values([column_conv(INT,PS:(11,0),NOT NULL,t1.f1.nextval(column_conv(INT,PS:(11,0),NOT NULL,__values.f1)))])
2472
  1 - output([__values.f1]), filter(nil)
2473
      values({1})
2474
INSERT INTO t1 VALUES (1);
2475
EXPLAIN BASIC INSERT INTO t2 VALUES (1);
2476
Query Plan
2477
============================
2478
|ID|OPERATOR          |NAME|
2479
----------------------------
2480
|0 |DISTRIBUTED INSERT|    |
2481
|1 |└─EXPRESSION      |    |
2482
============================
2483
Outputs & filters:
2484
-------------------------------------
2485
  0 - output(nil), filter(nil)
2486
      columns([{t2: ({t2: (t2.f1)})}]), 
2487
      column_values([column_conv(INT,PS:(11,0),NOT NULL,t2.f1.nextval(column_conv(INT,PS:(11,0),NOT NULL,__values.f1)))])
2488
  1 - output([__values.f1]), filter(nil)
2489
      values({1})
2490
INSERT INTO t2 VALUES (1);
2491

2492
ALTER TABLE t2 COMMENT = 'ABC';
2493
ALTER TABLE t2 COMMENT = 'DEF';
2494

2495
DROP TABLE t1, t2;
2496

2497
#
2498
# Bug#50545: Single table UPDATE IGNORE crashes on join view in
2499
# sql_safe_updates mode.
2500
#
2501
CREATE TABLE t1 ( a INT, KEY( a ) );
2502
EXPLAIN BASIC INSERT INTO t1 VALUES (0), (1);
2503
Query Plan
2504
============================
2505
|ID|OPERATOR          |NAME|
2506
----------------------------
2507
|0 |DISTRIBUTED INSERT|    |
2508
|1 |└─EXPRESSION      |    |
2509
============================
2510
Outputs & filters:
2511
-------------------------------------
2512
  0 - output(nil), filter(nil)
2513
      columns([{t1: ({t1: (t1.__pk_increment, t1.a)})}]), 
2514
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.a)])
2515
  1 - output([__values.a]), filter(nil)
2516
      values({0}, {1})
2517
INSERT INTO t1 VALUES (0), (1);
2518
CREATE VIEW v1 AS SELECT t11.a, t12.a AS b FROM t1 t11, t1 t12;
2519
DROP TABLE t1;
2520
DROP VIEW v1;
2521

2522
#
2523
# Bug#54734 assert in Diagnostics_area::set_ok_status
2524
#
2525
#
2526
# Verify that UPDATE does the same number of handler_update
2527
# operations, no matter if there is ORDER BY or not.
2528
#
2529
CREATE TABLE t1 (i INT);
2530
EXPLAIN BASIC INSERT INTO t1 VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19),
2531
                      (20),(21),(22),(23),(24),(25),(26),(27),(28),(29),
2532
                      (30),(31),(32),(33),(34),(35);
2533
Query Plan
2534
============================
2535
|ID|OPERATOR          |NAME|
2536
----------------------------
2537
|0 |DISTRIBUTED INSERT|    |
2538
|1 |└─EXPRESSION      |    |
2539
============================
2540
Outputs & filters:
2541
-------------------------------------
2542
  0 - output(nil), filter(nil)
2543
      columns([{t1: ({t1: (t1.__pk_increment, t1.i)})}]), 
2544
      column_values([T_HIDDEN_PK], [column_conv(INT,PS:(11,0),NULL,__values.i)])
2545
  1 - output([__values.i]), filter(nil)
2546
      values({10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33},
2547
       {34}, {35})
2548
INSERT INTO t1 VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19),
2549
                      (20),(21),(22),(23),(24),(25),(26),(27),(28),(29),
2550
                      (30),(31),(32),(33),(34),(35);
2551
CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2),
2552
                 INDEX idx (a,b,c));
2553

2554
EXPLAIN BASIC INSERT INTO t2 VALUES (10,10,10,10),(11,11,11,11),(12,12,12,12),(13,13,13,13),(14,14,14,14),(15,15,15,15),(16,16,16,16),(17,17,17,17),(18,18,18,18),(19,19,19,19);
2555
Query Plan
2556
============================
2557
|ID|OPERATOR          |NAME|
2558
----------------------------
2559
|0 |DISTRIBUTED INSERT|    |
2560
|1 |└─EXPRESSION      |    |
2561
============================
2562
Outputs & filters:
2563
-------------------------------------
2564
  0 - output(nil), filter(nil)
2565
      columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b, t2.c, t2.d)})}]), 
2566
      column_values([T_HIDDEN_PK], [column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,__values.a)], [column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,__values.b)],
2567
       [column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,__values.c)], [column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,__values.d)])
2568
  1 - output([__values.a], [__values.b], [__values.c], [__values.d]), filter(nil)
2569
      values({10, 10, 10, 10}, {11, 11, 11, 11}, {12, 12, 12, 12}, {13, 13, 13, 13}, {14, 14, 14, 14}, {15, 15, 15, 15}, {16, 16, 16, 16}, {17, 17, 17, 
2570
      17}, {18, 18, 18, 18}, {19, 19, 19, 19})
2571
INSERT INTO t2 VALUES (10,10,10,10),(11,11,11,11),(12,12,12,12),(13,13,13,13),(14,14,14,14),(15,15,15,15),(16,16,16,16),(17,17,17,17),(18,18,18,18),(19,19,19,19);
2572

2573
START TRANSACTION;
2574
EXPLAIN BASIC UPDATE t2 SET d = 10 WHERE b = 10 LIMIT 5;
2575
Query Plan
2576
===========================
2577
|ID|OPERATOR         |NAME|
2578
---------------------------
2579
|0 |UPDATE           |    |
2580
|1 |└─TABLE FULL SCAN|t2  |
2581
===========================
2582
Outputs & filters:
2583
-------------------------------------
2584
  0 - output(nil), filter(nil)
2585
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b, t2.c, t2.d)})}]),
2586
      update([t2.d=column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(10, VARCHAR(1048576))), CHAR(1048576)))])
2587
  1 - output([t2.__pk_increment], [t2.d], [t2.a], [t2.b], [t2.c]), filter([cast(t2.b, DECIMAL(-1, -1)) = cast(10, DECIMAL(2, 0))]), rowset=16
2588
      access([t2.__pk_increment], [t2.d], [t2.a], [t2.b], [t2.c]), partitions(p0)
2589
      limit(5), offset(nil), is_index_back=false, is_global_index=false, filter_before_indexback[false], 
2590
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2591
UPDATE t2 SET d = 10 WHERE b = 10 LIMIT 5;
2592
ROLLBACK;
2593
START TRANSACTION;
2594
EXPLAIN BASIC UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;
2595
Query Plan
2596
=============================
2597
|ID|OPERATOR           |NAME|
2598
-----------------------------
2599
|0 |UPDATE             |    |
2600
|1 |└─TOP-N SORT       |    |
2601
|2 |  └─TABLE FULL SCAN|t2  |
2602
=============================
2603
Outputs & filters:
2604
-------------------------------------
2605
  0 - output(nil), filter(nil)
2606
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b, t2.c, t2.d)})}]),
2607
      update([t2.d=column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(10, VARCHAR(1048576))), CHAR(1048576)))])
2608
  1 - output([t2.__pk_increment], [t2.a], [t2.b], [t2.c], [t2.d]), filter(nil), rowset=16
2609
      sort_keys([t2.a, ASC], [t2.c, ASC]), topn(5)
2610
  2 - output([t2.__pk_increment], [t2.d], [t2.a], [t2.b], [t2.c]), filter([cast(t2.b, DECIMAL(-1, -1)) = cast(10, DECIMAL(2, 0))]), rowset=16
2611
      access([t2.__pk_increment], [t2.d], [t2.a], [t2.b], [t2.c]), partitions(p0)
2612
      is_index_back=false, is_global_index=false, filter_before_indexback[false], 
2613
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2614
UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;
2615
ROLLBACK;
2616

2617
Same test with a different UPDATE.
2618
ALTER TABLE t2 DROP INDEX idx;
2619
alter table t2 ADD INDEX idx2 (a, b);
2620
START TRANSACTION;
2621
EXPLAIN BASIC UPDATE t2 SET c = 10 LIMIT 5;
2622
Query Plan
2623
===========================
2624
|ID|OPERATOR         |NAME|
2625
---------------------------
2626
|0 |UPDATE           |    |
2627
|1 |└─TABLE FULL SCAN|t2  |
2628
===========================
2629
Outputs & filters:
2630
-------------------------------------
2631
  0 - output(nil), filter(nil)
2632
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b, t2.c, t2.d)})}]),
2633
      update([t2.c=column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(10, VARCHAR(1048576))), CHAR(1048576)))])
2634
  1 - output([t2.__pk_increment], [t2.c], [t2.a], [t2.b], [t2.d]), filter(nil), rowset=16
2635
      access([t2.__pk_increment], [t2.c], [t2.a], [t2.b], [t2.d]), partitions(p0)
2636
      limit(5), offset(nil), is_index_back=false, is_global_index=false, 
2637
      range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2638
UPDATE t2 SET c = 10 LIMIT 5;
2639
ROLLBACK;
2640
START TRANSACTION;
2641
EXPLAIN BASIC UPDATE t2 SET c = 10 ORDER BY a, b DESC LIMIT 5;
2642
Query Plan
2643
=================================
2644
|ID|OPERATOR           |NAME    |
2645
---------------------------------
2646
|0 |UPDATE             |        |
2647
|1 |└─TOP-N SORT       |        |
2648
|2 |  └─TABLE FULL SCAN|t2(idx2)|
2649
=================================
2650
Outputs & filters:
2651
-------------------------------------
2652
  0 - output(nil), filter(nil)
2653
      table_columns([{t2: ({t2: (t2.__pk_increment, t2.a, t2.b, t2.c, t2.d)})}]),
2654
      update([t2.c=column_conv(CHAR,utf8mb4_general_ci,length:2,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), cast(10, VARCHAR(1048576))), CHAR(1048576)))])
2655
  1 - output([t2.__pk_increment], [t2.a], [t2.b], [t2.c], [t2.d]), filter(nil), rowset=16
2656
      sort_keys([t2.a, ASC], [t2.b, DESC]), topn(5), prefix_pos(1)
2657
  2 - output([t2.__pk_increment], [t2.c], [t2.a], [t2.b], [t2.d]), filter(nil), rowset=16
2658
      access([t2.__pk_increment], [t2.c], [t2.a], [t2.b], [t2.d]), partitions(p0)
2659
      is_index_back=true, is_global_index=false, 
2660
      range_key([t2.a], [t2.b], [t2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2661
UPDATE t2 SET c = 10 ORDER BY a, b DESC LIMIT 5;
2662
ROLLBACK;
2663
DROP TABLE t1, t2;
2664

2665
drop table if exists table10_bigint;
2666
CREATE TABLE table10_bigint (col_char_34_key char(34),col_char_24 char(24),col_char_48_unique_index char(48),col_char_26_unique_index char(26),col_char_36 char(36),col_char_26 char(26),col_char_20 char(20),col_char_37 char(37),col_char_29_key char(29),pk bigint,col_char_20_unique_index char(20),col_char_39 char(39),col_char_23 char(23),col_char_28_key char(28),col_char_45 char(45),col_char_40_unique_index char(40),col_char_43_unique_index char(43),col_char_21_key char(21),col_char_29 char(29),col_char_25_key char(25),col_timestamp_6 timestamp(6) NULL DEFAULT NULL,col_char_32_key char(32),col_char_22 char(22),col_char_45_key char(45),col_char_20_key char(20),col_char_35_key char(35),col_char_22_unique_index char(22),col_char_46_unique_index char(46),col_char_28_unique_index char(28),col_char_25 char(25),col_char_42_unique_index char(42),col_char_30_key char(30),col_char_33_unique_index char(33),col_char_42 char(42),col_char_23_key char(23),col_char_36_key char(36),col_timestamp_6_unique_index timestamp(6) NULL DEFAULT NULL,col_char_37_unique_index char(37),col_char_46_key char(46),col_char_32_unique_index char(32),col_char_34_unique_index char(34),col_char_28 char(28),col_char_25_unique_index char(25),col_char_39_unique_index char(39),col_char_30 char(30),col_char_36_unique_index char(36),col_char_47_key char(47),col_char_41_unique_index char(41),col_char_42_key char(42),col_char_48 char(48),col_char_46 char(46),col_char_48_key char(48),col_char_22_key char(22),col_bigint_unique_index bigint,col_char_38 char(38),col_char_21 char(21),col_char_43 char(43),col_char_27 char(27),col_char_40_key char(40),col_char_40 char(40),col_char_47_unique_index char(47),col_char_21_unique_index char(21),col_char_33 char(33),col_char_27_unique_index char(27),col_char_44_key char(44),col_char_35_unique_index char(35),col_char_26_key char(26),col_bigint bigint,col_char_30_unique_index char(30),col_char_45_unique_index char(45),col_char_32 char(32),col_char_41 char(41),col_char_24_unique_index char(24),col_char_31_unique_index char(31),col_char_33_key char(33),col_char_39_key char(39),col_char_35 char(35),col_timestamp_6_key timestamp(6) NULL DEFAULT NULL,col_char_44 char(44),col_char_31 char(31),col_char_43_key char(43),col_char_29_unique_index char(29),col_char_37_key char(37),col_char_23_unique_index char(23),col_char_41_key char(41),col_char_38_unique_index char(38),col_char_44_unique_index char(44),col_bigint_key bigint,col_char_24_key char(24),col_char_27_key char(27),col_char_38_key char(38),col_char_47 char(47),col_char_31_key char(31),col_char_34 char(34),key idx46(col_char_34_key ),key idx31(col_char_29_key ),primary key (pk)) ;
2667
EXPLAIN BASIC insert into table10_bigint values('a', 'b','c','d','e', 'f', 'h','i','j',1,'a', 'b','c','d','e', 'f', 'h','i','j','k','2001-03-04 10:10:10', 'a', 'b','c','d','e', 'f', 'h','i','j','k','j','i','o','p','u','2001-03-04 10:10:10','a', 'b','c','d','e', 'f',     'h','i','j','k','j','i','o','p','u','y',2,'a', 'b','c','d','e', 'f','h','i','j','k','j','i','o',3,'a', 'b','c','d','e', 'f', 'h','i','j','2001-03-04 10:10:10','a', 'b','c','d','e', 'f', 'h','i','j',4,'a', 'b','c','d','e', 'f');
2668
Query Plan
2669
============================
2670
|ID|OPERATOR          |NAME|
2671
----------------------------
2672
|0 |DISTRIBUTED INSERT|    |
2673
|1 |└─EXPRESSION      |    |
2674
============================
2675
Outputs & filters:
2676
-------------------------------------
2677
  0 - output(nil), filter(nil)
2678
      columns([{table10_bigint: ({table10_bigint: (table10_bigint.pk, table10_bigint.col_char_34_key, table10_bigint.col_char_24, table10_bigint.col_char_48_unique_index,
2679
       table10_bigint.col_char_26_unique_index, table10_bigint.col_char_36, table10_bigint.col_char_26, table10_bigint.col_char_20, table10_bigint.col_char_37,
2680
       table10_bigint.col_char_29_key, table10_bigint.col_char_20_unique_index, table10_bigint.col_char_39, table10_bigint.col_char_23, table10_bigint.col_char_28_key,
2681
       table10_bigint.col_char_45, table10_bigint.col_char_40_unique_index, table10_bigint.col_char_43_unique_index, table10_bigint.col_char_21_key, table10_bigint.col_char_29,
2682
       table10_bigint.col_char_25_key, table10_bigint.col_timestamp_6, table10_bigint.col_char_32_key, table10_bigint.col_char_22, table10_bigint.col_char_45_key,
2683
       table10_bigint.col_char_20_key, table10_bigint.col_char_35_key, table10_bigint.col_char_22_unique_index, table10_bigint.col_char_46_unique_index, table10_bigint.col_char_28_unique_index,
2684
       table10_bigint.col_char_25, table10_bigint.col_char_42_unique_index, table10_bigint.col_char_30_key, table10_bigint.col_char_33_unique_index, table10_bigint.col_char_42,
2685
       table10_bigint.col_char_23_key, table10_bigint.col_char_36_key, table10_bigint.col_timestamp_6_unique_index, table10_bigint.col_char_37_unique_index, table10_bigint.col_char_46_key,
2686
       table10_bigint.col_char_32_unique_index, table10_bigint.col_char_34_unique_index, table10_bigint.col_char_28, table10_bigint.col_char_25_unique_index, 
2687
      table10_bigint.col_char_39_unique_index, table10_bigint.col_char_30, table10_bigint.col_char_36_unique_index, table10_bigint.col_char_47_key, table10_bigint.col_char_41_unique_index,
2688
       table10_bigint.col_char_42_key, table10_bigint.col_char_48, table10_bigint.col_char_46, table10_bigint.col_char_48_key, table10_bigint.col_char_22_key,
2689
       table10_bigint.col_bigint_unique_index, table10_bigint.col_char_38, table10_bigint.col_char_21, table10_bigint.col_char_43, table10_bigint.col_char_27,
2690
       table10_bigint.col_char_40_key, table10_bigint.col_char_40, table10_bigint.col_char_47_unique_index, table10_bigint.col_char_21_unique_index, table10_bigint.col_char_33,
2691
       table10_bigint.col_char_27_unique_index, table10_bigint.col_char_44_key, table10_bigint.col_char_35_unique_index, table10_bigint.col_char_26_key, table10_bigint.col_bigint,
2692
       table10_bigint.col_char_30_unique_index, table10_bigint.col_char_45_unique_index, table10_bigint.col_char_32, table10_bigint.col_char_41, table10_bigint.col_char_24_unique_index,
2693
       table10_bigint.col_char_31_unique_index, table10_bigint.col_char_33_key, table10_bigint.col_char_39_key, table10_bigint.col_char_35, table10_bigint.col_timestamp_6_key,
2694
       table10_bigint.col_char_44, table10_bigint.col_char_31, table10_bigint.col_char_43_key, table10_bigint.col_char_29_unique_index, table10_bigint.col_char_37_key,
2695
       table10_bigint.col_char_23_unique_index, table10_bigint.col_char_41_key, table10_bigint.col_char_38_unique_index, table10_bigint.col_char_44_unique_index,
2696
       table10_bigint.col_bigint_key, table10_bigint.col_char_24_key, table10_bigint.col_char_27_key, table10_bigint.col_char_38_key, table10_bigint.col_char_47,
2697
       table10_bigint.col_char_31_key, table10_bigint.col_char_34)})}]), 
2698
      column_values([column_conv(BIGINT,PS:(20,0),NOT NULL,__values.pk)], [column_conv(CHAR,utf8mb4_general_ci,length:34,NULL,__values.col_char_34_key)],
2699
       [column_conv(CHAR,utf8mb4_general_ci,length:24,NULL,__values.col_char_24)], [column_conv(CHAR,utf8mb4_general_ci,length:48,NULL,__values.col_char_48_unique_index)],
2700
       [column_conv(CHAR,utf8mb4_general_ci,length:26,NULL,__values.col_char_26_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:36,NULL,__values.col_char_36)],
2701
       [column_conv(CHAR,utf8mb4_general_ci,length:26,NULL,__values.col_char_26)], [column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,__values.col_char_20)],
2702
       [column_conv(CHAR,utf8mb4_general_ci,length:37,NULL,__values.col_char_37)], [column_conv(CHAR,utf8mb4_general_ci,length:29,NULL,__values.col_char_29_key)],
2703
       [column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,__values.col_char_20_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:39,NULL,__values.col_char_39)],
2704
       [column_conv(CHAR,utf8mb4_general_ci,length:23,NULL,__values.col_char_23)], [column_conv(CHAR,utf8mb4_general_ci,length:28,NULL,__values.col_char_28_key)],
2705
       [column_conv(CHAR,utf8mb4_general_ci,length:45,NULL,__values.col_char_45)], [column_conv(CHAR,utf8mb4_general_ci,length:40,NULL,__values.col_char_40_unique_index)],
2706
       [column_conv(CHAR,utf8mb4_general_ci,length:43,NULL,__values.col_char_43_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:21,NULL,__values.col_char_21_key)],
2707
       [column_conv(CHAR,utf8mb4_general_ci,length:29,NULL,__values.col_char_29)], [column_conv(CHAR,utf8mb4_general_ci,length:25,NULL,__values.col_char_25_key)],
2708
       [column_conv(TIMESTAMP,PS:(25,6),NULL,__values.col_timestamp_6)], [column_conv(CHAR,utf8mb4_general_ci,length:32,NULL,__values.col_char_32_key)], [column_conv(CHAR,
2709
      utf8mb4_general_ci,length:22,NULL,__values.col_char_22)], [column_conv(CHAR,utf8mb4_general_ci,length:45,NULL,__values.col_char_45_key)], [column_conv(CHAR,
2710
      utf8mb4_general_ci,length:20,NULL,__values.col_char_20_key)], [column_conv(CHAR,utf8mb4_general_ci,length:35,NULL,__values.col_char_35_key)], [column_conv(CHAR,
2711
      utf8mb4_general_ci,length:22,NULL,__values.col_char_22_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:46,NULL,__values.col_char_46_unique_index)],
2712
       [column_conv(CHAR,utf8mb4_general_ci,length:28,NULL,__values.col_char_28_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:25,NULL,__values.col_char_25)],
2713
       [column_conv(CHAR,utf8mb4_general_ci,length:42,NULL,__values.col_char_42_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:30,NULL,__values.col_char_30_key)],
2714
       [column_conv(CHAR,utf8mb4_general_ci,length:33,NULL,__values.col_char_33_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:42,NULL,__values.col_char_42)],
2715
       [column_conv(CHAR,utf8mb4_general_ci,length:23,NULL,__values.col_char_23_key)], [column_conv(CHAR,utf8mb4_general_ci,length:36,NULL,__values.col_char_36_key)],
2716
       [column_conv(TIMESTAMP,PS:(25,6),NULL,__values.col_timestamp_6_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:37,NULL,__values.col_char_37_unique_index)],
2717
       [column_conv(CHAR,utf8mb4_general_ci,length:46,NULL,__values.col_char_46_key)], [column_conv(CHAR,utf8mb4_general_ci,length:32,NULL,__values.col_char_32_unique_index)],
2718
       [column_conv(CHAR,utf8mb4_general_ci,length:34,NULL,__values.col_char_34_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:28,NULL,__values.col_char_28)],
2719
       [column_conv(CHAR,utf8mb4_general_ci,length:25,NULL,__values.col_char_25_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:39,NULL,__values.col_char_39_unique_index)],
2720
       [column_conv(CHAR,utf8mb4_general_ci,length:30,NULL,__values.col_char_30)], [column_conv(CHAR,utf8mb4_general_ci,length:36,NULL,__values.col_char_36_unique_index)],
2721
       [column_conv(CHAR,utf8mb4_general_ci,length:47,NULL,__values.col_char_47_key)], [column_conv(CHAR,utf8mb4_general_ci,length:41,NULL,__values.col_char_41_unique_index)],
2722
       [column_conv(CHAR,utf8mb4_general_ci,length:42,NULL,__values.col_char_42_key)], [column_conv(CHAR,utf8mb4_general_ci,length:48,NULL,__values.col_char_48)],
2723
       [column_conv(CHAR,utf8mb4_general_ci,length:46,NULL,__values.col_char_46)], [column_conv(CHAR,utf8mb4_general_ci,length:48,NULL,__values.col_char_48_key)],
2724
       [column_conv(CHAR,utf8mb4_general_ci,length:22,NULL,__values.col_char_22_key)], [column_conv(BIGINT,PS:(20,0),NULL,__values.col_bigint_unique_index)], 
2725
      [column_conv(CHAR,utf8mb4_general_ci,length:38,NULL,__values.col_char_38)], [column_conv(CHAR,utf8mb4_general_ci,length:21,NULL,__values.col_char_21)], 
2726
      [column_conv(CHAR,utf8mb4_general_ci,length:43,NULL,__values.col_char_43)], [column_conv(CHAR,utf8mb4_general_ci,length:27,NULL,__values.col_char_27)], 
2727
      [column_conv(CHAR,utf8mb4_general_ci,length:40,NULL,__values.col_char_40_key)], [column_conv(CHAR,utf8mb4_general_ci,length:40,NULL,__values.col_char_40)],
2728
       [column_conv(CHAR,utf8mb4_general_ci,length:47,NULL,__values.col_char_47_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:21,NULL,__values.col_char_21_unique_index)],
2729
       [column_conv(CHAR,utf8mb4_general_ci,length:33,NULL,__values.col_char_33)], [column_conv(CHAR,utf8mb4_general_ci,length:27,NULL,__values.col_char_27_unique_index)],
2730
       [column_conv(CHAR,utf8mb4_general_ci,length:44,NULL,__values.col_char_44_key)], [column_conv(CHAR,utf8mb4_general_ci,length:35,NULL,__values.col_char_35_unique_index)],
2731
       [column_conv(CHAR,utf8mb4_general_ci,length:26,NULL,__values.col_char_26_key)], [column_conv(BIGINT,PS:(20,0),NULL,__values.col_bigint)], [column_conv(CHAR,
2732
      utf8mb4_general_ci,length:30,NULL,__values.col_char_30_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:45,NULL,__values.col_char_45_unique_index)],
2733
       [column_conv(CHAR,utf8mb4_general_ci,length:32,NULL,__values.col_char_32)], [column_conv(CHAR,utf8mb4_general_ci,length:41,NULL,__values.col_char_41)],
2734
       [column_conv(CHAR,utf8mb4_general_ci,length:24,NULL,__values.col_char_24_unique_index)], [column_conv(CHAR,utf8mb4_general_ci,length:31,NULL,__values.col_char_31_unique_index)],
2735
       [column_conv(CHAR,utf8mb4_general_ci,length:33,NULL,__values.col_char_33_key)], [column_conv(CHAR,utf8mb4_general_ci,length:39,NULL,__values.col_char_39_key)],
2736
       [column_conv(CHAR,utf8mb4_general_ci,length:35,NULL,__values.col_char_35)], [column_conv(TIMESTAMP,PS:(25,6),NULL,__values.col_timestamp_6_key)], [column_conv(CHAR,
2737
      utf8mb4_general_ci,length:44,NULL,__values.col_char_44)], [column_conv(CHAR,utf8mb4_general_ci,length:31,NULL,__values.col_char_31)], [column_conv(CHAR,
2738
      utf8mb4_general_ci,length:43,NULL,__values.col_char_43_key)], [column_conv(CHAR,utf8mb4_general_ci,length:29,NULL,__values.col_char_29_unique_index)], [column_conv(CHAR,
2739
      utf8mb4_general_ci,length:37,NULL,__values.col_char_37_key)], [column_conv(CHAR,utf8mb4_general_ci,length:23,NULL,__values.col_char_23_unique_index)], [column_conv(CHAR,
2740
      utf8mb4_general_ci,length:41,NULL,__values.col_char_41_key)], [column_conv(CHAR,utf8mb4_general_ci,length:38,NULL,__values.col_char_38_unique_index)], [column_conv(CHAR,
2741
      utf8mb4_general_ci,length:44,NULL,__values.col_char_44_unique_index)], [column_conv(BIGINT,PS:(20,0),NULL,__values.col_bigint_key)], [column_conv(CHAR,utf8mb4_general_ci,
2742
      length:24,NULL,__values.col_char_24_key)], [column_conv(CHAR,utf8mb4_general_ci,length:27,NULL,__values.col_char_27_key)], [column_conv(CHAR,utf8mb4_general_ci,
2743
      length:38,NULL,__values.col_char_38_key)], [column_conv(CHAR,utf8mb4_general_ci,length:47,NULL,__values.col_char_47)], [column_conv(CHAR,utf8mb4_general_ci,
2744
      length:31,NULL,__values.col_char_31_key)], [column_conv(CHAR,utf8mb4_general_ci,length:34,NULL,__values.col_char_34)])
2745
  1 - output([__values.col_char_34_key], [__values.col_char_24], [__values.col_char_48_unique_index], [__values.col_char_26_unique_index], [__values.col_char_36],
2746
       [__values.col_char_26], [__values.col_char_20], [__values.col_char_37], [__values.col_char_29_key], [__values.pk], [__values.col_char_20_unique_index],
2747
       [__values.col_char_39], [__values.col_char_23], [__values.col_char_28_key], [__values.col_char_45], [__values.col_char_40_unique_index], [__values.col_char_43_unique_index],
2748
       [__values.col_char_21_key], [__values.col_char_29], [__values.col_char_25_key], [__values.col_timestamp_6], [__values.col_char_32_key], [__values.col_char_22],
2749
       [__values.col_char_45_key], [__values.col_char_20_key], [__values.col_char_35_key], [__values.col_char_22_unique_index], [__values.col_char_46_unique_index],
2750
       [__values.col_char_28_unique_index], [__values.col_char_25], [__values.col_char_42_unique_index], [__values.col_char_30_key], [__values.col_char_33_unique_index],
2751
       [__values.col_char_42], [__values.col_char_23_key], [__values.col_char_36_key], [__values.col_timestamp_6_unique_index], [__values.col_char_37_unique_index],
2752
       [__values.col_char_46_key], [__values.col_char_32_unique_index], [__values.col_char_34_unique_index], [__values.col_char_28], [__values.col_char_25_unique_index],
2753
       [__values.col_char_39_unique_index], [__values.col_char_30], [__values.col_char_36_unique_index], [__values.col_char_47_key], [__values.col_char_41_unique_index],
2754
       [__values.col_char_42_key], [__values.col_char_48], [__values.col_char_46], [__values.col_char_48_key], [__values.col_char_22_key], [__values.col_bigint_unique_index],
2755
       [__values.col_char_38], [__values.col_char_21], [__values.col_char_43], [__values.col_char_27], [__values.col_char_40_key], [__values.col_char_40], [__values.col_char_47_unique_index],
2756
       [__values.col_char_21_unique_index], [__values.col_char_33], [__values.col_char_27_unique_index], [__values.col_char_44_key], [__values.col_char_35_unique_index],
2757
       [__values.col_char_26_key], [__values.col_bigint], [__values.col_char_30_unique_index], [__values.col_char_45_unique_index], [__values.col_char_32], [__values.col_char_41],
2758
       [__values.col_char_24_unique_index], [__values.col_char_31_unique_index], [__values.col_char_33_key], [__values.col_char_39_key], [__values.col_char_35],
2759
       [__values.col_timestamp_6_key], [__values.col_char_44], [__values.col_char_31], [__values.col_char_43_key], [__values.col_char_29_unique_index], [__values.col_char_37_key],
2760
       [__values.col_char_23_unique_index], [__values.col_char_41_key], [__values.col_char_38_unique_index], [__values.col_char_44_unique_index], [__values.col_bigint_key],
2761
       [__values.col_char_24_key], [__values.col_char_27_key], [__values.col_char_38_key], [__values.col_char_47], [__values.col_char_31_key], [__values.col_char_34]), filter(nil)
2762
      values({'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 1, 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', '2001-03-04 10:10:10', 'a', 'b', 'c', 'd',
2763
       'e', 'f', 'h', 'i', 'j', 'k', 'j', 'i', 'o', 'p', 'u', '2001-03-04 10:10:10', 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'j', 'i', 'o', 'p', 'u',
2764
       'y', 2, 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'j', 'i', 'o', 3, 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', '2001-03-04 10:10:10', 'a', 'b',
2765
       'c', 'd', 'e', 'f', 'h', 'i', 'j', 4, 'a', 'b', 'c', 'd', 'e', 'f'})
2766
insert into table10_bigint values('a', 'b','c','d','e', 'f', 'h','i','j',1,'a', 'b','c','d','e', 'f', 'h','i','j','k','2001-03-04 10:10:10', 'a', 'b','c','d','e', 'f', 'h','i','j','k','j','i','o','p','u','2001-03-04 10:10:10','a', 'b','c','d','e', 'f',     'h','i','j','k','j','i','o','p','u','y',2,'a', 'b','c','d','e', 'f','h','i','j','k','j','i','o',3,'a', 'b','c','d','e', 'f', 'h','i','j','2001-03-04 10:10:10','a', 'b','c','d','e', 'f', 'h','i','j',4,'a', 'b','c','d','e', 'f');
2767
EXPLAIN BASIC UPDATE table10_bigint SET col_char_20 = 'a' ;
2768
Query Plan
2769
=====================================
2770
|ID|OPERATOR         |NAME          |
2771
-------------------------------------
2772
|0 |UPDATE           |              |
2773
|1 |└─TABLE FULL SCAN|table10_bigint|
2774
=====================================
2775
Outputs & filters:
2776
-------------------------------------
2777
  0 - output(nil), filter(nil)
2778
      table_columns([{table10_bigint: ({table10_bigint: (table10_bigint.pk, table10_bigint.col_char_34_key, table10_bigint.col_char_24, table10_bigint.col_char_48_unique_index,
2779
       table10_bigint.col_char_26_unique_index, table10_bigint.col_char_36, table10_bigint.col_char_26, table10_bigint.col_char_20, table10_bigint.col_char_37,
2780
       table10_bigint.col_char_29_key, table10_bigint.col_char_20_unique_index, table10_bigint.col_char_39, table10_bigint.col_char_23, table10_bigint.col_char_28_key,
2781
       table10_bigint.col_char_45, table10_bigint.col_char_40_unique_index, table10_bigint.col_char_43_unique_index, table10_bigint.col_char_21_key, table10_bigint.col_char_29,
2782
       table10_bigint.col_char_25_key, table10_bigint.col_timestamp_6, table10_bigint.col_char_32_key, table10_bigint.col_char_22, table10_bigint.col_char_45_key,
2783
       table10_bigint.col_char_20_key, table10_bigint.col_char_35_key, table10_bigint.col_char_22_unique_index, table10_bigint.col_char_46_unique_index, table10_bigint.col_char_28_unique_index,
2784
       table10_bigint.col_char_25, table10_bigint.col_char_42_unique_index, table10_bigint.col_char_30_key, table10_bigint.col_char_33_unique_index, table10_bigint.col_char_42,
2785
       table10_bigint.col_char_23_key, table10_bigint.col_char_36_key, table10_bigint.col_timestamp_6_unique_index, table10_bigint.col_char_37_unique_index, table10_bigint.col_char_46_key,
2786
       table10_bigint.col_char_32_unique_index, table10_bigint.col_char_34_unique_index, table10_bigint.col_char_28, table10_bigint.col_char_25_unique_index, 
2787
      table10_bigint.col_char_39_unique_index, table10_bigint.col_char_30, table10_bigint.col_char_36_unique_index, table10_bigint.col_char_47_key, table10_bigint.col_char_41_unique_index,
2788
       table10_bigint.col_char_42_key, table10_bigint.col_char_48, table10_bigint.col_char_46, table10_bigint.col_char_48_key, table10_bigint.col_char_22_key,
2789
       table10_bigint.col_bigint_unique_index, table10_bigint.col_char_38, table10_bigint.col_char_21, table10_bigint.col_char_43, table10_bigint.col_char_27,
2790
       table10_bigint.col_char_40_key, table10_bigint.col_char_40, table10_bigint.col_char_47_unique_index, table10_bigint.col_char_21_unique_index, table10_bigint.col_char_33,
2791
       table10_bigint.col_char_27_unique_index, table10_bigint.col_char_44_key, table10_bigint.col_char_35_unique_index, table10_bigint.col_char_26_key, table10_bigint.col_bigint,
2792
       table10_bigint.col_char_30_unique_index, table10_bigint.col_char_45_unique_index, table10_bigint.col_char_32, table10_bigint.col_char_41, table10_bigint.col_char_24_unique_index,
2793
       table10_bigint.col_char_31_unique_index, table10_bigint.col_char_33_key, table10_bigint.col_char_39_key, table10_bigint.col_char_35, table10_bigint.col_timestamp_6_key,
2794
       table10_bigint.col_char_44, table10_bigint.col_char_31, table10_bigint.col_char_43_key, table10_bigint.col_char_29_unique_index, table10_bigint.col_char_37_key,
2795
       table10_bigint.col_char_23_unique_index, table10_bigint.col_char_41_key, table10_bigint.col_char_38_unique_index, table10_bigint.col_char_44_unique_index,
2796
       table10_bigint.col_bigint_key, table10_bigint.col_char_24_key, table10_bigint.col_char_27_key, table10_bigint.col_char_38_key, table10_bigint.col_char_47,
2797
       table10_bigint.col_char_31_key, table10_bigint.col_char_34)})}]),
2798
      update([table10_bigint.col_char_20=column_conv(CHAR,utf8mb4_general_ci,length:20,NULL,cast(inner_trim(2, cast(' ', VARCHAR(1048576)), 'a'), CHAR(1048576)))])
2799
  1 - output([table10_bigint.pk], [table10_bigint.col_char_20], [table10_bigint.col_char_34_key], [table10_bigint.col_char_24], [table10_bigint.col_char_48_unique_index],
2800
       [table10_bigint.col_char_26_unique_index], [table10_bigint.col_char_36], [table10_bigint.col_char_26], [table10_bigint.col_char_37], [table10_bigint.col_char_29_key],
2801
       [table10_bigint.col_char_20_unique_index], [table10_bigint.col_char_39], [table10_bigint.col_char_23], [table10_bigint.col_char_28_key], [table10_bigint.col_char_45],
2802
       [table10_bigint.col_char_40_unique_index], [table10_bigint.col_char_43_unique_index], [table10_bigint.col_char_21_key], [table10_bigint.col_char_29], [table10_bigint.col_char_25_key],
2803
       [table10_bigint.col_timestamp_6], [table10_bigint.col_char_32_key], [table10_bigint.col_char_22], [table10_bigint.col_char_45_key], [table10_bigint.col_char_20_key],
2804
       [table10_bigint.col_char_35_key], [table10_bigint.col_char_22_unique_index], [table10_bigint.col_char_46_unique_index], [table10_bigint.col_char_28_unique_index],
2805
       [table10_bigint.col_char_25], [table10_bigint.col_char_42_unique_index], [table10_bigint.col_char_30_key], [table10_bigint.col_char_33_unique_index], [table10_bigint.col_char_42],
2806
       [table10_bigint.col_char_23_key], [table10_bigint.col_char_36_key], [table10_bigint.col_timestamp_6_unique_index], [table10_bigint.col_char_37_unique_index],
2807
       [table10_bigint.col_char_46_key], [table10_bigint.col_char_32_unique_index], [table10_bigint.col_char_34_unique_index], [table10_bigint.col_char_28], [table10_bigint.col_char_25_unique_index],
2808
       [table10_bigint.col_char_39_unique_index], [table10_bigint.col_char_30], [table10_bigint.col_char_36_unique_index], [table10_bigint.col_char_47_key], [table10_bigint.col_char_41_unique_index],
2809
       [table10_bigint.col_char_42_key], [table10_bigint.col_char_48], [table10_bigint.col_char_46], [table10_bigint.col_char_48_key], [table10_bigint.col_char_22_key],
2810
       [table10_bigint.col_bigint_unique_index], [table10_bigint.col_char_38], [table10_bigint.col_char_21], [table10_bigint.col_char_43], [table10_bigint.col_char_27],
2811
       [table10_bigint.col_char_40_key], [table10_bigint.col_char_40], [table10_bigint.col_char_47_unique_index], [table10_bigint.col_char_21_unique_index], [table10_bigint.col_char_33],
2812
       [table10_bigint.col_char_27_unique_index], [table10_bigint.col_char_44_key], [table10_bigint.col_char_35_unique_index], [table10_bigint.col_char_26_key],
2813
       [table10_bigint.col_bigint], [table10_bigint.col_char_30_unique_index], [table10_bigint.col_char_45_unique_index], [table10_bigint.col_char_32], [table10_bigint.col_char_41],
2814
       [table10_bigint.col_char_24_unique_index], [table10_bigint.col_char_31_unique_index], [table10_bigint.col_char_33_key], [table10_bigint.col_char_39_key],
2815
       [table10_bigint.col_char_35], [table10_bigint.col_timestamp_6_key], [table10_bigint.col_char_44], [table10_bigint.col_char_31], [table10_bigint.col_char_43_key],
2816
       [table10_bigint.col_char_29_unique_index], [table10_bigint.col_char_37_key], [table10_bigint.col_char_23_unique_index], [table10_bigint.col_char_41_key],
2817
       [table10_bigint.col_char_38_unique_index], [table10_bigint.col_char_44_unique_index], [table10_bigint.col_bigint_key], [table10_bigint.col_char_24_key],
2818
       [table10_bigint.col_char_27_key], [table10_bigint.col_char_38_key], [table10_bigint.col_char_47], [table10_bigint.col_char_31_key], [table10_bigint.col_char_34]), filter(nil), rowset=16
2819
      access([table10_bigint.pk], [table10_bigint.col_char_20], [table10_bigint.col_char_34_key], [table10_bigint.col_char_24], [table10_bigint.col_char_48_unique_index],
2820
       [table10_bigint.col_char_26_unique_index], [table10_bigint.col_char_36], [table10_bigint.col_char_26], [table10_bigint.col_char_37], [table10_bigint.col_char_29_key],
2821
       [table10_bigint.col_char_20_unique_index], [table10_bigint.col_char_39], [table10_bigint.col_char_23], [table10_bigint.col_char_28_key], [table10_bigint.col_char_45],
2822
       [table10_bigint.col_char_40_unique_index], [table10_bigint.col_char_43_unique_index], [table10_bigint.col_char_21_key], [table10_bigint.col_char_29], [table10_bigint.col_char_25_key],
2823
       [table10_bigint.col_timestamp_6], [table10_bigint.col_char_32_key], [table10_bigint.col_char_22], [table10_bigint.col_char_45_key], [table10_bigint.col_char_20_key],
2824
       [table10_bigint.col_char_35_key], [table10_bigint.col_char_22_unique_index], [table10_bigint.col_char_46_unique_index], [table10_bigint.col_char_28_unique_index],
2825
       [table10_bigint.col_char_25], [table10_bigint.col_char_42_unique_index], [table10_bigint.col_char_30_key], [table10_bigint.col_char_33_unique_index], [table10_bigint.col_char_42],
2826
       [table10_bigint.col_char_23_key], [table10_bigint.col_char_36_key], [table10_bigint.col_timestamp_6_unique_index], [table10_bigint.col_char_37_unique_index],
2827
       [table10_bigint.col_char_46_key], [table10_bigint.col_char_32_unique_index], [table10_bigint.col_char_34_unique_index], [table10_bigint.col_char_28], [table10_bigint.col_char_25_unique_index],
2828
       [table10_bigint.col_char_39_unique_index], [table10_bigint.col_char_30], [table10_bigint.col_char_36_unique_index], [table10_bigint.col_char_47_key], [table10_bigint.col_char_41_unique_index],
2829
       [table10_bigint.col_char_42_key], [table10_bigint.col_char_48], [table10_bigint.col_char_46], [table10_bigint.col_char_48_key], [table10_bigint.col_char_22_key],
2830
       [table10_bigint.col_bigint_unique_index], [table10_bigint.col_char_38], [table10_bigint.col_char_21], [table10_bigint.col_char_43], [table10_bigint.col_char_27],
2831
       [table10_bigint.col_char_40_key], [table10_bigint.col_char_40], [table10_bigint.col_char_47_unique_index], [table10_bigint.col_char_21_unique_index], [table10_bigint.col_char_33],
2832
       [table10_bigint.col_char_27_unique_index], [table10_bigint.col_char_44_key], [table10_bigint.col_char_35_unique_index], [table10_bigint.col_char_26_key],
2833
       [table10_bigint.col_bigint], [table10_bigint.col_char_30_unique_index], [table10_bigint.col_char_45_unique_index], [table10_bigint.col_char_32], [table10_bigint.col_char_41],
2834
       [table10_bigint.col_char_24_unique_index], [table10_bigint.col_char_31_unique_index], [table10_bigint.col_char_33_key], [table10_bigint.col_char_39_key],
2835
       [table10_bigint.col_char_35], [table10_bigint.col_timestamp_6_key], [table10_bigint.col_char_44], [table10_bigint.col_char_31], [table10_bigint.col_char_43_key],
2836
       [table10_bigint.col_char_29_unique_index], [table10_bigint.col_char_37_key], [table10_bigint.col_char_23_unique_index], [table10_bigint.col_char_41_key],
2837
       [table10_bigint.col_char_38_unique_index], [table10_bigint.col_char_44_unique_index], [table10_bigint.col_bigint_key], [table10_bigint.col_char_24_key],
2838
       [table10_bigint.col_char_27_key], [table10_bigint.col_char_38_key], [table10_bigint.col_char_47], [table10_bigint.col_char_31_key], [table10_bigint.col_char_34]), partitions(p0)
2839
      is_index_back=false, is_global_index=false, 
2840
      range_key([table10_bigint.pk]), range(MIN ; MAX)always true
2841
UPDATE table10_bigint SET col_char_20 = 'a' ;
2842
EXPLAIN BASIC delete from table10_bigint;
2843
Query Plan
2844
=====================================
2845
|ID|OPERATOR         |NAME          |
2846
-------------------------------------
2847
|0 |DELETE           |              |
2848
|1 |└─TABLE FULL SCAN|table10_bigint|
2849
=====================================
2850
Outputs & filters:
2851
-------------------------------------
2852
  0 - output(nil), filter(nil)
2853
      table_columns([{table10_bigint: ({table10_bigint: (table10_bigint.pk, table10_bigint.col_char_34_key, table10_bigint.col_char_24, table10_bigint.col_char_48_unique_index,
2854
       table10_bigint.col_char_26_unique_index, table10_bigint.col_char_36, table10_bigint.col_char_26, table10_bigint.col_char_20, table10_bigint.col_char_37,
2855
       table10_bigint.col_char_29_key, table10_bigint.col_char_20_unique_index, table10_bigint.col_char_39, table10_bigint.col_char_23, table10_bigint.col_char_28_key,
2856
       table10_bigint.col_char_45, table10_bigint.col_char_40_unique_index, table10_bigint.col_char_43_unique_index, table10_bigint.col_char_21_key, table10_bigint.col_char_29,
2857
       table10_bigint.col_char_25_key, table10_bigint.col_timestamp_6, table10_bigint.col_char_32_key, table10_bigint.col_char_22, table10_bigint.col_char_45_key,
2858
       table10_bigint.col_char_20_key, table10_bigint.col_char_35_key, table10_bigint.col_char_22_unique_index, table10_bigint.col_char_46_unique_index, table10_bigint.col_char_28_unique_index,
2859
       table10_bigint.col_char_25, table10_bigint.col_char_42_unique_index, table10_bigint.col_char_30_key, table10_bigint.col_char_33_unique_index, table10_bigint.col_char_42,
2860
       table10_bigint.col_char_23_key, table10_bigint.col_char_36_key, table10_bigint.col_timestamp_6_unique_index, table10_bigint.col_char_37_unique_index, table10_bigint.col_char_46_key,
2861
       table10_bigint.col_char_32_unique_index, table10_bigint.col_char_34_unique_index, table10_bigint.col_char_28, table10_bigint.col_char_25_unique_index, 
2862
      table10_bigint.col_char_39_unique_index, table10_bigint.col_char_30, table10_bigint.col_char_36_unique_index, table10_bigint.col_char_47_key, table10_bigint.col_char_41_unique_index,
2863
       table10_bigint.col_char_42_key, table10_bigint.col_char_48, table10_bigint.col_char_46, table10_bigint.col_char_48_key, table10_bigint.col_char_22_key,
2864
       table10_bigint.col_bigint_unique_index, table10_bigint.col_char_38, table10_bigint.col_char_21, table10_bigint.col_char_43, table10_bigint.col_char_27,
2865
       table10_bigint.col_char_40_key, table10_bigint.col_char_40, table10_bigint.col_char_47_unique_index, table10_bigint.col_char_21_unique_index, table10_bigint.col_char_33,
2866
       table10_bigint.col_char_27_unique_index, table10_bigint.col_char_44_key, table10_bigint.col_char_35_unique_index, table10_bigint.col_char_26_key, table10_bigint.col_bigint,
2867
       table10_bigint.col_char_30_unique_index, table10_bigint.col_char_45_unique_index, table10_bigint.col_char_32, table10_bigint.col_char_41, table10_bigint.col_char_24_unique_index,
2868
       table10_bigint.col_char_31_unique_index, table10_bigint.col_char_33_key, table10_bigint.col_char_39_key, table10_bigint.col_char_35, table10_bigint.col_timestamp_6_key,
2869
       table10_bigint.col_char_44, table10_bigint.col_char_31, table10_bigint.col_char_43_key, table10_bigint.col_char_29_unique_index, table10_bigint.col_char_37_key,
2870
       table10_bigint.col_char_23_unique_index, table10_bigint.col_char_41_key, table10_bigint.col_char_38_unique_index, table10_bigint.col_char_44_unique_index,
2871
       table10_bigint.col_bigint_key, table10_bigint.col_char_24_key, table10_bigint.col_char_27_key, table10_bigint.col_char_38_key, table10_bigint.col_char_47,
2872
       table10_bigint.col_char_31_key, table10_bigint.col_char_34)})}])
2873
  1 - output([table10_bigint.pk], [table10_bigint.col_char_34_key], [table10_bigint.col_char_24], [table10_bigint.col_char_48_unique_index], [table10_bigint.col_char_26_unique_index],
2874
       [table10_bigint.col_char_36], [table10_bigint.col_char_26], [table10_bigint.col_char_20], [table10_bigint.col_char_37], [table10_bigint.col_char_29_key],
2875
       [table10_bigint.col_char_20_unique_index], [table10_bigint.col_char_39], [table10_bigint.col_char_23], [table10_bigint.col_char_28_key], [table10_bigint.col_char_45],
2876
       [table10_bigint.col_char_40_unique_index], [table10_bigint.col_char_43_unique_index], [table10_bigint.col_char_21_key], [table10_bigint.col_char_29], [table10_bigint.col_char_25_key],
2877
       [table10_bigint.col_timestamp_6], [table10_bigint.col_char_32_key], [table10_bigint.col_char_22], [table10_bigint.col_char_45_key], [table10_bigint.col_char_20_key],
2878
       [table10_bigint.col_char_35_key], [table10_bigint.col_char_22_unique_index], [table10_bigint.col_char_46_unique_index], [table10_bigint.col_char_28_unique_index],
2879
       [table10_bigint.col_char_25], [table10_bigint.col_char_42_unique_index], [table10_bigint.col_char_30_key], [table10_bigint.col_char_33_unique_index], [table10_bigint.col_char_42],
2880
       [table10_bigint.col_char_23_key], [table10_bigint.col_char_36_key], [table10_bigint.col_timestamp_6_unique_index], [table10_bigint.col_char_37_unique_index],
2881
       [table10_bigint.col_char_46_key], [table10_bigint.col_char_32_unique_index], [table10_bigint.col_char_34_unique_index], [table10_bigint.col_char_28], [table10_bigint.col_char_25_unique_index],
2882
       [table10_bigint.col_char_39_unique_index], [table10_bigint.col_char_30], [table10_bigint.col_char_36_unique_index], [table10_bigint.col_char_47_key], [table10_bigint.col_char_41_unique_index],
2883
       [table10_bigint.col_char_42_key], [table10_bigint.col_char_48], [table10_bigint.col_char_46], [table10_bigint.col_char_48_key], [table10_bigint.col_char_22_key],
2884
       [table10_bigint.col_bigint_unique_index], [table10_bigint.col_char_38], [table10_bigint.col_char_21], [table10_bigint.col_char_43], [table10_bigint.col_char_27],
2885
       [table10_bigint.col_char_40_key], [table10_bigint.col_char_40], [table10_bigint.col_char_47_unique_index], [table10_bigint.col_char_21_unique_index], [table10_bigint.col_char_33],
2886
       [table10_bigint.col_char_27_unique_index], [table10_bigint.col_char_44_key], [table10_bigint.col_char_35_unique_index], [table10_bigint.col_char_26_key],
2887
       [table10_bigint.col_bigint], [table10_bigint.col_char_30_unique_index], [table10_bigint.col_char_45_unique_index], [table10_bigint.col_char_32], [table10_bigint.col_char_41],
2888
       [table10_bigint.col_char_24_unique_index], [table10_bigint.col_char_31_unique_index], [table10_bigint.col_char_33_key], [table10_bigint.col_char_39_key],
2889
       [table10_bigint.col_char_35], [table10_bigint.col_timestamp_6_key], [table10_bigint.col_char_44], [table10_bigint.col_char_31], [table10_bigint.col_char_43_key],
2890
       [table10_bigint.col_char_29_unique_index], [table10_bigint.col_char_37_key], [table10_bigint.col_char_23_unique_index], [table10_bigint.col_char_41_key],
2891
       [table10_bigint.col_char_38_unique_index], [table10_bigint.col_char_44_unique_index], [table10_bigint.col_bigint_key], [table10_bigint.col_char_24_key],
2892
       [table10_bigint.col_char_27_key], [table10_bigint.col_char_38_key], [table10_bigint.col_char_47], [table10_bigint.col_char_31_key], [table10_bigint.col_char_34]), filter(nil), rowset=16
2893
      access([table10_bigint.pk], [table10_bigint.col_char_34_key], [table10_bigint.col_char_24], [table10_bigint.col_char_48_unique_index], [table10_bigint.col_char_26_unique_index],
2894
       [table10_bigint.col_char_36], [table10_bigint.col_char_26], [table10_bigint.col_char_20], [table10_bigint.col_char_37], [table10_bigint.col_char_29_key],
2895
       [table10_bigint.col_char_20_unique_index], [table10_bigint.col_char_39], [table10_bigint.col_char_23], [table10_bigint.col_char_28_key], [table10_bigint.col_char_45],
2896
       [table10_bigint.col_char_40_unique_index], [table10_bigint.col_char_43_unique_index], [table10_bigint.col_char_21_key], [table10_bigint.col_char_29], [table10_bigint.col_char_25_key],
2897
       [table10_bigint.col_timestamp_6], [table10_bigint.col_char_32_key], [table10_bigint.col_char_22], [table10_bigint.col_char_45_key], [table10_bigint.col_char_20_key],
2898
       [table10_bigint.col_char_35_key], [table10_bigint.col_char_22_unique_index], [table10_bigint.col_char_46_unique_index], [table10_bigint.col_char_28_unique_index],
2899
       [table10_bigint.col_char_25], [table10_bigint.col_char_42_unique_index], [table10_bigint.col_char_30_key], [table10_bigint.col_char_33_unique_index], [table10_bigint.col_char_42],
2900
       [table10_bigint.col_char_23_key], [table10_bigint.col_char_36_key], [table10_bigint.col_timestamp_6_unique_index], [table10_bigint.col_char_37_unique_index],
2901
       [table10_bigint.col_char_46_key], [table10_bigint.col_char_32_unique_index], [table10_bigint.col_char_34_unique_index], [table10_bigint.col_char_28], [table10_bigint.col_char_25_unique_index],
2902
       [table10_bigint.col_char_39_unique_index], [table10_bigint.col_char_30], [table10_bigint.col_char_36_unique_index], [table10_bigint.col_char_47_key], [table10_bigint.col_char_41_unique_index],
2903
       [table10_bigint.col_char_42_key], [table10_bigint.col_char_48], [table10_bigint.col_char_46], [table10_bigint.col_char_48_key], [table10_bigint.col_char_22_key],
2904
       [table10_bigint.col_bigint_unique_index], [table10_bigint.col_char_38], [table10_bigint.col_char_21], [table10_bigint.col_char_43], [table10_bigint.col_char_27],
2905
       [table10_bigint.col_char_40_key], [table10_bigint.col_char_40], [table10_bigint.col_char_47_unique_index], [table10_bigint.col_char_21_unique_index], [table10_bigint.col_char_33],
2906
       [table10_bigint.col_char_27_unique_index], [table10_bigint.col_char_44_key], [table10_bigint.col_char_35_unique_index], [table10_bigint.col_char_26_key],
2907
       [table10_bigint.col_bigint], [table10_bigint.col_char_30_unique_index], [table10_bigint.col_char_45_unique_index], [table10_bigint.col_char_32], [table10_bigint.col_char_41],
2908
       [table10_bigint.col_char_24_unique_index], [table10_bigint.col_char_31_unique_index], [table10_bigint.col_char_33_key], [table10_bigint.col_char_39_key],
2909
       [table10_bigint.col_char_35], [table10_bigint.col_timestamp_6_key], [table10_bigint.col_char_44], [table10_bigint.col_char_31], [table10_bigint.col_char_43_key],
2910
       [table10_bigint.col_char_29_unique_index], [table10_bigint.col_char_37_key], [table10_bigint.col_char_23_unique_index], [table10_bigint.col_char_41_key],
2911
       [table10_bigint.col_char_38_unique_index], [table10_bigint.col_char_44_unique_index], [table10_bigint.col_bigint_key], [table10_bigint.col_char_24_key],
2912
       [table10_bigint.col_char_27_key], [table10_bigint.col_char_38_key], [table10_bigint.col_char_47], [table10_bigint.col_char_31_key], [table10_bigint.col_char_34]), partitions(p0)
2913
      is_index_back=false, is_global_index=false, 
2914
      range_key([table10_bigint.pk]), range(MIN ; MAX)always true
2915
delete from table10_bigint;
2916
alter system set ob_enable_batched_multi_statement=false;
2917
DROP TABLE /*! IF EXISTS*/ table10_bigint;
2918

2919
drop table if exists t1,t2;
2920
drop view if exists update_view, update_view1;
2921
create table t1 (c1 int, c2 int, c3 int);
2922
create table t2 (c1 int, c2 int, c3 int);
2923
create view update_view (c1,c2) as select t1.c2 as c1, t2.c2 as c2 from t1, t2 where t1.c1 = t2.c1;
2924
create view update_view1 (c1,c2) as select t1.c2 as c1, t2.c2 as c2 from t1 join t2 on t1.c1 = t2.c1;
2925
update t1, t2 set t1.c2 = t2.c2 where t1.c1 = t2.c1 order by t2.c2;
2926
ERROR HY000: Incorrect usage of UPDATE and ORDER BY
2927
update t1 join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 order by t2.c2;
2928
ERROR HY000: Incorrect usage of UPDATE and ORDER BY
2929
update t1 left join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 order by t2.c2;
2930
ERROR HY000: Incorrect usage of UPDATE and ORDER BY
2931
update update_view set c1 = c2 order by c2;
2932
ERROR HY000: Incorrect usage of UPDATE and ORDER BY
2933
update update_view1 set c1 = c2 order by c2;
2934
ERROR HY000: Incorrect usage of UPDATE and ORDER BY
2935
update t1, t2 set t1.c2 = t2.c2 where t1.c1 = t2.c1 limit 10;
2936
ERROR HY000: Incorrect usage of UPDATE and LIMIT
2937
update t1 join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 limit 10;
2938
ERROR HY000: Incorrect usage of UPDATE and LIMIT
2939
update t1 left join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 limit 10;
2940
ERROR HY000: Incorrect usage of UPDATE and LIMIT
2941
update update_view set c1 = c2 limit 10;
2942
ERROR HY000: Incorrect usage of UPDATE and LIMIT
2943
update update_view1 set c1 = c2 limit 10;
2944
ERROR HY000: Incorrect usage of UPDATE and LIMIT
2945
drop view update_view;
2946
drop view update_view1;
2947
drop table t1;
2948
drop table t2;
2949

2950
drop table if exists gf_ar_mthly_bill;
2951
set binlog_row_image='MINIMAL';
2952
CREATE TABLE `gf_ar_mthly_bill` (
2953
   `tnt_inst_id` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '租户机构id',
2954
   `bill_no` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '账单号',
2955
   `ip_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '结算对象ipid',
2956
   `ip_role_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '结算对象pid',
2957
   `inst_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '分支机构',
2958
   `pd_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品码',
2959
   `ar_no` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '合约号',
2960
   `bill_tp` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '账单类型',
2961
   `setl_tp` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '结算方式',
2962
   `bill_st` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '核销状态',
2963
   `bill_strt_dt` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '账单开始日期',
2964
   `bill_end_dt` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '账单结束日期',
2965
   `bill_mth` varchar(6) COLLATE utf8mb4_bin NOT NULL COMMENT '账单月份',
2966
   `acrd_dt` varchar(8) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '应收日期',
2967
   `gmt_pay` timestamp(6) NULL DEFAULT NULL COMMENT '付款时间',
2968
   `payee_ac` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收款方账号',
2969
   `payer_ac` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '付款方账号',
2970
   `pay_way` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付方式',
2971
   `pay_orig` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付来源',
2972
   `clcn_bsc_amt` decimal(25,4) DEFAULT NULL COMMENT '计算交易量',
2973
   `clcn_bsc_tp` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计算依据',
2974
   `clcn_mthd` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计算方法',
2975
   `chrg_itm_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收费项编码',
2976
   `ccy` varchar(3) COLLATE utf8mb4_bin NOT NULL COMMENT '币种',
2977
   `bill_amt` bigint(20) NOT NULL COMMENT '账单金额',
2978
   `adj_amt` bigint(20) NOT NULL COMMENT '调整金额',
2979
   `rcvd_amt` bigint(20) NOT NULL COMMENT '已收金额',
2980
   `tax_tp` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '税种 01:增值税 02:营业税',
2981
   `tax_rate` decimal(10,8) NOT NULL COMMENT '税率',
2982
   `tax_amt` bigint(20) NOT NULL COMMENT '税额',
2983
   `exn_inf` varchar(4000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '扩展信息',
2984
   `anl_dmsn1` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度1',
2985
   `anl_dmsn2` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度2',
2986
   `anl_dmsn3` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度3',
2987
   `anl_dmsn4` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度4',
2988
   `wrtof_dtl_cnt` bigint(20) DEFAULT NULL COMMENT '已核销明细数量',
2989
   `to_wrtof_dtl_cnt` bigint(20) DEFAULT NULL COMMENT '待核销明细数量',
2990
   `rcrd_id` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '数据唯一ID',
2991
   `last_moder` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '最近修改人',
2992
   `gmt_create` timestamp(6) NOT NULL COMMENT '创建时间',
2993
   `gmt_modified` timestamp(6) NOT NULL COMMENT '修改时间',
2994
   `charge_tp` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计收费环境类型 01 主站云计收费 02 主站离线计收费 03 主站老计收费',
2995
   `stl_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '结算对象',
2996
   `svc_amt` bigint(20) DEFAULT NULL COMMENT '交易金额',
2997
   `inved_amt` bigint(20) DEFAULT NULL COMMENT '已开票金额',
2998
   `chk_st` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '出账状态 01 初始化 02 待确认出账 03 已出账 04 客户已对账 05 对账差异',
2999
   `acnt_day` varchar(14) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '出账日',
3000
   `inv_amt` bigint(20) DEFAULT NULL COMMENT '可开票金额',
3001
   `rel_inv_amt` bigint(20) DEFAULT NULL COMMENT '已关联发票金额',
3002
   `tp` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '应收1 返点2',
3003
   `payer_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '扣款对象pid',
3004
   `sgn_ip_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '签约对象ipid',
3005
   `sgn_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '签约对象pid',
3006
   `chking_amt` bigint(20) DEFAULT '0' COMMENT '出账中金额',
3007
   `frz_amt` bigint(20) DEFAULT '0' COMMENT '冻结金额(用于控制流程上互斥的业务)',
3008
   `chked_amt` bigint(20) DEFAULT '0' COMMENT '已出账金额',
3009
   `writingoff_amt` bigint(20) DEFAULT '0' COMMENT '核销中金额',
3010
   `svc_bill_amt` bigint(20) DEFAULT NULL COMMENT '账单计费金额,计收费计费时生成的中间金额',
3011
   `svc_ccy` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单计费币种',
3012
   `env_source` varchar(16) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '环境标识',
3013
   `metadata_source` varchar(1024) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '元数据来源标识,包括(用户、商户、产品、合约、计费)来源',
3014
   `setl_time_zone` varchar(12) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单结算时区',
3015
   `actg_time_zone` varchar(12) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单核算时区',
3016
   `inter_trade_flag` varchar(1) COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Y: 是关联交易 N: 不是关联交易',
3017
   `actg_bill_mth` varchar(6) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '核算时区账单月份',
3018
   `auto_writeoff_group_no` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '自动核销关联组号',
3019
   `partition_id` varchar(4) COLLATE utf8mb4_bin GENERATED ALWAYS AS (substr(`bill_no`,23,2)) VIRTUAL,
3020
   PRIMARY KEY (`tnt_inst_id`, `bill_no`),
3021
   UNIQUE KEY `uk_tnt_inst_id_rcrd_id` (`tnt_inst_id`, `rcrd_id`) GLOBAL  BLOCK_SIZE 16384,
3022
   KEY `idx_tnt_inst_id_acnt_day_chk_st_gmt_create` (`tnt_inst_id`, `acnt_day`, `chk_st`, `gmt_create`) GLOBAL  BLOCK_SIZE 16384,
3023
   KEY `idx_tnt_inst_id_acnt_day_chk_st` (`tnt_inst_id`, `acnt_day`, `chk_st`) GLOBAL  BLOCK_SIZE 16384,
3024
   KEY `idx_tnt_inst_id_ip_role_id` (`tnt_inst_id`, `ip_role_id`) LOCAL  BLOCK_SIZE 16384,
3025
   KEY `idx_tnt_inst_id_setl_tp_bill_st` (`tnt_inst_id`, `setl_tp`, `bill_st`) GLOBAL  BLOCK_SIZE 16384,
3026
   KEY `idx_tnt_inst_id_ar_no` (`tnt_inst_id`, `ar_no`) GLOBAL  BLOCK_SIZE 16384,
3027
   KEY `idx_tnt_inst_id_bill_mth` (`tnt_inst_id`, `bill_mth`) GLOBAL  BLOCK_SIZE 16384,
3028
   KEY `idx_ip_role_id_bill_mth` (`tnt_inst_id`, `ip_role_id`, `bill_mth`) LOCAL  BLOCK_SIZE 16384,
3029
   KEY `idx_tnt_inst_id_ip_id` (`tnt_inst_id`, `ip_id`, `bill_mth`, `setl_tp`) GLOBAL  BLOCK_SIZE 16384,
3030
   KEY `idx_acrd_dt_setl_tp_bill_st` (`tnt_inst_id`, `acrd_dt`, `setl_tp`, `bill_st`) GLOBAL  BLOCK_SIZE 16384,
3031
   KEY `idx_tnt_inst_id_ip_role_id_bill_mth_setl_tp` (`tnt_inst_id`, `ip_role_id`, `bill_mth`, `setl_tp`) LOCAL  BLOCK_SIZE 16384,
3032
   KEY `idx_bill_mth` (`bill_mth`, `tnt_inst_id`) GLOBAL  BLOCK_SIZE 16384,
3033
   KEY `idx_payer_ip_role_id_bill_mth` (`tnt_inst_id`, `payer_ip_role_id`, `bill_mth`) GLOBAL  BLOCK_SIZE 16384,
3034
   KEY `idx_ip_id_bill_mth` (`tnt_inst_id`, `ip_id`, `bill_mth`) GLOBAL  BLOCK_SIZE 16384,
3035
   KEY `idx_policy_id_bill_mth_inst_id_type` (`tnt_inst_id`, `inst_id`, `bill_mth`, `tp`, `anl_dmsn2`) GLOBAL,
3036
   KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_1_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn1`, `bill_mth`) GLOBAL,
3037
   KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_3_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn3`, `bill_mth`) GLOBAL,
3038
   KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_4_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn4`, `bill_mth`) GLOBAL,
3039
   KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_2_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn2`, `bill_mth`) GLOBAL
3040
 ) partition by list columns(partition_id)
3041
 (partition p0 values in ('00'),
3042
 partition p80 values in ('80'),
3043
 partition p81 values in ('81'),
3044
 partition p82 values in ('82'),
3045
 partition p95 values in ('95'),
3046
 partition p96 values in ('96'),
3047
 partition p97 values in ('97'),
3048
 partition p98 values in ('98'),
3049
 partition p99 values in ('99'));
3050

3051
EXPLAIN BASIC insert into gf_ar_mthly_bill(tnt_inst_id, bill_no, ip_id, ip_role_id, inst_id,
3052
bill_tp, setl_tp, bill_st, bill_strt_dt, bill_end_dt, bill_mth, ccy, bill_amt,
3053
adj_amt, rcvd_amt, tax_tp, tax_rate, tax_amt, rcrd_id, last_moder, gmt_create, gmt_modified)
3054
values('ylctest', '2018090310122000040400820033834415',
3055
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2021-05-17 12:09:34', '2021-05-17 12:09:34');
3056
Query Plan
3057
============================
3058
|ID|OPERATOR          |NAME|
3059
----------------------------
3060
|0 |DISTRIBUTED INSERT|    |
3061
|1 |└─EXPRESSION      |    |
3062
============================
3063
Outputs & filters:
3064
-------------------------------------
3065
  0 - output(nil), filter(nil)
3066
      columns([{gf_ar_mthly_bill: ({gf_ar_mthly_bill: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id,
3067
       gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st,
3068
       gf_ar_mthly_bill.bill_strt_dt, gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac,
3069
       gf_ar_mthly_bill.payer_ac, gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd,
3070
       gf_ar_mthly_bill.chrg_itm_code, gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp,
3071
       gf_ar_mthly_bill.tax_rate, gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3,
3072
       gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create,
3073
       gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3074
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3075
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3076
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3077
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, gf_ar_mthly_bill.partition_id)}, {uk_tnt_inst_id_rcrd_id: 
3078
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_acnt_day_chk_st_gmt_create: (gf_ar_mthly_bill.tnt_inst_id,
3079
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.gmt_create, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_acnt_day_chk_st: (gf_ar_mthly_bill.tnt_inst_id,
3080
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.setl_tp,
3081
       gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_ar_no: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_no)},
3082
       {idx_tnt_inst_id_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_ip_id: (gf_ar_mthly_bill.tnt_inst_id,
3083
       gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_no)}, {idx_acrd_dt_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id,
3084
       gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_bill_mth: (gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.tnt_inst_id,
3085
       gf_ar_mthly_bill.bill_no)}, {idx_payer_ip_role_id_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.bill_mth,
3086
       gf_ar_mthly_bill.bill_no)}, {idx_ip_id_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)},
3087
       {idx_policy_id_bill_mth_inst_id_type: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2,
3088
       gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_1_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp,
3089
       gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_3_bill_mth: (gf_ar_mthly_bill.tnt_inst_id,
3090
       gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn3, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_4_bill_mth: 
3091
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)},
3092
       {idx_tnt_inst_id_inst_id_tp_anl_dmsn_2_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2,
3093
       gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)})}]), 
3094
      column_values([column_conv(VARCHAR,utf8mb4_bin,length:8,NOT NULL,__values.tnt_inst_id)], [column_conv(VARCHAR,utf8mb4_bin,length:64,NOT NULL,__values.bill_no)],
3095
       [column_conv(VARCHAR,utf8mb4_bin,length:32,NOT NULL,__values.ip_id)], [column_conv(VARCHAR,utf8mb4_bin,length:32,NOT NULL,__values.ip_role_id)], [column_conv(VARCHAR,
3096
      utf8mb4_bin,length:32,NOT NULL,__values.inst_id)], [column_conv(VARCHAR,utf8mb4_bin,length:64,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,
3097
      utf8mb4_bin,length:34,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:2,NOT NULL,__values.bill_tp)], [column_conv(VARCHAR,utf8mb4_bin,
3098
      length:2,NOT NULL,__values.setl_tp)], [column_conv(VARCHAR,utf8mb4_bin,length:2,NOT NULL,__values.bill_st)], [column_conv(VARCHAR,utf8mb4_bin,length:8,NOT 
3099
      NULL,__values.bill_strt_dt)], [column_conv(VARCHAR,utf8mb4_bin,length:8,NOT NULL,__values.bill_end_dt)], [column_conv(VARCHAR,utf8mb4_bin,length:6,NOT NULL,
3100
      __values.bill_mth)], [column_conv(VARCHAR,utf8mb4_bin,length:8,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(TIMESTAMP,PS:(25,6),NULL,cast(NULL, TIMESTAMP(-1,
3101
       -1)))], [column_conv(VARCHAR,utf8mb4_bin,length:34,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:34,NULL,cast(NULL, VARCHAR(1048576)))],
3102
       [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL, VARCHAR(1048576)))],
3103
       [column_conv(DECIMAL_INT,PS:(25,4),NULL,cast(NULL, DECIMAL_INT(25, 4)))], [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL, VARCHAR(1048576)))],
3104
       [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:64,NULL,cast(NULL, VARCHAR(1048576)))],
3105
       [column_conv(VARCHAR,utf8mb4_bin,length:3,NOT NULL,__values.ccy)], [column_conv(BIGINT,PS:(20,0),NOT NULL,__values.bill_amt)], [column_conv(BIGINT,PS:(20,
3106
      0),NOT NULL,__values.adj_amt)], [column_conv(BIGINT,PS:(20,0),NOT NULL,__values.rcvd_amt)], [column_conv(VARCHAR,utf8mb4_bin,length:16,NOT NULL,__values.tax_tp)],
3107
       [column_conv(DECIMAL_INT,PS:(10,8),NOT NULL,__values.tax_rate)], [column_conv(BIGINT,PS:(20,0),NOT NULL,__values.tax_amt)], [column_conv(VARCHAR,utf8mb4_bin,
3108
      length:4000,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,
3109
      utf8mb4_bin,length:1000,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,
3110
      utf8mb4_bin,length:1000,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(BIGINT,PS:(20,0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(BIGINT,PS:(20,
3111
      0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(VARCHAR,utf8mb4_bin,length:64,NOT NULL,__values.rcrd_id)], [column_conv(VARCHAR,utf8mb4_bin,length:32,
3112
      NOT NULL,__values.last_moder)], [column_conv(TIMESTAMP,PS:(25,6),NOT NULL,timestamp_nvl(__values.gmt_create, cast(current_timestamp(), TIMESTAMP(25, 6))))],
3113
       [column_conv(TIMESTAMP,PS:(25,6),NOT NULL,timestamp_nvl(__values.gmt_modified, cast(current_timestamp(), TIMESTAMP(25, 6))))], [column_conv(VARCHAR,utf8mb4_bin,
3114
      length:32,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:32,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(BIGINT,PS:(20,
3115
      0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(BIGINT,PS:(20,0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL,
3116
       VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:14,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(BIGINT,PS:(20,0),NULL,cast(NULL, BIGINT(20,
3117
       0)))], [column_conv(BIGINT,PS:(20,0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,
3118
      utf8mb4_bin,length:32,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:32,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,
3119
      utf8mb4_bin,length:32,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(BIGINT,PS:(20,0),NULL,0)], [column_conv(BIGINT,PS:(20,0),NULL,0)], [column_conv(BIGINT,
3120
      PS:(20,0),NULL,0)], [column_conv(BIGINT,PS:(20,0),NULL,0)], [column_conv(BIGINT,PS:(20,0),NULL,cast(NULL, BIGINT(20, 0)))], [column_conv(VARCHAR,utf8mb4_bin,
3121
      length:3,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:16,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,
3122
      length:1024,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:12,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,
3123
      length:12,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:1,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,
3124
      length:6,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,length:64,NULL,cast(NULL, VARCHAR(1048576)))], [column_conv(VARCHAR,utf8mb4_bin,
3125
      length:4,NULL,column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(column_conv(VARCHAR,utf8mb4_bin,length:64,NOT NULL,__values.bill_no), 23, 2)))])
3126
  1 - output([__values.tnt_inst_id], [__values.bill_no], [__values.ip_id], [__values.ip_role_id], [__values.inst_id], [__values.bill_tp], [__values.setl_tp],
3127
       [__values.bill_st], [__values.bill_strt_dt], [__values.bill_end_dt], [__values.bill_mth], [__values.ccy], [__values.bill_amt], [__values.adj_amt], [__values.rcvd_amt],
3128
       [__values.tax_tp], [__values.tax_rate], [__values.tax_amt], [__values.rcrd_id], [__values.last_moder], [__values.gmt_create], [__values.gmt_modified]), filter(nil)
3129
      values({'ylctest', '2018090310122000040400820033834415', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2021-05-17 12:09:34', '2021-05-17 
3130
      12:09:34'})
3131
insert into gf_ar_mthly_bill(tnt_inst_id, bill_no, ip_id, ip_role_id, inst_id,
3132
bill_tp, setl_tp, bill_st, bill_strt_dt, bill_end_dt, bill_mth, ccy, bill_amt,
3133
adj_amt, rcvd_amt, tax_tp, tax_rate, tax_amt, rcrd_id, last_moder, gmt_create, gmt_modified)
3134
values('ylctest', '2018090310122000040400820033834415',
3135
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2021-05-17 12:09:34', '2021-05-17 12:09:34');
3136
begin;
3137
EXPLAIN BASIC update gf_ar_mthly_bill
3138
    set bill_st='01',
3139
    gmt_pay='2021-05-17 12:09:35',
3140
    clcn_bsc_amt='123.12',
3141
    bill_amt=1,
3142
    rcvd_amt=2,
3143
    tax_amt=3,
3144
    exn_inf='123456',
3145
    anl_dmsn1='123456',
3146
    anl_dmsn2='234567',
3147
    anl_dmsn3='345678',
3148
    anl_dmsn4='456789',
3149
    last_moder='ylc',
3150
    adj_amt=4,
3151
    svc_amt = 5,
3152
    chk_st = '06',
3153
    inv_amt = 6,
3154
    writingoff_amt = 7,
3155
    wrtof_dtl_cnt = 9 ,
3156
    to_wrtof_dtl_cnt = 8,
3157
    chking_amt=10,
3158
    chked_amt=11,
3159
    frz_amt=12,
3160
    svc_bill_amt=13,
3161
    gmt_modified='2021-05-17 12:09:34'
3162
 where
3163
    tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
3164
Query Plan
3165
========================================
3166
|ID|OPERATOR          |NAME            |
3167
----------------------------------------
3168
|0 |DISTRIBUTED UPDATE|                |
3169
|1 |└─TABLE GET       |gf_ar_mthly_bill|
3170
========================================
3171
Outputs & filters:
3172
-------------------------------------
3173
  0 - output(nil), filter(nil)
3174
      table_columns([{gf_ar_mthly_bill: ({gf_ar_mthly_bill: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id,
3175
       gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st,
3176
       gf_ar_mthly_bill.bill_strt_dt, gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac,
3177
       gf_ar_mthly_bill.payer_ac, gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd,
3178
       gf_ar_mthly_bill.chrg_itm_code, gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp,
3179
       gf_ar_mthly_bill.tax_rate, gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3,
3180
       gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create,
3181
       gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3182
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3183
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3184
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3185
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, gf_ar_mthly_bill.partition_id)}, {idx_tnt_inst_id_acnt_day_chk_st_gmt_create: 
3186
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.gmt_create, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_acnt_day_chk_st: 
3187
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id,
3188
       gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_acrd_dt_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acrd_dt,
3189
       gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_policy_id_bill_mth_inst_id_type: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id,
3190
       gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_1_bill_mth: 
3191
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)},
3192
       {idx_tnt_inst_id_inst_id_tp_anl_dmsn_3_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn3,
3193
       gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_4_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id,
3194
       gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_2_bill_mth: 
3195
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)})}]),
3196
      
3197
      update([gf_ar_mthly_bill.bill_st=column_conv(VARCHAR,utf8mb4_bin,length:2,NOT NULL,cast('01', VARCHAR(1048576)))], [gf_ar_mthly_bill.gmt_pay=column_conv(TIMESTAMP,
3198
      PS:(25,6),NULL,cast('2021-05-17 12:09:35', TIMESTAMP(-1, -1)))], [gf_ar_mthly_bill.clcn_bsc_amt=column_conv(DECIMAL_INT,PS:(25,4),NULL,cast('123.12', DECIMAL_INT(25,
3199
       4)))], [gf_ar_mthly_bill.bill_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,1)], [gf_ar_mthly_bill.rcvd_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,2)], [gf_ar_mthly_bill.tax_amt=column_conv(BIGINT,
3200
      PS:(20,0),NOT NULL,3)], [gf_ar_mthly_bill.exn_inf=column_conv(VARCHAR,utf8mb4_bin,length:4000,NULL,cast('123456', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn1=column_conv(VARCHAR,
3201
      utf8mb4_bin,length:1000,NULL,cast('123456', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn2=column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast('234567',
3202
       VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn3=column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast('345678', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn4=column_conv(VARCHAR,
3203
      utf8mb4_bin,length:1000,NULL,cast('456789', VARCHAR(1048576)))], [gf_ar_mthly_bill.last_moder=column_conv(VARCHAR,utf8mb4_bin,length:32,NOT NULL,cast('ylc',
3204
       VARCHAR(1048576)))], [gf_ar_mthly_bill.adj_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,4)], [gf_ar_mthly_bill.svc_amt=column_conv(BIGINT,PS:(20,0),NULL,5)],
3205
       [gf_ar_mthly_bill.chk_st=column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast('06', VARCHAR(1048576)))], [gf_ar_mthly_bill.inv_amt=column_conv(BIGINT,PS:(20,
3206
      0),NULL,6)], [gf_ar_mthly_bill.writingoff_amt=column_conv(BIGINT,PS:(20,0),NULL,7)], [gf_ar_mthly_bill.wrtof_dtl_cnt=column_conv(BIGINT,PS:(20,0),NULL,9)],
3207
       [gf_ar_mthly_bill.to_wrtof_dtl_cnt=column_conv(BIGINT,PS:(20,0),NULL,8)], [gf_ar_mthly_bill.chking_amt=column_conv(BIGINT,PS:(20,0),NULL,10)], [gf_ar_mthly_bill.chked_amt=column_conv(BIGINT,
3208
      PS:(20,0),NULL,11)], [gf_ar_mthly_bill.frz_amt=column_conv(BIGINT,PS:(20,0),NULL,12)], [gf_ar_mthly_bill.svc_bill_amt=column_conv(BIGINT,PS:(20,0),NULL,
3209
      13)], [gf_ar_mthly_bill.gmt_modified=column_conv(TIMESTAMP,PS:(25,6),NOT NULL,timestamp_nvl(cast('2021-05-17 12:09:34', TIMESTAMP(-1, -1)), cast(current_timestamp(),
3210
       TIMESTAMP(25, 6))))])
3211
  1 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3212
       23, 2))], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.clcn_bsc_amt], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.rcvd_amt],
3213
       [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4],
3214
       [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.writingoff_amt],
3215
       [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.frz_amt],
3216
       [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], 
3217
      [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt],
3218
       [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig],
3219
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate],
3220
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.inved_amt],
3221
       [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], 
3222
      [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone],
3223
       [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3224
      access([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.clcn_bsc_amt],
3225
       [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2],
3226
       [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.chk_st],
3227
       [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.chking_amt],
3228
       [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id],
3229
       [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_strt_dt],
3230
       [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way],
3231
       [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.tax_tp],
3232
       [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id],
3233
       [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], 
3234
      [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source],
3235
       [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), partitions(p3)
3236
      is_index_back=false, is_global_index=false, 
3237
      range_key([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no]), range[ylctest,2018090310122000040400820033834415 ; ylctest,2018090310122000040400820033834415],
3238
       
3239
      range_cond([gf_ar_mthly_bill.tnt_inst_id = cast('ylctest', VARCHAR(1048576))], [gf_ar_mthly_bill.bill_no = cast('2018090310122000040400820033834415',
3240
       VARCHAR(1048576))])
3241
update gf_ar_mthly_bill
3242
    set bill_st='01',
3243
    gmt_pay='2021-05-17 12:09:35',
3244
    clcn_bsc_amt='123.12',
3245
    bill_amt=1,
3246
    rcvd_amt=2,
3247
    tax_amt=3,
3248
    exn_inf='123456',
3249
    anl_dmsn1='123456',
3250
    anl_dmsn2='234567',
3251
    anl_dmsn3='345678',
3252
    anl_dmsn4='456789',
3253
    last_moder='ylc',
3254
    adj_amt=4,
3255
    svc_amt = 5,
3256
    chk_st = '06',
3257
    inv_amt = 6,
3258
    writingoff_amt = 7,
3259
    wrtof_dtl_cnt = 9 ,
3260
    to_wrtof_dtl_cnt = 8,
3261
    chking_amt=10,
3262
    chked_amt=11,
3263
    frz_amt=12,
3264
    svc_bill_amt=13,
3265
    gmt_modified='2021-05-17 12:09:34'
3266
 where
3267
    tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
3268

3269
EXPLAIN BASIC select * from gf_ar_mthly_bill;
3270
Query Plan
3271
===============================================
3272
|ID|OPERATOR                 |NAME            |
3273
-----------------------------------------------
3274
|0 |PX COORDINATOR           |                |
3275
|1 |└─EXCHANGE OUT DISTR     |:EX10000        |
3276
|2 |  └─PX PARTITION ITERATOR|                |
3277
|3 |    └─TABLE FULL SCAN    |gf_ar_mthly_bill|
3278
===============================================
3279
Outputs & filters:
3280
-------------------------------------
3281
  0 - output([INTERNAL_FUNCTION(gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id, gf_ar_mthly_bill.inst_id,
3282
       gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_strt_dt,
3283
       gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac, gf_ar_mthly_bill.payer_ac,
3284
       gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd, gf_ar_mthly_bill.chrg_itm_code,
3285
       gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp, gf_ar_mthly_bill.tax_rate,
3286
       gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3, gf_ar_mthly_bill.anl_dmsn4,
3287
       gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create, 
3288
      gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3289
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3290
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3291
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3292
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,
3293
      substr(gf_ar_mthly_bill.bill_no, 23, 2)))]), filter(nil), rowset=16
3294
  1 - output([INTERNAL_FUNCTION(gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id, gf_ar_mthly_bill.inst_id,
3295
       gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_strt_dt,
3296
       gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac, gf_ar_mthly_bill.payer_ac,
3297
       gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd, gf_ar_mthly_bill.chrg_itm_code,
3298
       gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp, gf_ar_mthly_bill.tax_rate,
3299
       gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3, gf_ar_mthly_bill.anl_dmsn4,
3300
       gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create, 
3301
      gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3302
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3303
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3304
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3305
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,
3306
      substr(gf_ar_mthly_bill.bill_no, 23, 2)))]), filter(nil), rowset=16
3307
      dop=1
3308
  2 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3309
       23, 2))], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp],
3310
       [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt],
3311
       [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt],
3312
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt],
3313
       [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1],
3314
       [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt],
3315
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp],
3316
       [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt],
3317
       [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id],
3318
       [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt],
3319
       [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone],
3320
       [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3321
      force partition granule
3322
  3 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3323
       23, 2))], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp],
3324
       [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt],
3325
       [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt],
3326
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt],
3327
       [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1],
3328
       [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt],
3329
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp],
3330
       [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt],
3331
       [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id],
3332
       [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt],
3333
       [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone],
3334
       [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3335
      access([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id],
3336
       [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt],
3337
       [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac],
3338
       [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt], [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd],
3339
       [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp],
3340
       [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3],
3341
       [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder],
3342
       [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt],
3343
       [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp],
3344
       [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt],
3345
       [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source],
3346
       [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth],
3347
       [gf_ar_mthly_bill.auto_writeoff_group_no]), partitions(p[0-8])
3348
      is_index_back=false, is_global_index=false, 
3349
      range_key([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no]), range(MIN,MIN ; MAX,MAX)always true
3350
select * from gf_ar_mthly_bill;
3351
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3352
| tnt_inst_id | bill_no                            | ip_id | ip_role_id | inst_id | pd_code | ar_no | bill_tp | setl_tp | bill_st | bill_strt_dt | bill_end_dt | bill_mth | acrd_dt | gmt_pay                    | payee_ac | payer_ac | pay_way | pay_orig | clcn_bsc_amt | clcn_bsc_tp | clcn_mthd | chrg_itm_code | ccy | bill_amt | adj_amt | rcvd_amt | tax_tp | tax_rate   | tax_amt | exn_inf | anl_dmsn1 | anl_dmsn2 | anl_dmsn3 | anl_dmsn4 | wrtof_dtl_cnt | to_wrtof_dtl_cnt | rcrd_id | last_moder | gmt_create                 | gmt_modified               | charge_tp | stl_ip_role_id | svc_amt | inved_amt | chk_st | acnt_day | inv_amt | rel_inv_amt | tp   | payer_ip_role_id | sgn_ip_id | sgn_ip_role_id | chking_amt | frz_amt | chked_amt | writingoff_amt | svc_bill_amt | svc_ccy | env_source | metadata_source | setl_time_zone | actg_time_zone | inter_trade_flag | actg_bill_mth | auto_writeoff_group_no | partition_id |
3353
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3354
| ylctest     | 2018090310122000040400820033834415 | 1     | 1          | 1       | NULL    | NULL  | 1       | 1       | 01      | 1            | 1           | 1        | NULL    | 2021-05-17 12:09:35.000000 | NULL     | NULL     | NULL    | NULL     |     123.1200 | NULL        | NULL      | NULL          | 1   |        1 |       4 |        2 | 1      | 1.00000000 |       3 | 123456  | 123456    | 234567    | 345678    | 456789    |             9 |                8 | 1       | ylc        | 2021-05-17 12:09:34.000000 | 2021-05-17 12:09:34.000000 | NULL      | NULL           |       5 |      NULL | 06     | NULL     |       6 |        NULL | NULL | NULL             | NULL      | NULL           |         10 |      12 |        11 |              7 |           13 | NULL    | NULL       | NULL            | NULL           | NULL           | NULL             | NULL          | NULL                   | 82           |
3355
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3356
rollback;
3357
set binlog_row_image='MINIMAL';
3358
EXPLAIN BASIC update gf_ar_mthly_bill
3359
    set bill_st='01',
3360
    gmt_pay='2021-05-17 12:09:35',
3361
    clcn_bsc_amt='123.12',
3362
    bill_amt=1,
3363
    rcvd_amt=2,
3364
    tax_amt=3,
3365
    exn_inf='123456',
3366
    anl_dmsn1='123456',
3367
    anl_dmsn2='234567',
3368
    anl_dmsn3='345678',
3369
    anl_dmsn4='456789',
3370
    last_moder='ylc',
3371
    adj_amt=4,
3372
    svc_amt = 5,
3373
    chk_st = '06',
3374
    inv_amt = 6,
3375
    writingoff_amt = 7,
3376
    wrtof_dtl_cnt = 9 , 
3377
    to_wrtof_dtl_cnt = 8,
3378
    chking_amt=10,
3379
    chked_amt=11,
3380
    frz_amt=12,
3381
    svc_bill_amt=13,
3382
    gmt_modified='2021-05-17 12:09:34'
3383
 where
3384
    tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
3385
Query Plan
3386
========================================
3387
|ID|OPERATOR          |NAME            |
3388
----------------------------------------
3389
|0 |DISTRIBUTED UPDATE|                |
3390
|1 |└─TABLE GET       |gf_ar_mthly_bill|
3391
========================================
3392
Outputs & filters:
3393
-------------------------------------
3394
  0 - output(nil), filter(nil)
3395
      table_columns([{gf_ar_mthly_bill: ({gf_ar_mthly_bill: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id,
3396
       gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st,
3397
       gf_ar_mthly_bill.bill_strt_dt, gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac,
3398
       gf_ar_mthly_bill.payer_ac, gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd,
3399
       gf_ar_mthly_bill.chrg_itm_code, gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp,
3400
       gf_ar_mthly_bill.tax_rate, gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3,
3401
       gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create,
3402
       gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3403
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3404
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3405
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3406
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, gf_ar_mthly_bill.partition_id)}, {idx_tnt_inst_id_acnt_day_chk_st_gmt_create: 
3407
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.gmt_create, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_acnt_day_chk_st: 
3408
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.chk_st, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id,
3409
       gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_acrd_dt_setl_tp_bill_st: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.acrd_dt,
3410
       gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_no)}, {idx_policy_id_bill_mth_inst_id_type: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id,
3411
       gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_1_bill_mth: 
3412
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)},
3413
       {idx_tnt_inst_id_inst_id_tp_anl_dmsn_3_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn3,
3414
       gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_4_bill_mth: (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id,
3415
       gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn4, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)}, {idx_tnt_inst_id_inst_id_tp_anl_dmsn_2_bill_mth: 
3416
      (gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.inst_id, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.bill_no)})}]),
3417
      
3418
      update([gf_ar_mthly_bill.bill_st=column_conv(VARCHAR,utf8mb4_bin,length:2,NOT NULL,cast('01', VARCHAR(1048576)))], [gf_ar_mthly_bill.gmt_pay=column_conv(TIMESTAMP,
3419
      PS:(25,6),NULL,cast('2021-05-17 12:09:35', TIMESTAMP(-1, -1)))], [gf_ar_mthly_bill.clcn_bsc_amt=column_conv(DECIMAL_INT,PS:(25,4),NULL,cast('123.12', DECIMAL_INT(25,
3420
       4)))], [gf_ar_mthly_bill.bill_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,1)], [gf_ar_mthly_bill.rcvd_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,2)], [gf_ar_mthly_bill.tax_amt=column_conv(BIGINT,
3421
      PS:(20,0),NOT NULL,3)], [gf_ar_mthly_bill.exn_inf=column_conv(VARCHAR,utf8mb4_bin,length:4000,NULL,cast('123456', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn1=column_conv(VARCHAR,
3422
      utf8mb4_bin,length:1000,NULL,cast('123456', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn2=column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast('234567',
3423
       VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn3=column_conv(VARCHAR,utf8mb4_bin,length:1000,NULL,cast('345678', VARCHAR(1048576)))], [gf_ar_mthly_bill.anl_dmsn4=column_conv(VARCHAR,
3424
      utf8mb4_bin,length:1000,NULL,cast('456789', VARCHAR(1048576)))], [gf_ar_mthly_bill.last_moder=column_conv(VARCHAR,utf8mb4_bin,length:32,NOT NULL,cast('ylc',
3425
       VARCHAR(1048576)))], [gf_ar_mthly_bill.adj_amt=column_conv(BIGINT,PS:(20,0),NOT NULL,4)], [gf_ar_mthly_bill.svc_amt=column_conv(BIGINT,PS:(20,0),NULL,5)],
3426
       [gf_ar_mthly_bill.chk_st=column_conv(VARCHAR,utf8mb4_bin,length:2,NULL,cast('06', VARCHAR(1048576)))], [gf_ar_mthly_bill.inv_amt=column_conv(BIGINT,PS:(20,
3427
      0),NULL,6)], [gf_ar_mthly_bill.writingoff_amt=column_conv(BIGINT,PS:(20,0),NULL,7)], [gf_ar_mthly_bill.wrtof_dtl_cnt=column_conv(BIGINT,PS:(20,0),NULL,9)],
3428
       [gf_ar_mthly_bill.to_wrtof_dtl_cnt=column_conv(BIGINT,PS:(20,0),NULL,8)], [gf_ar_mthly_bill.chking_amt=column_conv(BIGINT,PS:(20,0),NULL,10)], [gf_ar_mthly_bill.chked_amt=column_conv(BIGINT,
3429
      PS:(20,0),NULL,11)], [gf_ar_mthly_bill.frz_amt=column_conv(BIGINT,PS:(20,0),NULL,12)], [gf_ar_mthly_bill.svc_bill_amt=column_conv(BIGINT,PS:(20,0),NULL,
3430
      13)], [gf_ar_mthly_bill.gmt_modified=column_conv(TIMESTAMP,PS:(25,6),NOT NULL,timestamp_nvl(cast('2021-05-17 12:09:34', TIMESTAMP(-1, -1)), cast(current_timestamp(),
3431
       TIMESTAMP(25, 6))))])
3432
  1 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3433
       23, 2))], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.clcn_bsc_amt], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.rcvd_amt],
3434
       [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4],
3435
       [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.writingoff_amt],
3436
       [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.frz_amt],
3437
       [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], 
3438
      [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt],
3439
       [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig],
3440
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate],
3441
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.inved_amt],
3442
       [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], 
3443
      [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone],
3444
       [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3445
      access([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.clcn_bsc_amt],
3446
       [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2],
3447
       [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.chk_st],
3448
       [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.chking_amt],
3449
       [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id],
3450
       [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_strt_dt],
3451
       [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way],
3452
       [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.tax_tp],
3453
       [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id],
3454
       [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], 
3455
      [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source],
3456
       [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), partitions(p3)
3457
      is_index_back=false, is_global_index=false, 
3458
      range_key([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no]), range[ylctest,2018090310122000040400820033834415 ; ylctest,2018090310122000040400820033834415],
3459
       
3460
      range_cond([gf_ar_mthly_bill.tnt_inst_id = cast('ylctest', VARCHAR(1048576))], [gf_ar_mthly_bill.bill_no = cast('2018090310122000040400820033834415',
3461
       VARCHAR(1048576))])
3462
update gf_ar_mthly_bill
3463
    set bill_st='01',
3464
    gmt_pay='2021-05-17 12:09:35',
3465
    clcn_bsc_amt='123.12',
3466
    bill_amt=1,
3467
    rcvd_amt=2,
3468
    tax_amt=3,
3469
    exn_inf='123456',
3470
    anl_dmsn1='123456',
3471
    anl_dmsn2='234567',
3472
    anl_dmsn3='345678',
3473
    anl_dmsn4='456789',
3474
    last_moder='ylc',
3475
    adj_amt=4,
3476
    svc_amt = 5,
3477
    chk_st = '06',
3478
    inv_amt = 6,
3479
    writingoff_amt = 7,
3480
    wrtof_dtl_cnt = 9 , 
3481
    to_wrtof_dtl_cnt = 8,
3482
    chking_amt=10,
3483
    chked_amt=11,
3484
    frz_amt=12,
3485
    svc_bill_amt=13,
3486
    gmt_modified='2021-05-17 12:09:34'
3487
 where
3488
    tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
3489

3490
EXPLAIN BASIC select * from gf_ar_mthly_bill;
3491
Query Plan
3492
===============================================
3493
|ID|OPERATOR                 |NAME            |
3494
-----------------------------------------------
3495
|0 |PX COORDINATOR           |                |
3496
|1 |└─EXCHANGE OUT DISTR     |:EX10000        |
3497
|2 |  └─PX PARTITION ITERATOR|                |
3498
|3 |    └─TABLE FULL SCAN    |gf_ar_mthly_bill|
3499
===============================================
3500
Outputs & filters:
3501
-------------------------------------
3502
  0 - output([INTERNAL_FUNCTION(gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id, gf_ar_mthly_bill.inst_id,
3503
       gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_strt_dt,
3504
       gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac, gf_ar_mthly_bill.payer_ac,
3505
       gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd, gf_ar_mthly_bill.chrg_itm_code,
3506
       gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp, gf_ar_mthly_bill.tax_rate,
3507
       gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3, gf_ar_mthly_bill.anl_dmsn4,
3508
       gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create, 
3509
      gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3510
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3511
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3512
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3513
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,
3514
      substr(gf_ar_mthly_bill.bill_no, 23, 2)))]), filter(nil), rowset=16
3515
  1 - output([INTERNAL_FUNCTION(gf_ar_mthly_bill.tnt_inst_id, gf_ar_mthly_bill.bill_no, gf_ar_mthly_bill.ip_id, gf_ar_mthly_bill.ip_role_id, gf_ar_mthly_bill.inst_id,
3516
       gf_ar_mthly_bill.pd_code, gf_ar_mthly_bill.ar_no, gf_ar_mthly_bill.bill_tp, gf_ar_mthly_bill.setl_tp, gf_ar_mthly_bill.bill_st, gf_ar_mthly_bill.bill_strt_dt,
3517
       gf_ar_mthly_bill.bill_end_dt, gf_ar_mthly_bill.bill_mth, gf_ar_mthly_bill.acrd_dt, gf_ar_mthly_bill.gmt_pay, gf_ar_mthly_bill.payee_ac, gf_ar_mthly_bill.payer_ac,
3518
       gf_ar_mthly_bill.pay_way, gf_ar_mthly_bill.pay_orig, gf_ar_mthly_bill.clcn_bsc_amt, gf_ar_mthly_bill.clcn_bsc_tp, gf_ar_mthly_bill.clcn_mthd, gf_ar_mthly_bill.chrg_itm_code,
3519
       gf_ar_mthly_bill.ccy, gf_ar_mthly_bill.bill_amt, gf_ar_mthly_bill.adj_amt, gf_ar_mthly_bill.rcvd_amt, gf_ar_mthly_bill.tax_tp, gf_ar_mthly_bill.tax_rate,
3520
       gf_ar_mthly_bill.tax_amt, gf_ar_mthly_bill.exn_inf, gf_ar_mthly_bill.anl_dmsn1, gf_ar_mthly_bill.anl_dmsn2, gf_ar_mthly_bill.anl_dmsn3, gf_ar_mthly_bill.anl_dmsn4,
3521
       gf_ar_mthly_bill.wrtof_dtl_cnt, gf_ar_mthly_bill.to_wrtof_dtl_cnt, gf_ar_mthly_bill.rcrd_id, gf_ar_mthly_bill.last_moder, gf_ar_mthly_bill.gmt_create, 
3522
      gf_ar_mthly_bill.gmt_modified, gf_ar_mthly_bill.charge_tp, gf_ar_mthly_bill.stl_ip_role_id, gf_ar_mthly_bill.svc_amt, gf_ar_mthly_bill.inved_amt, gf_ar_mthly_bill.chk_st,
3523
       gf_ar_mthly_bill.acnt_day, gf_ar_mthly_bill.inv_amt, gf_ar_mthly_bill.rel_inv_amt, gf_ar_mthly_bill.tp, gf_ar_mthly_bill.payer_ip_role_id, gf_ar_mthly_bill.sgn_ip_id,
3524
       gf_ar_mthly_bill.sgn_ip_role_id, gf_ar_mthly_bill.chking_amt, gf_ar_mthly_bill.frz_amt, gf_ar_mthly_bill.chked_amt, gf_ar_mthly_bill.writingoff_amt, gf_ar_mthly_bill.svc_bill_amt,
3525
       gf_ar_mthly_bill.svc_ccy, gf_ar_mthly_bill.env_source, gf_ar_mthly_bill.metadata_source, gf_ar_mthly_bill.setl_time_zone, gf_ar_mthly_bill.actg_time_zone,
3526
       gf_ar_mthly_bill.inter_trade_flag, gf_ar_mthly_bill.actg_bill_mth, gf_ar_mthly_bill.auto_writeoff_group_no, column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,
3527
      substr(gf_ar_mthly_bill.bill_no, 23, 2)))]), filter(nil), rowset=16
3528
      dop=1
3529
  2 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3530
       23, 2))], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp],
3531
       [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt],
3532
       [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt],
3533
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt],
3534
       [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1],
3535
       [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt],
3536
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp],
3537
       [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt],
3538
       [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id],
3539
       [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt],
3540
       [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone],
3541
       [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3542
      force partition granule
3543
  3 - output([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [column_conv(VARCHAR,utf8mb4_bin,length:4,NULL,substr(gf_ar_mthly_bill.bill_no,
3544
       23, 2))], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id], [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp],
3545
       [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt], [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt],
3546
       [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac], [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt],
3547
       [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd], [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt],
3548
       [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp], [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1],
3549
       [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3], [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt],
3550
       [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder], [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp],
3551
       [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt], [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt],
3552
       [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp], [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id],
3553
       [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt], [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt],
3554
       [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source], [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone],
3555
       [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth], [gf_ar_mthly_bill.auto_writeoff_group_no]), filter(nil), rowset=16
3556
      access([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no], [gf_ar_mthly_bill.ip_id], [gf_ar_mthly_bill.ip_role_id], [gf_ar_mthly_bill.inst_id],
3557
       [gf_ar_mthly_bill.pd_code], [gf_ar_mthly_bill.ar_no], [gf_ar_mthly_bill.bill_tp], [gf_ar_mthly_bill.setl_tp], [gf_ar_mthly_bill.bill_st], [gf_ar_mthly_bill.bill_strt_dt],
3558
       [gf_ar_mthly_bill.bill_end_dt], [gf_ar_mthly_bill.bill_mth], [gf_ar_mthly_bill.acrd_dt], [gf_ar_mthly_bill.gmt_pay], [gf_ar_mthly_bill.payee_ac], [gf_ar_mthly_bill.payer_ac],
3559
       [gf_ar_mthly_bill.pay_way], [gf_ar_mthly_bill.pay_orig], [gf_ar_mthly_bill.clcn_bsc_amt], [gf_ar_mthly_bill.clcn_bsc_tp], [gf_ar_mthly_bill.clcn_mthd],
3560
       [gf_ar_mthly_bill.chrg_itm_code], [gf_ar_mthly_bill.ccy], [gf_ar_mthly_bill.bill_amt], [gf_ar_mthly_bill.adj_amt], [gf_ar_mthly_bill.rcvd_amt], [gf_ar_mthly_bill.tax_tp],
3561
       [gf_ar_mthly_bill.tax_rate], [gf_ar_mthly_bill.tax_amt], [gf_ar_mthly_bill.exn_inf], [gf_ar_mthly_bill.anl_dmsn1], [gf_ar_mthly_bill.anl_dmsn2], [gf_ar_mthly_bill.anl_dmsn3],
3562
       [gf_ar_mthly_bill.anl_dmsn4], [gf_ar_mthly_bill.wrtof_dtl_cnt], [gf_ar_mthly_bill.to_wrtof_dtl_cnt], [gf_ar_mthly_bill.rcrd_id], [gf_ar_mthly_bill.last_moder],
3563
       [gf_ar_mthly_bill.gmt_create], [gf_ar_mthly_bill.gmt_modified], [gf_ar_mthly_bill.charge_tp], [gf_ar_mthly_bill.stl_ip_role_id], [gf_ar_mthly_bill.svc_amt],
3564
       [gf_ar_mthly_bill.inved_amt], [gf_ar_mthly_bill.chk_st], [gf_ar_mthly_bill.acnt_day], [gf_ar_mthly_bill.inv_amt], [gf_ar_mthly_bill.rel_inv_amt], [gf_ar_mthly_bill.tp],
3565
       [gf_ar_mthly_bill.payer_ip_role_id], [gf_ar_mthly_bill.sgn_ip_id], [gf_ar_mthly_bill.sgn_ip_role_id], [gf_ar_mthly_bill.chking_amt], [gf_ar_mthly_bill.frz_amt],
3566
       [gf_ar_mthly_bill.chked_amt], [gf_ar_mthly_bill.writingoff_amt], [gf_ar_mthly_bill.svc_bill_amt], [gf_ar_mthly_bill.svc_ccy], [gf_ar_mthly_bill.env_source],
3567
       [gf_ar_mthly_bill.metadata_source], [gf_ar_mthly_bill.setl_time_zone], [gf_ar_mthly_bill.actg_time_zone], [gf_ar_mthly_bill.inter_trade_flag], [gf_ar_mthly_bill.actg_bill_mth],
3568
       [gf_ar_mthly_bill.auto_writeoff_group_no]), partitions(p[0-8])
3569
      is_index_back=false, is_global_index=false, 
3570
      range_key([gf_ar_mthly_bill.tnt_inst_id], [gf_ar_mthly_bill.bill_no]), range(MIN,MIN ; MAX,MAX)always true
3571
select * from gf_ar_mthly_bill;
3572
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3573
| tnt_inst_id | bill_no                            | ip_id | ip_role_id | inst_id | pd_code | ar_no | bill_tp | setl_tp | bill_st | bill_strt_dt | bill_end_dt | bill_mth | acrd_dt | gmt_pay                    | payee_ac | payer_ac | pay_way | pay_orig | clcn_bsc_amt | clcn_bsc_tp | clcn_mthd | chrg_itm_code | ccy | bill_amt | adj_amt | rcvd_amt | tax_tp | tax_rate   | tax_amt | exn_inf | anl_dmsn1 | anl_dmsn2 | anl_dmsn3 | anl_dmsn4 | wrtof_dtl_cnt | to_wrtof_dtl_cnt | rcrd_id | last_moder | gmt_create                 | gmt_modified               | charge_tp | stl_ip_role_id | svc_amt | inved_amt | chk_st | acnt_day | inv_amt | rel_inv_amt | tp   | payer_ip_role_id | sgn_ip_id | sgn_ip_role_id | chking_amt | frz_amt | chked_amt | writingoff_amt | svc_bill_amt | svc_ccy | env_source | metadata_source | setl_time_zone | actg_time_zone | inter_trade_flag | actg_bill_mth | auto_writeoff_group_no | partition_id |
3574
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3575
| ylctest     | 2018090310122000040400820033834415 | 1     | 1          | 1       | NULL    | NULL  | 1       | 1       | 01      | 1            | 1           | 1        | NULL    | 2021-05-17 12:09:35.000000 | NULL     | NULL     | NULL    | NULL     |     123.1200 | NULL        | NULL      | NULL          | 1   |        1 |       4 |        2 | 1      | 1.00000000 |       3 | 123456  | 123456    | 234567    | 345678    | 456789    |             9 |                8 | 1       | ylc        | 2021-05-17 12:09:34.000000 | 2021-05-17 12:09:34.000000 | NULL      | NULL           |       5 |      NULL | 06     | NULL     |       6 |        NULL | NULL | NULL             | NULL      | NULL           |         10 |      12 |        11 |              7 |           13 | NULL    | NULL       | NULL            | NULL           | NULL           | NULL             | NULL          | NULL                   | 82           |
3576
+-------------+------------------------------------+-------+------------+---------+---------+-------+---------+---------+---------+--------------+-------------+----------+---------+----------------------------+----------+----------+---------+----------+--------------+-------------+-----------+---------------+-----+----------+---------+----------+--------+------------+---------+---------+-----------+-----------+-----------+-----------+---------------+------------------+---------+------------+----------------------------+----------------------------+-----------+----------------+---------+-----------+--------+----------+---------+-------------+------+------------------+-----------+----------------+------------+---------+-----------+----------------+--------------+---------+------------+-----------------+----------------+----------------+------------------+---------------+------------------------+--------------+
3577
drop table gf_ar_mthly_bill;
3578
set binlog_row_image='FULL';
3579

3580
drop table if exists TBFUNDSALESTAT;
3581
Warnings:
3582
Note	1051	Unknown table 'test.tbfundsalestat'
3583
CREATE TABLE TBFUNDSALESTAT (
3584
  PRD_CODE VARCHAR(32) DEFAULT ' ',
3585
  SELLER_CODE VARCHAR(9) DEFAULT ' ',
3586
  HOLD_AMT NUMBER(18,2) DEFAULT 0 
3587
);
3588

3589

3590
EXPLAIN BASIC UPDATE tbfundsalestat a
3591
SET    a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
3592
                      FROM tbfundsalestat c
3593
                      WHERE c.prd_code = a.prd_code)
3594
WHERE  a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
3595
                            FROM   tbfundsalestat b
3596
                            WHERE  a.prd_code = b.prd_code);
3597
Query Plan
3598
========================================
3599
|ID|OPERATOR                     |NAME |
3600
----------------------------------------
3601
|0 |UPDATE                       |     |
3602
|1 |└─SUBPLAN SCAN               |VIEW3|
3603
|2 |  └─HASH GROUP BY            |     |
3604
|3 |    └─HASH RIGHT OUTER JOIN  |     |
3605
|4 |      ├─TABLE FULL SCAN      |c    |
3606
|5 |      └─HASH JOIN            |     |
3607
|6 |        ├─SUBPLAN SCAN       |VIEW1|
3608
|7 |        │ └─HASH GROUP BY    |     |
3609
|8 |        │   └─TABLE FULL SCAN|b    |
3610
|9 |        └─TABLE FULL SCAN    |a    |
3611
========================================
3612
Outputs & filters:
3613
-------------------------------------
3614
  0 - output(nil), filter(nil)
3615
      table_columns([{VIEW3: ({tbfundsalestat: (VIEW3.a.__pk_increment, VIEW3.a.PRD_CODE, VIEW3.a.SELLER_CODE, VIEW3.a.HOLD_AMT)}), hash_distinct}]),
3616
      update([VIEW3.a.HOLD_AMT=column_conv(DECIMAL_INT,PS:(18,2),NULL,cast(VIEW3.VIEW2.Sum(c.hold_amt), DECIMAL_INT(18, 2)))])
3617
  1 - output([VIEW3.a.__pk_increment], [VIEW3.a.PRD_CODE], [VIEW3.a.SELLER_CODE], [VIEW3.a.HOLD_AMT], [VIEW3.VIEW2.Sum(c.hold_amt)]), filter(nil), rowset=16
3618
      access([VIEW3.a.__pk_increment], [VIEW3.a.PRD_CODE], [VIEW3.a.SELLER_CODE], [VIEW3.a.HOLD_AMT], [VIEW3.VIEW2.Sum(c.hold_amt)])
3619
  2 - output([a.__pk_increment], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT], [T_FUN_SUM(c.HOLD_AMT)]), filter(nil), rowset=16
3620
      group([a.__pk_increment], [c.PRD_CODE]), agg_func([T_FUN_SUM(c.HOLD_AMT)])
3621
  3 - output([a.__pk_increment], [c.PRD_CODE], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT], [c.HOLD_AMT]), filter(nil), rowset=16
3622
      equal_conds([c.PRD_CODE = a.PRD_CODE]), other_conds(nil)
3623
  4 - output([c.PRD_CODE], [c.HOLD_AMT]), filter(nil), rowset=16
3624
      access([c.PRD_CODE], [c.HOLD_AMT]), partitions(p0)
3625
      is_index_back=false, is_global_index=false, 
3626
      range_key([c.__pk_increment]), range(MIN ; MAX)always true
3627
  5 - output([a.__pk_increment], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT]), filter(nil), rowset=16
3628
      equal_conds([a.SELLER_CODE = VIEW1.Max(b.seller_code)], [a.PRD_CODE = VIEW1.b.PRD_CODE]), other_conds(nil)
3629
  6 - output([VIEW1.Max(b.seller_code)], [VIEW1.b.PRD_CODE]), filter(nil), rowset=16
3630
      access([VIEW1.Max(b.seller_code)], [VIEW1.b.PRD_CODE])
3631
  7 - output([T_FUN_MAX(b.SELLER_CODE)], [b.PRD_CODE]), filter(nil), rowset=16
3632
      group([b.PRD_CODE]), agg_func([T_FUN_MAX(b.SELLER_CODE)])
3633
  8 - output([b.PRD_CODE], [b.SELLER_CODE]), filter(nil), rowset=16
3634
      access([b.PRD_CODE], [b.SELLER_CODE]), partitions(p0)
3635
      is_index_back=false, is_global_index=false, 
3636
      range_key([b.__pk_increment]), range(MIN ; MAX)always true
3637
  9 - output([a.__pk_increment], [a.HOLD_AMT], [a.PRD_CODE], [a.SELLER_CODE]), filter(nil), rowset=16
3638
      access([a.__pk_increment], [a.HOLD_AMT], [a.PRD_CODE], [a.SELLER_CODE]), partitions(p0)
3639
      is_index_back=false, is_global_index=false, 
3640
      range_key([a.__pk_increment]), range(MIN ; MAX)always true
3641
UPDATE tbfundsalestat a
3642
SET    a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
3643
                      FROM tbfundsalestat c
3644
                      WHERE c.prd_code = a.prd_code)
3645
WHERE  a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
3646
                            FROM   tbfundsalestat b
3647
                            WHERE  a.prd_code = b.prd_code);
3648

3649

3650
EXPLAIN BASIC UPDATE tbfundsalestat a
3651
SET    a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
3652
                      FROM tbfundsalestat c
3653
                      WHERE c.prd_code = a.prd_code)
3654
WHERE  a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
3655
                            FROM   tbfundsalestat b
3656
                            WHERE  a.prd_code = b.prd_code);
3657
Query Plan
3658
========================================
3659
|ID|OPERATOR                     |NAME |
3660
----------------------------------------
3661
|0 |UPDATE                       |     |
3662
|1 |└─SUBPLAN SCAN               |VIEW3|
3663
|2 |  └─HASH GROUP BY            |     |
3664
|3 |    └─HASH RIGHT OUTER JOIN  |     |
3665
|4 |      ├─TABLE FULL SCAN      |c    |
3666
|5 |      └─HASH JOIN            |     |
3667
|6 |        ├─SUBPLAN SCAN       |VIEW1|
3668
|7 |        │ └─HASH GROUP BY    |     |
3669
|8 |        │   └─TABLE FULL SCAN|b    |
3670
|9 |        └─TABLE FULL SCAN    |a    |
3671
========================================
3672
Outputs & filters:
3673
-------------------------------------
3674
  0 - output(nil), filter(nil)
3675
      table_columns([{VIEW3: ({tbfundsalestat: (VIEW3.a.__pk_increment, VIEW3.a.PRD_CODE, VIEW3.a.SELLER_CODE, VIEW3.a.HOLD_AMT)}), hash_distinct}]),
3676
      update([VIEW3.a.HOLD_AMT=column_conv(DECIMAL_INT,PS:(18,2),NULL,cast(VIEW3.VIEW2.Sum(c.hold_amt), DECIMAL_INT(18, 2)))])
3677
  1 - output([VIEW3.a.__pk_increment], [VIEW3.a.PRD_CODE], [VIEW3.a.SELLER_CODE], [VIEW3.a.HOLD_AMT], [VIEW3.VIEW2.Sum(c.hold_amt)]), filter(nil), rowset=16
3678
      access([VIEW3.a.__pk_increment], [VIEW3.a.PRD_CODE], [VIEW3.a.SELLER_CODE], [VIEW3.a.HOLD_AMT], [VIEW3.VIEW2.Sum(c.hold_amt)])
3679
  2 - output([a.__pk_increment], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT], [T_FUN_SUM(c.HOLD_AMT)]), filter(nil), rowset=16
3680
      group([a.__pk_increment], [c.PRD_CODE]), agg_func([T_FUN_SUM(c.HOLD_AMT)])
3681
  3 - output([a.__pk_increment], [c.PRD_CODE], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT], [c.HOLD_AMT]), filter(nil), rowset=16
3682
      equal_conds([c.PRD_CODE = a.PRD_CODE]), other_conds(nil)
3683
  4 - output([c.PRD_CODE], [c.HOLD_AMT]), filter(nil), rowset=16
3684
      access([c.PRD_CODE], [c.HOLD_AMT]), partitions(p0)
3685
      is_index_back=false, is_global_index=false, 
3686
      range_key([c.__pk_increment]), range(MIN ; MAX)always true
3687
  5 - output([a.__pk_increment], [a.PRD_CODE], [a.SELLER_CODE], [a.HOLD_AMT]), filter(nil), rowset=16
3688
      equal_conds([a.SELLER_CODE = VIEW1.Max(b.seller_code)], [a.PRD_CODE = VIEW1.b.PRD_CODE]), other_conds(nil)
3689
  6 - output([VIEW1.Max(b.seller_code)], [VIEW1.b.PRD_CODE]), filter(nil), rowset=16
3690
      access([VIEW1.Max(b.seller_code)], [VIEW1.b.PRD_CODE])
3691
  7 - output([T_FUN_MAX(b.SELLER_CODE)], [b.PRD_CODE]), filter(nil), rowset=16
3692
      group([b.PRD_CODE]), agg_func([T_FUN_MAX(b.SELLER_CODE)])
3693
  8 - output([b.PRD_CODE], [b.SELLER_CODE]), filter(nil), rowset=16
3694
      access([b.PRD_CODE], [b.SELLER_CODE]), partitions(p0)
3695
      is_index_back=false, is_global_index=false, 
3696
      range_key([b.__pk_increment]), range(MIN ; MAX)always true
3697
  9 - output([a.__pk_increment], [a.HOLD_AMT], [a.PRD_CODE], [a.SELLER_CODE]), filter(nil), rowset=16
3698
      access([a.__pk_increment], [a.HOLD_AMT], [a.PRD_CODE], [a.SELLER_CODE]), partitions(p0)
3699
      is_index_back=false, is_global_index=false, 
3700
      range_key([a.__pk_increment]), range(MIN ; MAX)always true
3701
UPDATE tbfundsalestat a
3702
SET    a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
3703
                      FROM tbfundsalestat c
3704
                      WHERE c.prd_code = a.prd_code)
3705
WHERE  a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
3706
                            FROM   tbfundsalestat b
3707
                            WHERE  a.prd_code = b.prd_code);
3708

3709
drop table if exists TBFUNDSALESTAT;
3710

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.