mark some file to been opensource for ce-farm
This commit is contained in:
@ -0,0 +1,619 @@
|
||||
alter system enable_table_without_all_cg = false;
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) with column group for all columns, each column;
|
||||
create table t2(pk int, c1 int, c2 int unsigned, c3 varchar(100)) block_size=2048 with column group for all columns, each column;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
150
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
150 150 1 299 22500 150 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 150 10 2990 225000
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
alter system major freeze;
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system major freeze;
|
||||
alter table t2 add column c4 bigint default 10, add column c5 bigint unsigned default 20;
|
||||
alter table t2 add column c6 bigint default null;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
drop table t1,t2;
|
||||
alter system enable_table_without_all_cg = true;
|
||||
alter system flush plan cache;
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) with column group for all columns, each column;
|
||||
create table t2(pk int, c1 int, c2 int unsigned, c3 varchar(100)) block_size=2048 with column group for all columns, each column;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
150
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
150 150 1 299 22500 150 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 150 10 2990 225000
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
alter system major freeze;
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system major freeze;
|
||||
alter table t2 add column c4 bigint default 10, add column c5 bigint unsigned default 20;
|
||||
alter table t2 add column c6 bigint default null;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
count(*) count(pk) min(pk) max(pk) sum(pk) min(c1) max(c1) sum(c1) min(c2) max(c2) sum(c2) min(c3) max(c3)
|
||||
1500 1500 11 3000 2258250 11 3000 2258250 12 3001 2259750 abcdefg1 abcdefg99
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
count(*) count(c4) count(c5) count(c6)
|
||||
1500 1500 1500 0
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
min(c4) min(c5) min(c6)
|
||||
10 20 NULL
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
max(c4) max(c5) max(c6)
|
||||
10 20 NULL
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
sum(c4) sum(c5) sum(c6)
|
||||
15000 30000 NULL
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
count(*) min(pk) max(c1) sum(c2) min(c3) max(c4) sum(c5) count(c6)
|
||||
1500 11 3000 2259750 abcdefg1 10 30000 0
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
count(*) count(a) min(a) max(a) sum(a) count(b) min(b) max(b) count(c) min(c) max(c) sum(c)
|
||||
250 250 1 498 62400 250 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990990 250 10 4980 624000
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
count(*) count(c1) min(c1) max(c1) sum(c1) count(c2) min(c2) max(c2)
|
||||
250 250 0 498 39900 100 300300300300300 498498498498498
|
||||
drop table t1,t2;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,675 @@
|
||||
drop table if exists ct1;
|
||||
set session ob_trx_timeout=100000000000;
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
alter system minor freeze;
|
||||
alter system major freeze;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
10 10 10 3200
|
||||
11 11 11 3200
|
||||
12 12 12 3200
|
||||
13 13 13 3200
|
||||
14 14 14 3200
|
||||
15 15 15 3200
|
||||
16 16 16 3200
|
||||
17 17 17 3200
|
||||
18 18 18 3200
|
||||
19 19 19 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
10 10 10 3200
|
||||
11 11 11 3200
|
||||
12 12 12 3200
|
||||
13 13 13 3200
|
||||
14 14 14 3200
|
||||
15 15 15 3200
|
||||
16 16 16 3200
|
||||
17 17 17 3200
|
||||
18 18 18 3200
|
||||
19 19 19 3200
|
||||
20 20 20 3200
|
||||
21 21 21 3200
|
||||
22 22 22 3200
|
||||
23 23 23 3200
|
||||
24 24 24 3200
|
||||
25 25 25 3200
|
||||
26 26 26 3200
|
||||
27 27 27 3200
|
||||
28 28 28 3200
|
||||
29 29 29 3200
|
||||
30 30 30 3200
|
||||
31 31 31 3200
|
||||
32 32 32 3200
|
||||
33 33 33 3200
|
||||
34 34 34 3200
|
||||
35 35 35 3200
|
||||
36 36 36 3200
|
||||
37 37 37 3200
|
||||
38 38 38 3200
|
||||
39 39 39 3200
|
||||
40 40 40 3200
|
||||
41 41 41 3200
|
||||
42 42 42 3200
|
||||
43 43 43 3200
|
||||
44 44 44 3200
|
||||
45 45 45 3200
|
||||
46 46 46 3200
|
||||
47 47 47 3200
|
||||
48 48 48 3200
|
||||
49 49 49 3200
|
||||
50 50 50 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
19 19 19 3200
|
||||
18 18 18 3200
|
||||
17 17 17 3200
|
||||
16 16 16 3200
|
||||
15 15 15 3200
|
||||
14 14 14 3200
|
||||
13 13 13 3200
|
||||
12 12 12 3200
|
||||
11 11 11 3200
|
||||
10 10 10 3200
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
50 50 50 3200
|
||||
49 49 49 3200
|
||||
48 48 48 3200
|
||||
47 47 47 3200
|
||||
46 46 46 3200
|
||||
45 45 45 3200
|
||||
44 44 44 3200
|
||||
43 43 43 3200
|
||||
42 42 42 3200
|
||||
41 41 41 3200
|
||||
40 40 40 3200
|
||||
39 39 39 3200
|
||||
38 38 38 3200
|
||||
37 37 37 3200
|
||||
36 36 36 3200
|
||||
35 35 35 3200
|
||||
34 34 34 3200
|
||||
33 33 33 3200
|
||||
32 32 32 3200
|
||||
31 31 31 3200
|
||||
30 30 30 3200
|
||||
29 29 29 3200
|
||||
28 28 28 3200
|
||||
27 27 27 3200
|
||||
26 26 26 3200
|
||||
25 25 25 3200
|
||||
24 24 24 3200
|
||||
23 23 23 3200
|
||||
22 22 22 3200
|
||||
21 21 21 3200
|
||||
20 20 20 3200
|
||||
19 19 19 3200
|
||||
18 18 18 3200
|
||||
17 17 17 3200
|
||||
16 16 16 3200
|
||||
15 15 15 3200
|
||||
14 14 14 3200
|
||||
13 13 13 3200
|
||||
12 12 12 3200
|
||||
11 11 11 3200
|
||||
10 10 10 3200
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c5 is null;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
0 0 0 3200 3200
|
||||
1 1 1 3200 3200
|
||||
2 2 2 3200 3200
|
||||
3 3 3 3200 3200
|
||||
4 4 4 3200 3200
|
||||
5 5 5 3200 3200
|
||||
6 6 6 3200 3200
|
||||
7 7 7 3200 3200
|
||||
8 8 8 3200 3200
|
||||
9 9 9 3200 3200
|
||||
10 10 10 3200 3200
|
||||
11 11 11 3200 3200
|
||||
12 12 12 3200 3200
|
||||
13 13 13 3200 3200
|
||||
14 14 14 3200 3200
|
||||
15 15 15 3200 3200
|
||||
16 16 16 3200 3200
|
||||
17 17 17 3200 3200
|
||||
18 18 18 3200 3200
|
||||
19 19 19 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20 offset 5000;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
5000 5000 5000 3200 3200
|
||||
5001 5001 5001 3200 3200
|
||||
5002 5002 5002 3200 3200
|
||||
5003 5003 5003 3200 3200
|
||||
5004 5004 5004 3200 3200
|
||||
5005 5005 5005 3200 3200
|
||||
5006 5006 5006 3200 3200
|
||||
5007 5007 5007 3200 3200
|
||||
5008 5008 5008 3200 3200
|
||||
5009 5009 5009 3200 3200
|
||||
5010 5010 5010 3200 3200
|
||||
5011 5011 5011 3200 3200
|
||||
5012 5012 5012 3200 3200
|
||||
5013 5013 5013 3200 3200
|
||||
5014 5014 5014 3200 3200
|
||||
5015 5015 5015 3200 3200
|
||||
5016 5016 5016 3200 3200
|
||||
5017 5017 5017 3200 3200
|
||||
5018 5018 5018 3200 3200
|
||||
5019 5019 5019 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
9999 9999 9999 3200 3200
|
||||
9998 9998 9998 3200 3200
|
||||
9997 9997 9997 3200 3200
|
||||
9996 9996 9996 3200 3200
|
||||
9995 9995 9995 3200 3200
|
||||
9994 9994 9994 3200 3200
|
||||
9993 9993 9993 3200 3200
|
||||
9992 9992 9992 3200 3200
|
||||
9991 9991 9991 3200 3200
|
||||
9990 9990 9990 3200 3200
|
||||
9989 9989 9989 3200 3200
|
||||
9988 9988 9988 3200 3200
|
||||
9987 9987 9987 3200 3200
|
||||
9986 9986 9986 3200 3200
|
||||
9985 9985 9985 3200 3200
|
||||
9984 9984 9984 3200 3200
|
||||
9983 9983 9983 3200 3200
|
||||
9982 9982 9982 3200 3200
|
||||
9981 9981 9981 3200 3200
|
||||
9980 9980 9980 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20 offset 5000;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
4999 4999 4999 3200 3200
|
||||
4998 4998 4998 3200 3200
|
||||
4997 4997 4997 3200 3200
|
||||
4996 4996 4996 3200 3200
|
||||
4995 4995 4995 3200 3200
|
||||
4994 4994 4994 3200 3200
|
||||
4993 4993 4993 3200 3200
|
||||
4992 4992 4992 3200 3200
|
||||
4991 4991 4991 3200 3200
|
||||
4990 4990 4990 3200 3200
|
||||
4989 4989 4989 3200 3200
|
||||
4988 4988 4988 3200 3200
|
||||
4987 4987 4987 3200 3200
|
||||
4986 4986 4986 3200 3200
|
||||
4985 4985 4985 3200 3200
|
||||
4984 4984 4984 3200 3200
|
||||
4983 4983 4983 3200 3200
|
||||
4982 4982 4982 3200 3200
|
||||
4981 4981 4981 3200 3200
|
||||
4980 4980 4980 3200 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where (c1 < 100 and c1 < 20 and c3 < 10) or ((c1 + c2) < 100 and c3 < 10 and (c1 + c2) >= 0);
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
alter system minor freeze;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 limit 10;
|
||||
c1 c2 c3 length(c4)
|
||||
10001 10001 10001 3200
|
||||
10002 10002 10002 3200
|
||||
10003 10003 10003 3200
|
||||
10004 10004 10004 3200
|
||||
10005 10005 10005 3200
|
||||
10006 10006 10006 3200
|
||||
10007 10007 10007 3200
|
||||
10008 10008 10008 3200
|
||||
10009 10009 10009 3200
|
||||
10010 10010 10010 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 limit 10;
|
||||
c1 c2 c3 length(c4)
|
||||
10001 10001 10001 3200
|
||||
10002 10002 10002 3200
|
||||
10003 10003 10003 3200
|
||||
10004 10004 10004 3200
|
||||
10005 10005 10005 3200
|
||||
10006 10006 10006 3200
|
||||
10007 10007 10007 3200
|
||||
10008 10008 10008 3200
|
||||
10009 10009 10009 3200
|
||||
10010 10010 10010 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
10 10 10 3200
|
||||
11 11 11 3200
|
||||
12 12 12 3200
|
||||
13 13 13 3200
|
||||
14 14 14 3200
|
||||
15 15 15 3200
|
||||
16 16 16 3200
|
||||
17 17 17 3200
|
||||
18 18 18 3200
|
||||
19 19 19 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
1 1 1 3200
|
||||
2 2 2 3200
|
||||
3 3 3 3200
|
||||
4 4 4 3200
|
||||
5 5 5 3200
|
||||
6 6 6 3200
|
||||
7 7 7 3200
|
||||
8 8 8 3200
|
||||
9 9 9 3200
|
||||
10 10 10 3200
|
||||
11 11 11 3200
|
||||
12 12 12 3200
|
||||
13 13 13 3200
|
||||
14 14 14 3200
|
||||
15 15 15 3200
|
||||
16 16 16 3200
|
||||
17 17 17 3200
|
||||
18 18 18 3200
|
||||
19 19 19 3200
|
||||
20 20 20 3200
|
||||
21 21 21 3200
|
||||
22 22 22 3200
|
||||
23 23 23 3200
|
||||
24 24 24 3200
|
||||
25 25 25 3200
|
||||
26 26 26 3200
|
||||
27 27 27 3200
|
||||
28 28 28 3200
|
||||
29 29 29 3200
|
||||
30 30 30 3200
|
||||
31 31 31 3200
|
||||
32 32 32 3200
|
||||
33 33 33 3200
|
||||
34 34 34 3200
|
||||
35 35 35 3200
|
||||
36 36 36 3200
|
||||
37 37 37 3200
|
||||
38 38 38 3200
|
||||
39 39 39 3200
|
||||
40 40 40 3200
|
||||
41 41 41 3200
|
||||
42 42 42 3200
|
||||
43 43 43 3200
|
||||
44 44 44 3200
|
||||
45 45 45 3200
|
||||
46 46 46 3200
|
||||
47 47 47 3200
|
||||
48 48 48 3200
|
||||
49 49 49 3200
|
||||
50 50 50 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 order by c1 desc limit 10;
|
||||
c1 c2 c3 length(c4)
|
||||
11999 11999 11999 3200
|
||||
11998 11998 11998 3200
|
||||
11997 11997 11997 3200
|
||||
11996 11996 11996 3200
|
||||
11995 11995 11995 3200
|
||||
11994 11994 11994 3200
|
||||
11993 11993 11993 3200
|
||||
11992 11992 11992 3200
|
||||
11991 11991 11991 3200
|
||||
11990 11990 11990 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 order by c1 desc limit 10;
|
||||
c1 c2 c3 length(c4)
|
||||
11999 11999 11999 3200
|
||||
11998 11998 11998 3200
|
||||
11997 11997 11997 3200
|
||||
11996 11996 11996 3200
|
||||
11995 11995 11995 3200
|
||||
11994 11994 11994 3200
|
||||
11993 11993 11993 3200
|
||||
11992 11992 11992 3200
|
||||
11991 11991 11991 3200
|
||||
11990 11990 11990 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
19 19 19 3200
|
||||
18 18 18 3200
|
||||
17 17 17 3200
|
||||
16 16 16 3200
|
||||
15 15 15 3200
|
||||
14 14 14 3200
|
||||
13 13 13 3200
|
||||
12 12 12 3200
|
||||
11 11 11 3200
|
||||
10 10 10 3200
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20 order by c1 desc;
|
||||
c1 c2 c3 length(c4)
|
||||
50 50 50 3200
|
||||
49 49 49 3200
|
||||
48 48 48 3200
|
||||
47 47 47 3200
|
||||
46 46 46 3200
|
||||
45 45 45 3200
|
||||
44 44 44 3200
|
||||
43 43 43 3200
|
||||
42 42 42 3200
|
||||
41 41 41 3200
|
||||
40 40 40 3200
|
||||
39 39 39 3200
|
||||
38 38 38 3200
|
||||
37 37 37 3200
|
||||
36 36 36 3200
|
||||
35 35 35 3200
|
||||
34 34 34 3200
|
||||
33 33 33 3200
|
||||
32 32 32 3200
|
||||
31 31 31 3200
|
||||
30 30 30 3200
|
||||
29 29 29 3200
|
||||
28 28 28 3200
|
||||
27 27 27 3200
|
||||
26 26 26 3200
|
||||
25 25 25 3200
|
||||
24 24 24 3200
|
||||
23 23 23 3200
|
||||
22 22 22 3200
|
||||
21 21 21 3200
|
||||
20 20 20 3200
|
||||
19 19 19 3200
|
||||
18 18 18 3200
|
||||
17 17 17 3200
|
||||
16 16 16 3200
|
||||
15 15 15 3200
|
||||
14 14 14 3200
|
||||
13 13 13 3200
|
||||
12 12 12 3200
|
||||
11 11 11 3200
|
||||
10 10 10 3200
|
||||
9 9 9 3200
|
||||
8 8 8 3200
|
||||
7 7 7 3200
|
||||
6 6 6 3200
|
||||
5 5 5 3200
|
||||
4 4 4 3200
|
||||
3 3 3 3200
|
||||
2 2 2 3200
|
||||
1 1 1 3200
|
||||
0 0 0 3200
|
||||
select c1, c2, c3, length(c4) from ct1 where c5 is null;
|
||||
c1 c2 c3 length(c4)
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
0 0 0 3200 3200
|
||||
1 1 1 3200 3200
|
||||
2 2 2 3200 3200
|
||||
3 3 3 3200 3200
|
||||
4 4 4 3200 3200
|
||||
5 5 5 3200 3200
|
||||
6 6 6 3200 3200
|
||||
7 7 7 3200 3200
|
||||
8 8 8 3200 3200
|
||||
9 9 9 3200 3200
|
||||
10 10 10 3200 3200
|
||||
11 11 11 3200 3200
|
||||
12 12 12 3200 3200
|
||||
13 13 13 3200 3200
|
||||
14 14 14 3200 3200
|
||||
15 15 15 3200 3200
|
||||
16 16 16 3200 3200
|
||||
17 17 17 3200 3200
|
||||
18 18 18 3200 3200
|
||||
19 19 19 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20 offset 5000;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
5000 5000 5000 3200 3200
|
||||
5001 5001 5001 3200 3200
|
||||
5002 5002 5002 3200 3200
|
||||
5003 5003 5003 3200 3200
|
||||
5004 5004 5004 3200 3200
|
||||
5005 5005 5005 3200 3200
|
||||
5006 5006 5006 3200 3200
|
||||
5007 5007 5007 3200 3200
|
||||
5008 5008 5008 3200 3200
|
||||
5009 5009 5009 3200 3200
|
||||
5010 5010 5010 3200 3200
|
||||
5011 5011 5011 3200 3200
|
||||
5012 5012 5012 3200 3200
|
||||
5013 5013 5013 3200 3200
|
||||
5014 5014 5014 3200 3200
|
||||
5015 5015 5015 3200 3200
|
||||
5016 5016 5016 3200 3200
|
||||
5017 5017 5017 3200 3200
|
||||
5018 5018 5018 3200 3200
|
||||
5019 5019 5019 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
11999 11999 11999 3200 3200
|
||||
11998 11998 11998 3200 3200
|
||||
11997 11997 11997 3200 3200
|
||||
11996 11996 11996 3200 3200
|
||||
11995 11995 11995 3200 3200
|
||||
11994 11994 11994 3200 3200
|
||||
11993 11993 11993 3200 3200
|
||||
11992 11992 11992 3200 3200
|
||||
11991 11991 11991 3200 3200
|
||||
11990 11990 11990 3200 3200
|
||||
11989 11989 11989 3200 3200
|
||||
11988 11988 11988 3200 3200
|
||||
11987 11987 11987 3200 3200
|
||||
11986 11986 11986 3200 3200
|
||||
11985 11985 11985 3200 3200
|
||||
11984 11984 11984 3200 3200
|
||||
11983 11983 11983 3200 3200
|
||||
11982 11982 11982 3200 3200
|
||||
11981 11981 11981 3200 3200
|
||||
11980 11980 11980 3200 3200
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20 offset 5000;
|
||||
c1 c2 c3 length(c4) length(c5)
|
||||
6999 6999 6999 3200 3200
|
||||
6998 6998 6998 3200 3200
|
||||
6997 6997 6997 3200 3200
|
||||
6996 6996 6996 3200 3200
|
||||
6995 6995 6995 3200 3200
|
||||
6994 6994 6994 3200 3200
|
||||
6993 6993 6993 3200 3200
|
||||
6992 6992 6992 3200 3200
|
||||
6991 6991 6991 3200 3200
|
||||
6990 6990 6990 3200 3200
|
||||
6989 6989 6989 3200 3200
|
||||
6988 6988 6988 3200 3200
|
||||
6987 6987 6987 3200 3200
|
||||
6986 6986 6986 3200 3200
|
||||
6985 6985 6985 3200 3200
|
||||
6984 6984 6984 3200 3200
|
||||
6983 6983 6983 3200 3200
|
||||
6982 6982 6982 3200 3200
|
||||
6981 6981 6981 3200 3200
|
||||
6980 6980 6980 3200 3200
|
||||
drop table ct1;
|
||||
@ -0,0 +1,897 @@
|
||||
drop table if exists ct1;
|
||||
set session ob_trx_timeout=100000000000;
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
alter system minor freeze;
|
||||
alter system major freeze;
|
||||
update ct1 set c3 = 0 where c1 = 0;
|
||||
update ct1 set c3 = 0 where c1 = 200;
|
||||
update ct1 set c3 = 0 where c1 = 1200;
|
||||
update ct1 set c3 = 0 where c1 = 5200;
|
||||
update ct1 set c3 = 0 where c1 = 8803;
|
||||
update ct1 set c3 = 0 where c1 = 9907;
|
||||
insert into ct1 values(10001, 0, 0, '', '');
|
||||
insert into ct1 values(20000, 0, 0, '', '');
|
||||
select c1,c2 from ct1 where c2 <= 9;
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10001 0
|
||||
20000 0
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10001 0
|
||||
20000 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
update ct1 set c3 = 0 where c1 < 1000;
|
||||
update ct1 set c3 = 0 where c1 < 2000 and c1 >= 1000;
|
||||
update ct1 set c3 = 0 where c1 < 3000 and c1 >= 2000;
|
||||
update ct1 set c3 = 0 where c1 < 4000 and c1 >= 3000;
|
||||
update ct1 set c3 = 0 where c1 < 5000 and c1 >= 4000;
|
||||
update ct1 set c3 = 0 where c1 < 6000 and c1 >= 5000;
|
||||
update ct1 set c3 = 0 where c1 < 7000 and c1 >= 6000;
|
||||
update ct1 set c3 = 0 where c1 < 8000 and c1 >= 7000;
|
||||
update ct1 set c3 = 0 where c1 < 9000 and c1 >= 8000;
|
||||
update ct1 set c3 = 0 where c1 < 10000 and c1 >= 9000;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
drop table ct1;
|
||||
alter system enable_table_without_all_cg = false;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
alter system minor freeze;
|
||||
alter system major freeze;
|
||||
update ct1 set c3 = 0 where c1 = 0;
|
||||
update ct1 set c3 = 0 where c1 = 200;
|
||||
update ct1 set c3 = 0 where c1 = 1200;
|
||||
update ct1 set c3 = 0 where c1 = 5200;
|
||||
update ct1 set c3 = 0 where c1 = 8803;
|
||||
update ct1 set c3 = 0 where c1 = 9907;
|
||||
insert into ct1 values(10001, 0, 0, '', '');
|
||||
insert into ct1 values(20000, 0, 0, '', '');
|
||||
select c1,c2 from ct1 where c2 <= 9;
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10001 0
|
||||
20000 0
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2
|
||||
0 0
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10001 0
|
||||
20000 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 9
|
||||
8 8 8
|
||||
7 7 7
|
||||
6 6 6
|
||||
5 5 5
|
||||
4 4 4
|
||||
3 3 3
|
||||
2 2 2
|
||||
1 1 1
|
||||
0 0 0
|
||||
update ct1 set c3 = 0 where c1 < 1000;
|
||||
update ct1 set c3 = 0 where c1 < 2000 and c1 >= 1000;
|
||||
update ct1 set c3 = 0 where c1 < 3000 and c1 >= 2000;
|
||||
update ct1 set c3 = 0 where c1 < 4000 and c1 >= 3000;
|
||||
update ct1 set c3 = 0 where c1 < 5000 and c1 >= 4000;
|
||||
update ct1 set c3 = 0 where c1 < 6000 and c1 >= 5000;
|
||||
update ct1 set c3 = 0 where c1 < 7000 and c1 >= 6000;
|
||||
update ct1 set c3 = 0 where c1 < 8000 and c1 >= 7000;
|
||||
update ct1 set c3 = 0 where c1 < 9000 and c1 >= 8000;
|
||||
update ct1 set c3 = 0 where c1 < 10000 and c1 >= 9000;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
c1 c2 c3
|
||||
0 0 0
|
||||
1 1 0
|
||||
2 2 0
|
||||
3 3 0
|
||||
4 4 0
|
||||
5 5 0
|
||||
6 6 0
|
||||
7 7 0
|
||||
8 8 0
|
||||
9 9 0
|
||||
10001 0 0
|
||||
20000 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
c1 c2 c3
|
||||
20000 0 0
|
||||
10001 0 0
|
||||
9 9 0
|
||||
8 8 0
|
||||
7 7 0
|
||||
6 6 0
|
||||
5 5 0
|
||||
4 4 0
|
||||
3 3 0
|
||||
2 2 0
|
||||
1 1 0
|
||||
0 0 0
|
||||
select count(*) from ct1;
|
||||
count(*)
|
||||
10002
|
||||
drop table ct1;
|
||||
@ -0,0 +1,9 @@
|
||||
create table tt1(a int, b int, c int, primary key(a)) with column group for all columns, each column;
|
||||
create index idx_tt1 on tt1(b);
|
||||
create table tt2(d int, e int);
|
||||
alter table tt1 drop column c;
|
||||
ERROR 0A000: drop column with column store table not supported
|
||||
alter table tt1 modify column c varchar(20);
|
||||
ERROR 0A000: alter column with column store table not supported
|
||||
drop table tt1;
|
||||
drop table tt2;
|
||||
@ -0,0 +1,40 @@
|
||||
create table t1(a int, b varchar(3048), primary key (a)) with column group for all columns, each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) with column group for all columns, each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) with column group for all columns, each column;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
501
|
||||
alter system major freeze;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
1001
|
||||
select * from t3;
|
||||
a b c
|
||||
1 1 NULL
|
||||
2 1 1
|
||||
select c from t3;
|
||||
c
|
||||
NULL
|
||||
1
|
||||
select count(c) from t3;
|
||||
count(c)
|
||||
1
|
||||
INSERT INTO t1 VALUES(8000, repeat(8000,512));
|
||||
alter system major freeze;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
1002
|
||||
select * from t3;
|
||||
a b c
|
||||
1 1 NULL
|
||||
2 1 1
|
||||
select c from t3;
|
||||
c
|
||||
NULL
|
||||
1
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
@ -0,0 +1,13 @@
|
||||
create table t1(a int, b varchar(3048), primary key (a)) with column group for each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) with column group for each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) with column group for each column;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
501
|
||||
alter system major freeze;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,359 @@
|
||||
# owner: huronghui.hrh
|
||||
# owner group: STORAGE
|
||||
# description:
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
alter system enable_table_without_all_cg = false;
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) with column group for all columns, each column;
|
||||
create table t2(pk int, c1 int, c2 int unsigned, c3 varchar(100)) block_size=2048 with column group for all columns, each column;
|
||||
|
||||
sleep 10;
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 300)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10);
|
||||
eval insert into t2(pk, c1,c2,c3) values
|
||||
($count * 10 + 1,$count * 10 + 1, $count * 10 + 1 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 2,$count * 10 + 2, $count * 10 + 2 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 3,$count * 10 + 3, $count * 10 + 3 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 4,$count * 10 + 4, $count * 10 + 4 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 5,$count * 10 + 5, $count * 10 + 5 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 6,$count * 10 + 6, $count * 10 + 6 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 7,$count * 10 + 7, $count * 10 + 7 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 8,$count * 10 + 8, $count * 10 + 8 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 9,$count * 10 + 9, $count * 10 + 9 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 10,$count * 10 + 10, $count * 10 + 10+ 1, concat("abcdefg", $count));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=300
|
||||
while ($count < 500)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10, $count, repeat($count, 5));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t2 add column c4 bigint default 10, add column c5 bigint unsigned default 20;
|
||||
alter table t2 add column c6 bigint default null;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
alter system enable_table_without_all_cg = true;
|
||||
alter system flush plan cache;
|
||||
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) with column group for all columns, each column;
|
||||
create table t2(pk int, c1 int, c2 int unsigned, c3 varchar(100)) block_size=2048 with column group for all columns, each column;
|
||||
|
||||
sleep 10;
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 300)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10);
|
||||
eval insert into t2(pk, c1,c2,c3) values
|
||||
($count * 10 + 1,$count * 10 + 1, $count * 10 + 1 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 2,$count * 10 + 2, $count * 10 + 2 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 3,$count * 10 + 3, $count * 10 + 3 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 4,$count * 10 + 4, $count * 10 + 4 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 5,$count * 10 + 5, $count * 10 + 5 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 6,$count * 10 + 6, $count * 10 + 6 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 7,$count * 10 + 7, $count * 10 + 7 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 8,$count * 10 + 8, $count * 10 + 8 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 9,$count * 10 + 9, $count * 10 + 9 + 1, concat("abcdefg", $count)),
|
||||
($count * 10 + 10,$count * 10 + 10, $count * 10 + 10+ 1, concat("abcdefg", $count));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=300
|
||||
while ($count < 500)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10, $count, repeat($count, 5));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t2 add column c4 bigint default 10, add column c5 bigint unsigned default 20;
|
||||
alter table t2 add column c6 bigint default null;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
select count(*),count(pk),min(pk),max(pk),sum(pk),min(c1),max(c1),sum(c1),min(c2),max(c2),sum(c2),min(c3),max(c3) from t2;
|
||||
select count(*),count(c4),count(c5),count(c6) from t2;
|
||||
select min(c4),min(c5),min(c6) from t2;
|
||||
select max(c4),max(c5),max(c6) from t2;
|
||||
select sum(c4),sum(c5),sum(c6) from t2;
|
||||
select count(*),min(pk),max(c1),sum(c2),min(c3),max(c4),sum(c5),count(c6) from t2;
|
||||
select count(*) from t1;
|
||||
select count(*),count(a),min(a),max(a),sum(a),count(b),min(b),max(b),count(c),min(c),max(c),sum(c) from t1;
|
||||
select count(*),count(c1),min(c1),max(c1),sum(c1),count(c2),min(c2),max(c2) from t1;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
alter system enable_table_without_all_cg = false;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,71 @@
|
||||
# owner: yuxiaozhe.yxz
|
||||
# owner group: storage
|
||||
# description: execute query which filter by scanning columnar store
|
||||
|
||||
--disable_query_log
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
set session ob_trx_timeout=100000000000;
|
||||
set @@recyclebin = off;
|
||||
--enable_query_log
|
||||
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists ct1;
|
||||
--enable_warnings
|
||||
create table ct1(c1 int, c2 int) with column group for all columns, each column;
|
||||
|
||||
--disable_query_log
|
||||
--let $count = 0
|
||||
while($count < 500)
|
||||
{
|
||||
eval insert into ct1 values
|
||||
($count * 20+ 1 , $count * 20 + 1 ),
|
||||
($count * 20+ 2 , $count * 20 + 2 ),
|
||||
($count * 20+ 3 , $count * 20 + 3 ),
|
||||
($count * 20+ 4 , $count * 20 + 4 ),
|
||||
($count * 20+ 5 , $count * 20 + 5 ),
|
||||
($count * 20+ 6 , $count * 20 + 6 ),
|
||||
($count * 20+ 7 , $count * 20 + 7 ),
|
||||
($count * 20+ 8 , $count * 20 + 8 ),
|
||||
($count * 20+ 9 , $count * 20 + 9 ),
|
||||
($count * 20+ 10, $count * 20 + 10),
|
||||
($count * 20+ 11, $count * 20 + 11),
|
||||
($count * 20+ 12, $count * 20 + 12),
|
||||
($count * 20+ 13, $count * 20 + 13),
|
||||
($count * 20+ 14, $count * 20 + 14),
|
||||
($count * 20+ 15, $count * 20 + 15),
|
||||
($count * 20+ 16, $count * 20 + 16),
|
||||
($count * 20+ 17, $count * 20 + 17),
|
||||
($count * 20+ 18, $count * 20 + 18),
|
||||
($count * 20+ 19, $count * 20 + 19),
|
||||
($count * 20+ 20, $count * 20 + 20);
|
||||
inc $count;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection default;
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select * from ct1 where c1 < 1;
|
||||
select * from ct1 where c1 < 10;
|
||||
select * from ct1 where c1 > 10000;
|
||||
select * from ct1 where c2 < 1;
|
||||
select * from ct1 where c2 < 10;
|
||||
select * from ct1 where c2 > 10000;
|
||||
select * from ct1 where c1 > 400 and c1 < 500;
|
||||
select * from ct1 where c1 > 9000 and c1 < 9300;
|
||||
select * from ct1 where c1 < 10 or c2 > 9900;
|
||||
select * from ct1 where c1 < 10 or c2 < 20;
|
||||
select * from ct1 where c1 < 10 and c2 > 9900;
|
||||
select * from ct1 where c1 > 10 and c2 < 20;
|
||||
select * from ct1 where c1 * 2 > 500 and c2 * 2 < 600;
|
||||
select * from ct1 where c1 * 2 < 500 or (c2 * 2 > 19000 and c2 * 2 < 20000) ;
|
||||
|
||||
drop table ct1;
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,145 @@
|
||||
# owner: yuxiaozhe.yxz
|
||||
# owner group: storage
|
||||
# description: execute query whith filter by scanning columnar store
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
set @@recyclebin = off;
|
||||
--enable_query_log
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists ct1;
|
||||
--enable_warnings
|
||||
set session ob_trx_timeout=100000000000;
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
|
||||
--disable_query_log
|
||||
--let $count = 0
|
||||
while($count < 1000)
|
||||
{
|
||||
eval insert into ct1 values($count * 10, $count * 10, $count * 10, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 1, $count * 10 + 1, $count * 10 + 1, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 2, $count * 10 + 2, $count * 10 + 2, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 3, $count * 10 + 3, $count * 10 + 3, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 4, $count * 10 + 4, $count * 10 + 4, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 5, $count * 10 + 5, $count * 10 + 5, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 6, $count * 10 + 6, $count * 10 + 6, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 7, $count * 10 + 7, $count * 10 + 7, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 8, $count * 10 + 8, $count * 10 + 8, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 9, $count * 10 + 9, $count * 10 + 9, repeat(md5(rand()), 100), repeat(md5(rand()), 100));
|
||||
|
||||
--inc $count
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection default;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection conn1;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20;
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20 order by c1 desc;
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where c5 is null;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20 offset 5000;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20 offset 5000;
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where (c1 < 100 and c1 < 20 and c3 < 10) or ((c1 + c2) < 100 and c3 < 10 and (c1 + c2) >= 0);
|
||||
|
||||
# insert 1000 rows in minor
|
||||
--disable_query_log
|
||||
while($count < 1100)
|
||||
{
|
||||
eval insert into ct1 values($count * 10, $count * 10, $count * 10, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 1, $count * 10 + 1, $count * 10 + 1, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 2, $count * 10 + 2, $count * 10 + 2, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 3, $count * 10 + 3, $count * 10 + 3, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 4, $count * 10 + 4, $count * 10 + 4, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 5, $count * 10 + 5, $count * 10 + 5, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 6, $count * 10 + 6, $count * 10 + 6, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 7, $count * 10 + 7, $count * 10 + 7, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 8, $count * 10 + 8, $count * 10 + 8, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 9, $count * 10 + 9, $count * 10 + 9, repeat(md5(rand()), 100), repeat(md5(rand()), 100));
|
||||
|
||||
--inc $count
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
connection default;
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
# insert 1000 rows in memtable
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
while($count < 1200)
|
||||
{
|
||||
eval insert into ct1 values($count * 10, $count * 10, $count * 10, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 1, $count * 10 + 1, $count * 10 + 1, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 2, $count * 10 + 2, $count * 10 + 2, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 3, $count * 10 + 3, $count * 10 + 3, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 4, $count * 10 + 4, $count * 10 + 4, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 5, $count * 10 + 5, $count * 10 + 5, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 6, $count * 10 + 6, $count * 10 + 6, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 7, $count * 10 + 7, $count * 10 + 7, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 8, $count * 10 + 8, $count * 10 + 8, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 9, $count * 10 + 9, $count * 10 + 9, repeat(md5(rand()), 100), repeat(md5(rand()), 100));
|
||||
|
||||
--inc $count
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 limit 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 limit 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20;
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 1 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 < 10 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 > 10000 order by c1 desc limit 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 1 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 < 10 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c2 > 10000 order by c1 desc limit 10;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 and c2 < 20 order by c1 desc;
|
||||
select c1, c2, c3, length(c4) from ct1 where c1 + c2 <= 100 or c2 < 20 order by c1 desc;
|
||||
|
||||
select c1, c2, c3, length(c4) from ct1 where c5 is null;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 limit 20 offset 5000;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20;
|
||||
select c1, c2, c3, length(c4), length(c5) from ct1 order by c1 desc limit 20 offset 5000;
|
||||
|
||||
|
||||
drop table ct1;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,232 @@
|
||||
# owner: yuxiaozhe.yxz
|
||||
# owner group: storage
|
||||
# description: execute query which scan columnar store and row store
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn1;
|
||||
--disable_query_log
|
||||
alter system enable_table_without_all_cg = true;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
set @@recyclebin = off;
|
||||
--enable_query_log
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists ct1;
|
||||
--enable_warnings
|
||||
set session ob_trx_timeout=100000000000;
|
||||
# create table without all column group
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
|
||||
--disable_query_log
|
||||
--let $count = 0
|
||||
while($count < 1000)
|
||||
{
|
||||
eval insert into ct1 values($count * 10, $count * 10, $count * 10, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 1, $count * 10 + 1, $count * 10 + 1, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 2, $count * 10 + 2, $count * 10 + 2, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 3, $count * 10 + 3, $count * 10 + 3, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 4, $count * 10 + 4, $count * 10 + 4, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 5, $count * 10 + 5, $count * 10 + 5, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 6, $count * 10 + 6, $count * 10 + 6, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 7, $count * 10 + 7, $count * 10 + 7, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 8, $count * 10 + 8, $count * 10 + 8, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 9, $count * 10 + 9, $count * 10 + 9, repeat(md5(rand()), 100), repeat(md5(rand()), 100));
|
||||
|
||||
--inc $count
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
update ct1 set c3 = 0 where c1 = 0;
|
||||
update ct1 set c3 = 0 where c1 = 200;
|
||||
update ct1 set c3 = 0 where c1 = 1200;
|
||||
update ct1 set c3 = 0 where c1 = 5200;
|
||||
update ct1 set c3 = 0 where c1 = 8803;
|
||||
update ct1 set c3 = 0 where c1 = 9907;
|
||||
insert into ct1 values(10001, 0, 0, '', '');
|
||||
insert into ct1 values(20000, 0, 0, '', '');
|
||||
|
||||
select c1,c2 from ct1 where c2 <= 9;
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
|
||||
update ct1 set c3 = 0 where c1 < 1000;
|
||||
update ct1 set c3 = 0 where c1 < 2000 and c1 >= 1000;
|
||||
update ct1 set c3 = 0 where c1 < 3000 and c1 >= 2000;
|
||||
update ct1 set c3 = 0 where c1 < 4000 and c1 >= 3000;
|
||||
update ct1 set c3 = 0 where c1 < 5000 and c1 >= 4000;
|
||||
update ct1 set c3 = 0 where c1 < 6000 and c1 >= 5000;
|
||||
update ct1 set c3 = 0 where c1 < 7000 and c1 >= 6000;
|
||||
update ct1 set c3 = 0 where c1 < 8000 and c1 >= 7000;
|
||||
update ct1 set c3 = 0 where c1 < 9000 and c1 >= 8000;
|
||||
update ct1 set c3 = 0 where c1 < 10000 and c1 >= 9000;
|
||||
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
drop table ct1;
|
||||
alter system enable_table_without_all_cg = false;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system flush plan cache;
|
||||
|
||||
# create table with all column group
|
||||
create table ct1(c1 int primary key, c2 int, c3 number, c4 varchar(60000), c5 varchar(60000)) ROW_FORMAT = redundant COMPRESSION = 'none' with column group for all columns, each column;
|
||||
|
||||
--disable_query_log
|
||||
--let $count = 0
|
||||
while($count < 1000)
|
||||
{
|
||||
eval insert into ct1 values($count * 10, $count * 10, $count * 10, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 1, $count * 10 + 1, $count * 10 + 1, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 2, $count * 10 + 2, $count * 10 + 2, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 3, $count * 10 + 3, $count * 10 + 3, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 4, $count * 10 + 4, $count * 10 + 4, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 5, $count * 10 + 5, $count * 10 + 5, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 6, $count * 10 + 6, $count * 10 + 6, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 7, $count * 10 + 7, $count * 10 + 7, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 8, $count * 10 + 8, $count * 10 + 8, repeat(md5(rand()), 100), repeat(md5(rand()), 100)),
|
||||
($count * 10 + 9, $count * 10 + 9, $count * 10 + 9, repeat(md5(rand()), 100), repeat(md5(rand()), 100));
|
||||
|
||||
--inc $count
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
update ct1 set c3 = 0 where c1 = 0;
|
||||
update ct1 set c3 = 0 where c1 = 200;
|
||||
update ct1 set c3 = 0 where c1 = 1200;
|
||||
update ct1 set c3 = 0 where c1 = 5200;
|
||||
update ct1 set c3 = 0 where c1 = 8803;
|
||||
update ct1 set c3 = 0 where c1 = 9907;
|
||||
insert into ct1 values(10001, 0, 0, '', '');
|
||||
insert into ct1 values(20000, 0, 0, '', '');
|
||||
|
||||
select c1,c2 from ct1 where c2 <= 9;
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
|
||||
update ct1 set c3 = 0 where c1 < 1000;
|
||||
update ct1 set c3 = 0 where c1 < 2000 and c1 >= 1000;
|
||||
update ct1 set c3 = 0 where c1 < 3000 and c1 >= 2000;
|
||||
update ct1 set c3 = 0 where c1 < 4000 and c1 >= 3000;
|
||||
update ct1 set c3 = 0 where c1 < 5000 and c1 >= 4000;
|
||||
update ct1 set c3 = 0 where c1 < 6000 and c1 >= 5000;
|
||||
update ct1 set c3 = 0 where c1 < 7000 and c1 >= 6000;
|
||||
update ct1 set c3 = 0 where c1 < 8000 and c1 >= 7000;
|
||||
update ct1 set c3 = 0 where c1 < 9000 and c1 >= 8000;
|
||||
update ct1 set c3 = 0 where c1 < 10000 and c1 >= 9000;
|
||||
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = false;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 0;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000));
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000)) order by c1 desc;
|
||||
select c1,c2,c3 from ct1 where c2 <= 9 and ((c1 >= 0 and c1 <= 3000) or (c1 >= 4000 and c1 <= 8000) or (c1 >= 9000 and c1 <= 30000)) order by c1 desc;
|
||||
select count(*) from ct1;
|
||||
|
||||
drop table ct1;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
alter system enable_table_without_all_cg = false;
|
||||
alter system set _rowsets_enabled = true;
|
||||
alter system set _pushdown_storage_level = 4;
|
||||
alter system flush plan cache;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,60 @@
|
||||
#owner: fenggu.yh
|
||||
#owner group: storage
|
||||
#tags: column_group
|
||||
|
||||
connect (sys_conn,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection sys_conn;
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists tt1;
|
||||
drop table if exists tt2;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
create table tt1(a int, b int, c int, primary key(a)) with column group for all columns, each column;
|
||||
create index idx_tt1 on tt1(b);
|
||||
create table tt2(d int, e int);
|
||||
--error 1235
|
||||
alter table tt1 drop column c;
|
||||
--error 1235
|
||||
alter table tt1 modify column c varchar(20);
|
||||
|
||||
let $tt1_table_id= query_get_value(select table_id from __all_virtual_table where table_name='tt1', table_id, 1);
|
||||
let $tt2_table_id= query_get_value(select table_id from __all_virtual_table where table_name='tt2', table_id, 1);
|
||||
|
||||
## In tt1 table schema, there exists 5 column_group: __co_default, __co_all, __cg_a, __cg_b, __cg_c
|
||||
let $tt1_cg_cnt = query_get_value(select count(*) as cg_cnt from __all_column_group where table_id=$tt1_table_id, cg_cnt, 1);
|
||||
if ($tt1_cg_cnt != 5)
|
||||
{
|
||||
--echo unexpected column_group count of table tt1, real value is $tt1_cg_cnt
|
||||
}
|
||||
## tt1 default_type column_group will have none column_id mapping, cuz it has all_type & each_type column_group
|
||||
let $tt1_default_cg_id = query_get_value(select column_group_id from __all_column_group where table_id=$tt1_table_id and column_group_name='__co_default', column_group_id, 1);
|
||||
let $tt1_column_id_cnt = query_get_value(select count(*) as mapping_cnt from __all_column_group_mapping where table_id=$tt1_table_id and column_group_id=$tt1_default_cg_id, mapping_cnt, 1);
|
||||
if ($tt1_column_id_cnt != 0)
|
||||
{
|
||||
--echo unexpected column_group mapping count of table tt1, real value is $tt1_column_id_cnt;
|
||||
}
|
||||
|
||||
## In tt2 table schema, there exists only 1 column_group: __co_default
|
||||
let $tt2_cg_cnt = query_get_value(select count(*) as cg_cnt from __all_column_group where table_id=$tt2_table_id, cg_cnt, 1);
|
||||
if ($tt2_cg_cnt != 1)
|
||||
{
|
||||
--echo unexpected column_group count of table tt2, real value is $tt2_cg_cnt
|
||||
}
|
||||
## tt2 default_type column_group will have 3 column_id mapping, include d, e, pk_increment
|
||||
let $tt2_default_cg_id = query_get_value(select column_group_id from __all_column_group where table_id=$tt2_table_id and column_group_name='__co_default', column_group_id, 1);
|
||||
let $tt2_column_id_cnt = query_get_value(select count(*) as mapping_cnt from __all_column_group_mapping where table_id=$tt2_table_id and column_group_id=$tt2_default_cg_id, mapping_cnt, 1);
|
||||
if ($tt2_column_id_cnt != 3)
|
||||
{
|
||||
--echo unexpected column_group mapping count of table tt2, real value is $tt2_column_id_cnt
|
||||
}
|
||||
|
||||
drop table tt1;
|
||||
drop table tt2;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,94 @@
|
||||
# owner: lixia.yq
|
||||
# owner group: STORAGE
|
||||
# description:
|
||||
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
create table t1(a int, b varchar(3048), primary key (a)) with column group for all columns, each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) with column group for all columns, each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) with column group for all columns, each column;
|
||||
sleep 10;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 100)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 , repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 2, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 4, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 6, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 8, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 , repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 2, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 4, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 6, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 8, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 100)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 1, repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 3, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 5, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 7, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 9, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 1, repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 3, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 5, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 7, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 9, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
|
||||
alter table t3 add column c int;
|
||||
insert into t3 values(2, 1, 1);
|
||||
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t1;
|
||||
select * from t3;
|
||||
select c from t3;
|
||||
select count(c) from t3;
|
||||
|
||||
--let $count=8000
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count,512));
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
select count(*) from t1;
|
||||
select * from t3;
|
||||
select c from t3;
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,83 @@
|
||||
# owner: huronghui.hrh
|
||||
# owner group: STORAGE
|
||||
# description:
|
||||
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
create table t1(a int, b varchar(3048), primary key (a)) with column group for each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) with column group for each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) with column group for each column;
|
||||
sleep 10;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 100)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 , repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 2, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 4, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 6, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 8, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 , repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 2, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 4, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 6, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 8, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 100)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 1, repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 3, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 5, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 7, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 9, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 1, repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 3, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 5, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 7, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 9, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
|
||||
alter table t3 add column c int;
|
||||
insert into t3 values(2, 1, 1);
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,109 @@
|
||||
# owner: yht146439
|
||||
# owner group: storage
|
||||
# description: project with tile scanner
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
set @@recyclebin = off;
|
||||
|
||||
--disable_warnings
|
||||
set session ob_query_timeout=10000000000;
|
||||
drop table if exists ct1,ct2,ct3;
|
||||
--enable_warnings
|
||||
|
||||
--disable_query_log
|
||||
create table ct1 (c1 int, c2 int) with column group for all columns, each column;
|
||||
create table ct2(c1 int, c2 varchar(100), c3 varchar(1000)) block_size=2048 with column group for all columns, each column;
|
||||
create table ct3(c1 int primary key, c2 int, c3 int, c4 int) partition by hash(c1) partitions 2 with column group for all columns, each column;
|
||||
--let $count = 0
|
||||
while($count < 1000)
|
||||
{
|
||||
eval insert into ct1(c1,c2) values
|
||||
($count * 10 + 1 ,$count * 10 + 1 + 1),
|
||||
($count * 10 + 2 ,$count * 10 + 2 + 1),
|
||||
($count * 10 + 3 ,$count * 10 + 3 + 1),
|
||||
($count * 10 + 4 ,$count * 10 + 4 + 1),
|
||||
($count * 10 + 5 ,$count * 10 + 5 + 1),
|
||||
($count * 10 + 6 ,$count * 10 + 6 + 1),
|
||||
($count * 10 + 7 ,$count * 10 + 7 + 1),
|
||||
($count * 10 + 8 ,$count * 10 + 8 + 1),
|
||||
($count * 10 + 9 ,$count * 10 + 9 + 1),
|
||||
($count * 10 + 10,$count * 10 + 10+ 1);
|
||||
eval insert into ct2(c1,c2,c3) values
|
||||
($count * 10 + 1 ,repeat('a',($count * 10 + 1 ) % 100),repeat('a',($count * 10 + 1 ) % 1000)),
|
||||
($count * 10 + 2 ,repeat('a',($count * 10 + 2 ) % 100),repeat('a',($count * 10 + 2 ) % 1000)),
|
||||
($count * 10 + 3 ,repeat('a',($count * 10 + 3 ) % 100),repeat('a',($count * 10 + 3 ) % 1000)),
|
||||
($count * 10 + 4 ,repeat('a',($count * 10 + 4 ) % 100),repeat('a',($count * 10 + 4 ) % 1000)),
|
||||
($count * 10 + 5 ,repeat('a',($count * 10 + 5 ) % 100),repeat('a',($count * 10 + 5 ) % 1000)),
|
||||
($count * 10 + 6 ,repeat('a',($count * 10 + 6 ) % 100),repeat('a',($count * 10 + 6 ) % 1000)),
|
||||
($count * 10 + 7 ,repeat('a',($count * 10 + 7 ) % 100),repeat('a',($count * 10 + 7 ) % 1000)),
|
||||
($count * 10 + 8 ,repeat('a',($count * 10 + 8 ) % 100),repeat('a',($count * 10 + 8 ) % 1000)),
|
||||
($count * 10 + 9 ,repeat('a',($count * 10 + 9 ) % 100),repeat('a',($count * 10 + 9 ) % 1000)),
|
||||
($count * 10 + 10,repeat('a',($count * 10 + 10) % 100),repeat('a',($count * 10 + 10) % 1000));
|
||||
--inc $count
|
||||
}
|
||||
insert into ct3 select c1,c1,c1,c1 from ct1 limit 1000;
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
select * from ct1 where c1 > c2;
|
||||
select * from ct1 where c1 < c2 limit 100;
|
||||
select * from ct1 where c1 = c2;
|
||||
select * from ct1 where c1 - c2 > 1;
|
||||
select * from ct1 where c1 - c2 = -1 limit 100;
|
||||
select * from ct1 where c1 - c2 = -1 order by c1 desc limit 100;
|
||||
select * from ct1 where c1 + c2 < 20;
|
||||
select * from ct1 where c1 + c2 > 19980;
|
||||
select c1,c2 from ct1 where c1 + c2 < 1000;
|
||||
select c1,char_length(c2) from ct2 where c1 > 9900;
|
||||
select c1,char_length(c3) from ct2 where c1 > 9900;
|
||||
select c1,char_length(c2),char_length(c3) from ct2 where c1 > 9000;
|
||||
select max(c1) from ct2 where c2 < c3;
|
||||
select min(c1),char_length(c2),char_length(c3) from ct2;
|
||||
|
||||
select * from ct1 limit 1 offset 1000;
|
||||
select * from ct1 limit 100 offset 1000;
|
||||
select * from ct1 limit 255 offset 1000;
|
||||
select * from ct1 limit 256 offset 1000;
|
||||
select * from ct1 limit 257 offset 1000;
|
||||
select * from ct1 limit 100 offset 8190;
|
||||
select * from ct1 limit 100 offset 8191;
|
||||
select * from ct1 limit 100 offset 8192;
|
||||
select * from ct1 limit 100 offset 8193;
|
||||
select * from ct1 where c1 % 2 = 0 limit 100 offset 1000;
|
||||
select * from ct1 where c1 - c2 = -1 limit 1 offset 10;
|
||||
select * from ct1 where c1 - c2 = -1 limit 1 offset 100;
|
||||
select * from ct1 where c1 - c2 = -1 limit 1 offset 1000;
|
||||
select * from ct1 where c1 - c2 = -1 limit 1 offset 10000;
|
||||
|
||||
select * from ct1 where c1 - c2 = -1 limit 255 offset 1000;
|
||||
select * from ct1 where c1 - c2 = -1 limit 256 offset 1000;
|
||||
select * from ct1 where c1 - c2 = -1 limit 257 offset 1000;
|
||||
select * from ct1 where c1 - c2 = -1 limit 1000 offset 1000;
|
||||
|
||||
select * from ct1 where c1 + c2 > 19980 and rand() < 2;
|
||||
select * from ct1 where c1 + c2 > 19980 and rand() > 2;
|
||||
select * from ct1 where c1 > 9990 and rand() + rand() > 2;
|
||||
select * from ct1 where c1 > 9990 and rand() + rand() < 2;
|
||||
select c1,char_length(c2),char_length(c3) from ct2 where c1 > 9000 and rand() < 2;
|
||||
select c1,char_length(c2),char_length(c3) from ct2 where c1 > 9000 and rand() > 2;
|
||||
select c1 from ct2 where rand() > 2 or c1 < 10;
|
||||
select c1 from ct2 where rand() > 2 and c1 < 10;
|
||||
select c1 from ct2 where rand() > 2 or rand() > 10;
|
||||
|
||||
select count(*) from ct1,ct2 where ct2.c1 < ct1.c1 and ct1.c1 < 100;
|
||||
select sum(c1),sum(char_length(c2)),sum(char_length(c3)) from ct2;
|
||||
select/*+ parallel(2)*/ sum(c1),sum(char_length(c2)),sum(char_length(c3)) from ct2;
|
||||
|
||||
select c2 from ct3 order by c1 desc limit 2;
|
||||
select c2 from ct3 order by c1 desc limit 20;
|
||||
select c2 from ct3 order by c1 asc limit 2;
|
||||
select c2 from ct3 order by c1 asc limit 20;
|
||||
|
||||
drop table if exists ct1,ct2,ct3;
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,400 @@
|
||||
count(1)
|
||||
64
|
||||
alter system minor freeze;
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
70
|
||||
select a, b, e from t1 where c > 'ab' order by a;
|
||||
a b e
|
||||
4 4 NULL
|
||||
5 5 NULL
|
||||
6 6 NULL
|
||||
7 7 NULL
|
||||
8 8 NULL
|
||||
12 5 NULL
|
||||
13 6 NULL
|
||||
14 7 NULL
|
||||
15 8 NULL
|
||||
16 9 NULL
|
||||
27 5 NULL
|
||||
28 6 NULL
|
||||
29 7 NULL
|
||||
30 8 NULL
|
||||
31 9 NULL
|
||||
35 6 NULL
|
||||
36 7 NULL
|
||||
37 8 NULL
|
||||
38 9 NULL
|
||||
39 10 NULL
|
||||
58 5 NULL
|
||||
59 6 NULL
|
||||
60 7 NULL
|
||||
61 8 NULL
|
||||
62 9 NULL
|
||||
66 6 NULL
|
||||
67 7 NULL
|
||||
68 8 NULL
|
||||
69 9 NULL
|
||||
70 10 NULL
|
||||
74 6 NULL
|
||||
75 7 NULL
|
||||
76 8 NULL
|
||||
77 9 NULL
|
||||
78 10 NULL
|
||||
82 7 NULL
|
||||
83 8 NULL
|
||||
84 9 NULL
|
||||
85 10 NULL
|
||||
86 11 NULL
|
||||
118 100 NULL
|
||||
119 101 NULL
|
||||
120 102 NULL
|
||||
121 103 NULL
|
||||
122 104 NULL
|
||||
123 105 NULL
|
||||
select a, b, e from t1 where e > 10 order by a;
|
||||
a b e
|
||||
select a, b, e, def1, def2 from t1 where def1 > 10 order by a;
|
||||
a b e def1 def2
|
||||
select a, b, e, def1, def2 from t1 where def2 > 10 order by a;
|
||||
a b e def1 def2
|
||||
1 1 NULL 10 20
|
||||
2 2 NULL 10 20
|
||||
3 3 NULL 10 20
|
||||
4 4 NULL 10 20
|
||||
5 5 NULL 10 20
|
||||
6 6 NULL 10 20
|
||||
7 7 NULL 10 20
|
||||
8 8 NULL 10 20
|
||||
9 2 NULL 10 20
|
||||
10 3 NULL 10 20
|
||||
11 4 NULL 10 20
|
||||
12 5 NULL 10 20
|
||||
13 6 NULL 10 20
|
||||
14 7 NULL 10 20
|
||||
15 8 NULL 10 20
|
||||
16 9 NULL 10 20
|
||||
24 2 NULL 10 20
|
||||
25 3 NULL 10 20
|
||||
26 4 NULL 10 20
|
||||
27 5 NULL 10 20
|
||||
28 6 NULL 10 20
|
||||
29 7 NULL 10 20
|
||||
30 8 NULL 10 20
|
||||
31 9 NULL 10 20
|
||||
32 3 NULL 10 20
|
||||
33 4 NULL 10 20
|
||||
34 5 NULL 10 20
|
||||
35 6 NULL 10 20
|
||||
36 7 NULL 10 20
|
||||
37 8 NULL 10 20
|
||||
38 9 NULL 10 20
|
||||
39 10 NULL 10 20
|
||||
55 2 NULL 10 20
|
||||
56 3 NULL 10 20
|
||||
57 4 NULL 10 20
|
||||
58 5 NULL 10 20
|
||||
59 6 NULL 10 20
|
||||
60 7 NULL 10 20
|
||||
61 8 NULL 10 20
|
||||
62 9 NULL 10 20
|
||||
63 3 NULL 10 20
|
||||
64 4 NULL 10 20
|
||||
65 5 NULL 10 20
|
||||
66 6 NULL 10 20
|
||||
67 7 NULL 10 20
|
||||
68 8 NULL 10 20
|
||||
69 9 NULL 10 20
|
||||
70 10 NULL 10 20
|
||||
71 3 NULL 10 20
|
||||
72 4 NULL 10 20
|
||||
73 5 NULL 10 20
|
||||
74 6 NULL 10 20
|
||||
75 7 NULL 10 20
|
||||
76 8 NULL 10 20
|
||||
77 9 NULL 10 20
|
||||
78 10 NULL 10 20
|
||||
79 4 NULL 10 20
|
||||
80 5 NULL 10 20
|
||||
81 6 NULL 10 20
|
||||
82 7 NULL 10 20
|
||||
83 8 NULL 10 20
|
||||
84 9 NULL 10 20
|
||||
85 10 NULL 10 20
|
||||
86 11 NULL 10 20
|
||||
118 100 NULL 10 20
|
||||
119 101 NULL 10 20
|
||||
120 102 NULL 10 20
|
||||
121 103 NULL 10 20
|
||||
122 104 NULL 10 20
|
||||
123 105 NULL 10 20
|
||||
select a, b, e, def1, def2 from t1 where def2 < def1 order by a;
|
||||
a b e def1 def2
|
||||
select a, b, e, def1, def2 from t1 where def2 > def1 order by a;
|
||||
a b e def1 def2
|
||||
1 1 NULL 10 20
|
||||
2 2 NULL 10 20
|
||||
3 3 NULL 10 20
|
||||
4 4 NULL 10 20
|
||||
5 5 NULL 10 20
|
||||
6 6 NULL 10 20
|
||||
7 7 NULL 10 20
|
||||
8 8 NULL 10 20
|
||||
9 2 NULL 10 20
|
||||
10 3 NULL 10 20
|
||||
11 4 NULL 10 20
|
||||
12 5 NULL 10 20
|
||||
13 6 NULL 10 20
|
||||
14 7 NULL 10 20
|
||||
15 8 NULL 10 20
|
||||
16 9 NULL 10 20
|
||||
24 2 NULL 10 20
|
||||
25 3 NULL 10 20
|
||||
26 4 NULL 10 20
|
||||
27 5 NULL 10 20
|
||||
28 6 NULL 10 20
|
||||
29 7 NULL 10 20
|
||||
30 8 NULL 10 20
|
||||
31 9 NULL 10 20
|
||||
32 3 NULL 10 20
|
||||
33 4 NULL 10 20
|
||||
34 5 NULL 10 20
|
||||
35 6 NULL 10 20
|
||||
36 7 NULL 10 20
|
||||
37 8 NULL 10 20
|
||||
38 9 NULL 10 20
|
||||
39 10 NULL 10 20
|
||||
55 2 NULL 10 20
|
||||
56 3 NULL 10 20
|
||||
57 4 NULL 10 20
|
||||
58 5 NULL 10 20
|
||||
59 6 NULL 10 20
|
||||
60 7 NULL 10 20
|
||||
61 8 NULL 10 20
|
||||
62 9 NULL 10 20
|
||||
63 3 NULL 10 20
|
||||
64 4 NULL 10 20
|
||||
65 5 NULL 10 20
|
||||
66 6 NULL 10 20
|
||||
67 7 NULL 10 20
|
||||
68 8 NULL 10 20
|
||||
69 9 NULL 10 20
|
||||
70 10 NULL 10 20
|
||||
71 3 NULL 10 20
|
||||
72 4 NULL 10 20
|
||||
73 5 NULL 10 20
|
||||
74 6 NULL 10 20
|
||||
75 7 NULL 10 20
|
||||
76 8 NULL 10 20
|
||||
77 9 NULL 10 20
|
||||
78 10 NULL 10 20
|
||||
79 4 NULL 10 20
|
||||
80 5 NULL 10 20
|
||||
81 6 NULL 10 20
|
||||
82 7 NULL 10 20
|
||||
83 8 NULL 10 20
|
||||
84 9 NULL 10 20
|
||||
85 10 NULL 10 20
|
||||
86 11 NULL 10 20
|
||||
118 100 NULL 10 20
|
||||
119 101 NULL 10 20
|
||||
120 102 NULL 10 20
|
||||
121 103 NULL 10 20
|
||||
122 104 NULL 10 20
|
||||
123 105 NULL 10 20
|
||||
alter table t1 add column f int generated always as (b*2) virtual;
|
||||
select a, e, f from t1 where c > 'ab' order by a;
|
||||
a e f
|
||||
4 NULL 8
|
||||
5 NULL 10
|
||||
6 NULL 12
|
||||
7 NULL 14
|
||||
8 NULL 16
|
||||
12 NULL 10
|
||||
13 NULL 12
|
||||
14 NULL 14
|
||||
15 NULL 16
|
||||
16 NULL 18
|
||||
27 NULL 10
|
||||
28 NULL 12
|
||||
29 NULL 14
|
||||
30 NULL 16
|
||||
31 NULL 18
|
||||
35 NULL 12
|
||||
36 NULL 14
|
||||
37 NULL 16
|
||||
38 NULL 18
|
||||
39 NULL 20
|
||||
58 NULL 10
|
||||
59 NULL 12
|
||||
60 NULL 14
|
||||
61 NULL 16
|
||||
62 NULL 18
|
||||
66 NULL 12
|
||||
67 NULL 14
|
||||
68 NULL 16
|
||||
69 NULL 18
|
||||
70 NULL 20
|
||||
74 NULL 12
|
||||
75 NULL 14
|
||||
76 NULL 16
|
||||
77 NULL 18
|
||||
78 NULL 20
|
||||
82 NULL 14
|
||||
83 NULL 16
|
||||
84 NULL 18
|
||||
85 NULL 20
|
||||
86 NULL 22
|
||||
118 NULL 200
|
||||
119 NULL 202
|
||||
120 NULL 204
|
||||
121 NULL 206
|
||||
122 NULL 208
|
||||
123 NULL 210
|
||||
alter system major freeze tenant all;
|
||||
alter table t1 add column g int;
|
||||
select a, b, e from t1 where c > 'ab' order by a;
|
||||
a b e
|
||||
4 4 NULL
|
||||
5 5 NULL
|
||||
6 6 NULL
|
||||
7 7 NULL
|
||||
8 8 NULL
|
||||
12 5 NULL
|
||||
13 6 NULL
|
||||
14 7 NULL
|
||||
15 8 NULL
|
||||
16 9 NULL
|
||||
27 5 NULL
|
||||
28 6 NULL
|
||||
29 7 NULL
|
||||
30 8 NULL
|
||||
31 9 NULL
|
||||
35 6 NULL
|
||||
36 7 NULL
|
||||
37 8 NULL
|
||||
38 9 NULL
|
||||
39 10 NULL
|
||||
58 5 NULL
|
||||
59 6 NULL
|
||||
60 7 NULL
|
||||
61 8 NULL
|
||||
62 9 NULL
|
||||
66 6 NULL
|
||||
67 7 NULL
|
||||
68 8 NULL
|
||||
69 9 NULL
|
||||
70 10 NULL
|
||||
74 6 NULL
|
||||
75 7 NULL
|
||||
76 8 NULL
|
||||
77 9 NULL
|
||||
78 10 NULL
|
||||
82 7 NULL
|
||||
83 8 NULL
|
||||
84 9 NULL
|
||||
85 10 NULL
|
||||
86 11 NULL
|
||||
118 100 NULL
|
||||
119 101 NULL
|
||||
120 102 NULL
|
||||
121 103 NULL
|
||||
122 104 NULL
|
||||
123 105 NULL
|
||||
select a, b, f from t1 where c > 'ab' order by a;
|
||||
a b f
|
||||
4 4 8
|
||||
5 5 10
|
||||
6 6 12
|
||||
7 7 14
|
||||
8 8 16
|
||||
12 5 10
|
||||
13 6 12
|
||||
14 7 14
|
||||
15 8 16
|
||||
16 9 18
|
||||
27 5 10
|
||||
28 6 12
|
||||
29 7 14
|
||||
30 8 16
|
||||
31 9 18
|
||||
35 6 12
|
||||
36 7 14
|
||||
37 8 16
|
||||
38 9 18
|
||||
39 10 20
|
||||
58 5 10
|
||||
59 6 12
|
||||
60 7 14
|
||||
61 8 16
|
||||
62 9 18
|
||||
66 6 12
|
||||
67 7 14
|
||||
68 8 16
|
||||
69 9 18
|
||||
70 10 20
|
||||
74 6 12
|
||||
75 7 14
|
||||
76 8 16
|
||||
77 9 18
|
||||
78 10 20
|
||||
82 7 14
|
||||
83 8 16
|
||||
84 9 18
|
||||
85 10 20
|
||||
86 11 22
|
||||
118 100 200
|
||||
119 101 202
|
||||
120 102 204
|
||||
121 103 206
|
||||
122 104 208
|
||||
123 105 210
|
||||
select a, b, g from t1 where c > 'ab' order by a;
|
||||
a b g
|
||||
4 4 NULL
|
||||
5 5 NULL
|
||||
6 6 NULL
|
||||
7 7 NULL
|
||||
8 8 NULL
|
||||
12 5 NULL
|
||||
13 6 NULL
|
||||
14 7 NULL
|
||||
15 8 NULL
|
||||
16 9 NULL
|
||||
27 5 NULL
|
||||
28 6 NULL
|
||||
29 7 NULL
|
||||
30 8 NULL
|
||||
31 9 NULL
|
||||
35 6 NULL
|
||||
36 7 NULL
|
||||
37 8 NULL
|
||||
38 9 NULL
|
||||
39 10 NULL
|
||||
58 5 NULL
|
||||
59 6 NULL
|
||||
60 7 NULL
|
||||
61 8 NULL
|
||||
62 9 NULL
|
||||
66 6 NULL
|
||||
67 7 NULL
|
||||
68 8 NULL
|
||||
69 9 NULL
|
||||
70 10 NULL
|
||||
74 6 NULL
|
||||
75 7 NULL
|
||||
76 8 NULL
|
||||
77 9 NULL
|
||||
78 10 NULL
|
||||
82 7 NULL
|
||||
83 8 NULL
|
||||
84 9 NULL
|
||||
85 10 NULL
|
||||
86 11 NULL
|
||||
118 100 NULL
|
||||
119 101 NULL
|
||||
120 102 NULL
|
||||
121 103 NULL
|
||||
122 104 NULL
|
||||
123 105 NULL
|
||||
drop table t1;
|
||||
@ -0,0 +1,450 @@
|
||||
count(1)
|
||||
256
|
||||
alter system major freeze tenant all;
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
261
|
||||
insert into t2 values (700,576);
|
||||
select * from t2 where a = 700 or a <= 601;
|
||||
a b
|
||||
39 845
|
||||
280 748
|
||||
520 693
|
||||
531 834
|
||||
548 17
|
||||
575 81
|
||||
576 711
|
||||
597 756
|
||||
700 576
|
||||
select * from t2 where a = 800 or a <= 601;
|
||||
a b
|
||||
39 845
|
||||
280 748
|
||||
520 693
|
||||
531 834
|
||||
548 17
|
||||
575 81
|
||||
576 711
|
||||
597 756
|
||||
alter system set _rowsets_enabled = true tenant = 'mysql';
|
||||
alter system flush plan cache global;
|
||||
delete from t3 where a = 2;
|
||||
insert into t3 (a, b, c, d) values(31, 1, "a", repeat('a', 1000));
|
||||
create table t4(a int) row_format = compressed with column group for all columns, each column;
|
||||
insert into t4 values (-1), (0);
|
||||
explain select /*+ LEADING(t4,t3) USE_NL(t3,t4) NO_USE_NL_MATERIALIZATION(t3) */ t3.a from t4,t3 where (t3.a >= t4.a + 31 and t3.a <= t4.a + 35) or (t3.a >= t4.a + 1 and t3.a <= t4.a + 5) order by t3.a;
|
||||
Query Plan
|
||||
================================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------
|
||||
|0 |SORT | |13 |36 |
|
||||
|1 |└─NESTED-LOOP JOIN | |13 |35 |
|
||||
|2 | ├─COLUMN TABLE FULL SCAN |t4 |2 |3 |
|
||||
|3 | └─DISTRIBUTED TABLE RANGE SCAN|t3 |3 |16 |
|
||||
================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t3.a]), filter(nil), rowset=16
|
||||
sort_keys([t3.a, ASC])
|
||||
1 - output([t3.a]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t4.a(:0)]), use_batch=true
|
||||
2 - output([t4.a]), filter(nil), rowset=16
|
||||
access([t4.a]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t4.__pk_increment]), range(MIN ; MAX)always true
|
||||
3 - output([t3.a]), filter(nil), rowset=16
|
||||
access([GROUP_ID], [t3.a]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.a]), range(MIN ; MAX),
|
||||
range_cond([t3.a >= :0 + 31 AND t3.a <= :0 + 35 OR t3.a >= :0 + 1 AND t3.a <= :0 + 5])
|
||||
select /*+ LEADING(t4,t3) USE_NL(t3,t4) NO_USE_NL_MATERIALIZATION(t3) */ t3.a from t4,t3 where (t3.a >= t4.a + 31 and t3.a <= t4.a + 35) or (t3.a >= t4.a + 1 and t3.a <= t4.a + 5) order by t3.a;
|
||||
a
|
||||
1
|
||||
1
|
||||
3
|
||||
3
|
||||
4
|
||||
4
|
||||
5
|
||||
30
|
||||
31
|
||||
31
|
||||
alter system set _rowsets_enabled = false tenant = 'mysql';
|
||||
alter system flush plan cache global;
|
||||
alter system minor freeze tenant = all;
|
||||
insert into t1 (b, c, d) values(9, "ab c", repeat('ab ', 300));
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
262
|
||||
select count(1) from t1 where b = 1;
|
||||
count(1)
|
||||
1
|
||||
select count(1) from t1 where b != 2;
|
||||
count(1)
|
||||
256
|
||||
select count(1) from t1 where b between 1 and 5;
|
||||
count(1)
|
||||
80
|
||||
select count(1) from t1 where b > 4 and a > 0;
|
||||
count(1)
|
||||
213
|
||||
select b, c from t1 where b = 9;
|
||||
b c
|
||||
9 abcde
|
||||
9 abcde
|
||||
9 abcd
|
||||
9 abcde
|
||||
9 abcd
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abcde
|
||||
9 abcd
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abc
|
||||
9 ab c
|
||||
9 abcde
|
||||
9 abcd
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abc
|
||||
9 ab c
|
||||
9 abcd
|
||||
9 abc
|
||||
9 abc
|
||||
9 ab c
|
||||
9 abc
|
||||
9 ab c
|
||||
9 ab c
|
||||
9 abcd
|
||||
9 ab
|
||||
9 ab
|
||||
9 ab
|
||||
9 ab
|
||||
9 ab
|
||||
9 ab c
|
||||
select 1 as rnd1 from t1 where rand() > 2;
|
||||
rnd1
|
||||
select a, b from t1 where rand() < 2 order by a desc limit 10;
|
||||
a b
|
||||
505 9
|
||||
504 9
|
||||
503 9
|
||||
502 9
|
||||
501 9
|
||||
500 9
|
||||
372 13
|
||||
371 12
|
||||
370 11
|
||||
369 10
|
||||
select count(1) from t1 where c < "ab ";
|
||||
count(1)
|
||||
32
|
||||
select count(1) from t1 where c = "ab ";
|
||||
count(1)
|
||||
69
|
||||
select count(1) from t1 where c > "ab ";
|
||||
count(1)
|
||||
161
|
||||
select count(1) from t1 where c > "ab a";
|
||||
count(1)
|
||||
161
|
||||
select count(1) from t1 where c IN ("ab c", "abc");
|
||||
count(1)
|
||||
65
|
||||
select count(1) from t1 where c between "abaaa" and "abccc";
|
||||
count(1)
|
||||
32
|
||||
select count(1) from t1 where b = 2 and c < "ab ";
|
||||
count(1)
|
||||
5
|
||||
select count(1) from t1 where b != 2 and c = "ab ";
|
||||
count(1)
|
||||
68
|
||||
select count(1) from t1 where b > 4 and c > "ab ";
|
||||
count(1)
|
||||
160
|
||||
select count(1) from t1 where b between 1 and 5 and c > "ab a";
|
||||
count(1)
|
||||
7
|
||||
select count(1) from t1 where b = 9 and c IN ("ab c", "abc");
|
||||
count(1)
|
||||
16
|
||||
select count(1) from t1 where b * 2 > 10 and c between "abaaa" and "abccc";
|
||||
count(1)
|
||||
32
|
||||
select count(1) from t1 where d between "abaaa" and "abccc";
|
||||
count(1)
|
||||
133
|
||||
select count(1) from t1 where a > 10 or c between "abaaa" and "abccc";
|
||||
count(1)
|
||||
253
|
||||
select count(1) from t1 where a < 30 and b > 4 and c > "ab ";
|
||||
count(1)
|
||||
12
|
||||
select count(1) from t1 where b != 9 and c > "ab " order by b desc;
|
||||
count(1)
|
||||
129
|
||||
select count(1) from t1 where b != 2 and c = "ab " order by c desc;
|
||||
count(1)
|
||||
68
|
||||
select count(1) from t1 where b between 1 and 5 and c > "ab a" order by c desc;
|
||||
count(1)
|
||||
7
|
||||
select count(1) from t1 where a < 100 and b * 2 > 10 and c between "abaaa" and "abccc" order by a;
|
||||
count(1)
|
||||
8
|
||||
select count(1) from t1 where d between "abaaa" and "abccc" order by a desc;
|
||||
count(1)
|
||||
133
|
||||
select count(1) from t1 where b = 9 order by a desc;
|
||||
count(1)
|
||||
37
|
||||
select a, b, c from t1 where c > "ab a" and b < 8 order by a;
|
||||
a b c
|
||||
4 4 abcd
|
||||
5 5 ab c
|
||||
6 6 abc
|
||||
7 7 abcd
|
||||
12 5 abcd
|
||||
13 6 ab c
|
||||
14 7 abc
|
||||
27 5 abcd
|
||||
28 6 ab c
|
||||
29 7 abc
|
||||
35 6 abcd
|
||||
36 7 ab c
|
||||
58 5 abcd
|
||||
59 6 ab c
|
||||
60 7 abc
|
||||
66 6 abcd
|
||||
67 7 ab c
|
||||
74 6 abcd
|
||||
75 7 ab c
|
||||
82 7 abcd
|
||||
121 5 abcd
|
||||
122 6 ab c
|
||||
123 7 abc
|
||||
129 6 abcd
|
||||
130 7 ab c
|
||||
137 6 abcd
|
||||
138 7 ab c
|
||||
145 7 abcd
|
||||
153 6 abcd
|
||||
154 7 ab c
|
||||
161 7 abcd
|
||||
169 7 abcd
|
||||
248 5 abcd
|
||||
249 6 ab c
|
||||
250 7 abc
|
||||
256 6 abcd
|
||||
257 7 ab c
|
||||
264 6 abcd
|
||||
265 7 ab c
|
||||
272 7 abcd
|
||||
280 6 abcd
|
||||
281 7 ab c
|
||||
288 7 abcd
|
||||
296 7 abcd
|
||||
312 6 abcd
|
||||
313 7 ab c
|
||||
320 7 abcd
|
||||
328 7 abcd
|
||||
344 7 abcd
|
||||
select a, b, c from t1 where c > "ab a" and b > 8 order by a desc;
|
||||
a b c
|
||||
505 9 ab c
|
||||
372 13 abcde
|
||||
371 12 abcd
|
||||
370 11 abc
|
||||
369 10 ab c
|
||||
368 9 abcd
|
||||
364 12 abcde
|
||||
363 11 abcd
|
||||
362 10 abc
|
||||
361 9 ab c
|
||||
356 12 abcde
|
||||
355 11 abcd
|
||||
354 10 abc
|
||||
353 9 ab c
|
||||
348 11 abcde
|
||||
347 10 abcd
|
||||
346 9 abc
|
||||
340 12 abcde
|
||||
339 11 abcd
|
||||
338 10 abc
|
||||
337 9 ab c
|
||||
332 11 abcde
|
||||
331 10 abcd
|
||||
330 9 abc
|
||||
324 11 abcde
|
||||
323 10 abcd
|
||||
322 9 abc
|
||||
316 10 abcde
|
||||
315 9 abcd
|
||||
308 12 abcde
|
||||
307 11 abcd
|
||||
306 10 abc
|
||||
305 9 ab c
|
||||
300 11 abcde
|
||||
299 10 abcd
|
||||
298 9 abc
|
||||
292 11 abcde
|
||||
291 10 abcd
|
||||
290 9 abc
|
||||
284 10 abcde
|
||||
283 9 abcd
|
||||
276 11 abcde
|
||||
275 10 abcd
|
||||
274 9 abc
|
||||
268 10 abcde
|
||||
267 9 abcd
|
||||
260 10 abcde
|
||||
259 9 abcd
|
||||
252 9 abcde
|
||||
181 12 abcde
|
||||
180 11 abcd
|
||||
179 10 abc
|
||||
178 9 ab c
|
||||
173 11 abcde
|
||||
172 10 abcd
|
||||
171 9 abc
|
||||
165 11 abcde
|
||||
164 10 abcd
|
||||
163 9 abc
|
||||
157 10 abcde
|
||||
156 9 abcd
|
||||
149 11 abcde
|
||||
148 10 abcd
|
||||
147 9 abc
|
||||
141 10 abcde
|
||||
140 9 abcd
|
||||
133 10 abcde
|
||||
132 9 abcd
|
||||
125 9 abcde
|
||||
86 11 abcde
|
||||
85 10 abcd
|
||||
84 9 abc
|
||||
78 10 abcde
|
||||
77 9 abcd
|
||||
70 10 abcde
|
||||
69 9 abcd
|
||||
62 9 abcde
|
||||
39 10 abcde
|
||||
38 9 abcd
|
||||
31 9 abcde
|
||||
16 9 abcde
|
||||
select count(1) from t1 where UPPER(c) < "AB";
|
||||
count(1)
|
||||
32
|
||||
select count(1) from t1 where STRCMP(c, d) > 0;
|
||||
count(1)
|
||||
97
|
||||
select count(1) from t1 where STRCMP(c, d) < 0;
|
||||
count(1)
|
||||
165
|
||||
select count(1) from t1 where a = b;
|
||||
count(1)
|
||||
8
|
||||
select count(1) from t1 where a + b < 20;
|
||||
count(1)
|
||||
13
|
||||
select count(1) from t1 where b * 2 > a;
|
||||
count(1)
|
||||
10
|
||||
select a, b, c, d from t1 where STRCMP(c, d) > 0 and b < 10 order by a;
|
||||
a b c d
|
||||
4 4 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
5 5 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
7 7 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
12 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
13 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
15 8 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
27 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
28 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
30 8 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
35 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
36 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
38 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
58 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
59 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
61 8 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
66 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
67 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
69 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
74 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
75 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
77 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
82 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
83 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
121 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
122 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
124 8 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
129 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
130 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
132 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
137 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
138 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
140 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
145 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
146 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
153 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
154 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
156 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
161 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
162 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
169 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
170 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
177 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
178 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
248 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
249 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
251 8 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
256 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
257 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
259 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
264 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
265 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
267 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
272 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
273 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
280 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
281 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
283 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
288 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
289 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
296 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
297 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
304 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
305 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
312 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
313 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
315 9 abcd abbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbbabbb
|
||||
320 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
321 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
328 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
329 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
336 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
337 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
344 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
345 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
352 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
353 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
360 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
361 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
368 9 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
505 9 ab c ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
alter system set _rowsets_enabled = true tenant = 'mysql';
|
||||
@ -0,0 +1,11 @@
|
||||
count(1)
|
||||
300
|
||||
count(*)
|
||||
100
|
||||
count(*)
|
||||
90
|
||||
count(*)
|
||||
10
|
||||
a e f cnt
|
||||
alter system major freeze tenant all;
|
||||
drop table t_black;
|
||||
@ -0,0 +1,40 @@
|
||||
create table t1(a int, b varchar(3048), primary key (a)) row_format = compressed with column group for all columns, each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) row_format = compressed with column group for all columns, each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) row_format = compressed with column group for all columns, each column;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
2501
|
||||
alter system major freeze;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
3001
|
||||
select * from t3;
|
||||
a b c
|
||||
1 1 NULL
|
||||
2 1 1
|
||||
select c from t3;
|
||||
c
|
||||
NULL
|
||||
1
|
||||
select count(c) from t3;
|
||||
count(c)
|
||||
1
|
||||
INSERT INTO t1 VALUES(12000, repeat(12000,512));
|
||||
alter system major freeze;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
3002
|
||||
select * from t3;
|
||||
a b c
|
||||
1 1 NULL
|
||||
2 1 1
|
||||
select c from t3;
|
||||
c
|
||||
NULL
|
||||
1
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
@ -0,0 +1,414 @@
|
||||
create table nn1(c1 int, c2 int, c3 varchar(10));
|
||||
create table nn2 (c1 int primary key, c2 int unique, c3 int);
|
||||
explain select (select count(x.c2) from nn1 a) as x from nn1 x;
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |SUBPLAN FILTER | |1 |5 |
|
||||
|1 |├─SCALAR GROUP BY | |1 |3 |
|
||||
|2 |│ └─TABLE FULL SCAN|x |1 |3 |
|
||||
|3 |└─TABLE FULL SCAN |a |1 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([subquery(1)]), filter(nil), rowset=16
|
||||
exec_params_([T_FUN_COUNT_SUM(T_FUN_COUNT(x.c2))(:0)]), onetime_exprs_(nil), init_plan_idxs_(nil), use_batch=false
|
||||
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(x.c2))]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(x.c2))])
|
||||
2 - output([T_FUN_COUNT(x.c2)]), filter(nil), rowset=16
|
||||
access([x.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([x.__pk_increment]), range(MIN ; MAX)always true,
|
||||
pushdown_aggregation([T_FUN_COUNT(x.c2)])
|
||||
3 - output([:0]), filter(nil), rowset=16
|
||||
access(nil), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([a.__pk_increment]), range(MIN ; MAX)always true
|
||||
explain select count(distinct c1,c3) from nn2;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|nn2 |1 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(nn2.c1, nn2.c3)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(nn2.c1, nn2.c3)])
|
||||
1 - output([nn2.c1], [nn2.c3]), filter(nil), rowset=16
|
||||
access([nn2.c1], [nn2.c3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([nn2.c1]), range(MIN ; MAX)always true
|
||||
create table t1 (libname varchar(21), city varchar(256), primary key (libname));
|
||||
insert into t1 values ('test1','city1'),('test2','city2');
|
||||
insert into t1 values ('l', null);
|
||||
replace into t1 values ('2', null);
|
||||
replace into t1 values ('test3','city3'),('test4','city4');
|
||||
create table t2(a int, b varchar(26), c date);
|
||||
insert into t2 values(0, 'a', '2021-04-08');
|
||||
insert into t2 values(null, null, null);
|
||||
insert into t2 values(1, null, null);
|
||||
explain select count(*);
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |SCALAR GROUP BY| |1 |1 |
|
||||
|1 |└─EXPRESSION | |1 |1 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
1 - output([1]), filter(nil)
|
||||
values({1})
|
||||
select count(*);
|
||||
count(*)
|
||||
1
|
||||
explain select count(*) from dual;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |SCALAR GROUP BY| |1 |1 |
|
||||
|1 |└─EXPRESSION | |1 |1 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
1 - output([1]), filter(nil)
|
||||
values({1})
|
||||
select count(*) from dual;
|
||||
count(*)
|
||||
1
|
||||
explain select count(*) from t1;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t1 |6 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
|
||||
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
|
||||
access(nil), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.libname]), range(MIN ; MAX)always true,
|
||||
pushdown_aggregation([T_FUN_COUNT(*)])
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
6
|
||||
explain select count(city) from t1;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t1 |6 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.city))]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.city))])
|
||||
1 - output([T_FUN_COUNT(t1.city)]), filter(nil), rowset=16
|
||||
access([t1.city]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.libname]), range(MIN ; MAX)always true,
|
||||
pushdown_aggregation([T_FUN_COUNT(t1.city)])
|
||||
select count(city) from t1;
|
||||
count(city)
|
||||
4
|
||||
select count(null) from t1;
|
||||
count(null)
|
||||
0
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
6
|
||||
select count(a),count(b),count(c),count(*) from t2;
|
||||
count(a) count(b) count(c) count(*)
|
||||
2 1 1 3
|
||||
select count(1),count(a),count(b),count(c),count(*) from t2 where a > 0;
|
||||
count(1) count(a) count(b) count(c) count(*)
|
||||
1 1 0 0 1
|
||||
create table t3(a int, b int);
|
||||
explain select count(distinct a) from t3;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t3 |1 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(distinct t3.a)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(distinct t3.a)])
|
||||
1 - output([t3.a]), filter(nil), rowset=16
|
||||
access([t3.a]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
|
||||
explain select count(distinct a,b) from t3;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t3 |1 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(distinct t3.a, t3.b)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(distinct t3.a, t3.b)])
|
||||
1 - output([t3.a], [t3.b]), filter(nil), rowset=16
|
||||
access([t3.a], [t3.b]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
|
||||
explain select count(a + b) from t3;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t3 |1 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(t3.a + t3.b)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(t3.a + t3.b)])
|
||||
1 - output([t3.a], [t3.b]), filter(nil), rowset=16
|
||||
access([t3.a], [t3.b]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
|
||||
explain select a,count(b) from t3 group by a;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |HASH GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t3 |1 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t3.a], [T_FUN_COUNT(t3.b)]), filter(nil), rowset=16
|
||||
group([t3.a]), agg_func([T_FUN_COUNT(t3.b)])
|
||||
1 - output([t3.a], [t3.b]), filter(nil), rowset=16
|
||||
access([t3.a], [t3.b]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
|
||||
explain select count(*) from t3 for update;
|
||||
Query Plan
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |MATERIAL | |1 |3 |
|
||||
|1 |└─SCALAR GROUP BY | |1 |3 |
|
||||
|2 | └─FOR UPDATE | |1 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t3 |1 |3 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
|
||||
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
2 - output(nil), filter(nil), rowset=16
|
||||
lock tables(t3)
|
||||
3 - output([t3.__pk_increment]), filter(nil), rowset=16
|
||||
access([t3.__pk_increment]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
|
||||
create table t4 (a bigint auto_increment primary key, b bigint, c char(100), d varchar(100), e bigint not null) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t4 (a, b, c, d, e) values(1, 9, "a", repeat('a', 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(2, 2, "ab", repeat("ab", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(3, 5, "abcd", repeat("ab", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(4, 7, NULL, repeat("abcd", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(5, NULL, "ab c ", repeat("a", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(6, 9, NULL, repeat("abbb", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(7, 1, "abc ", repeat("abcd", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(8, 3, "abcde", NULL,1);
|
||||
insert into t4 (a, b, c, d, e) values(9, 100, "abd", repeat("abc", 10),1);
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 6, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 5, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 4, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 3, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 2, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) select a * 10 + 1, b + 1, c, d, e from t4;
|
||||
insert into t4 (a, b, c, d, e) values(123456, 100, "abd", repeat("abc", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(10000, 0, "ab c", repeat('ab ', 10),1);
|
||||
alter system minor freeze tenant = all;
|
||||
select count(1),count(*) from t4;
|
||||
count(1) count(*)
|
||||
578 578
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
578 578 578 514 450 514
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
510 510 510 510 383 446
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
0 0 0 0 0 0
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
1 1 1 1 1 1
|
||||
create table t_default_value(pk int primary key, a char(5));
|
||||
insert into t_default_value values(1,'a');
|
||||
alter system major freeze tenant = all;
|
||||
select count(1),count(*) from t4;
|
||||
count(1) count(*)
|
||||
578 578
|
||||
select count(*) from t4 where b < 1;
|
||||
count(*)
|
||||
1
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
578 578 578 514 450 514
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
510 510 510 510 383 446
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
0 0 0 0 0 0
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
1 1 1 1 1 1
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 46912;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
139 139 139 117 110 117
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a/2 > 23456;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
139 139 139 117 110 117
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > b;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
502 502 502 502 376 438
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a - b > 0;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
502 502 502 502 376 438
|
||||
insert into t4 (a, b, c, d, e) values(10001, 0, "ab c", repeat('ab ', 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(null, null, null, null,1);
|
||||
select count(1),count(*) from t4;
|
||||
count(1) count(*)
|
||||
580 580
|
||||
select count(*),count(1),count(a),count(b),count(c),count(d) from t4;
|
||||
count(*) count(1) count(a) count(b) count(c) count(d)
|
||||
580 580 580 515 451 515
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
511 511 511 511 384 447
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
0 0 0 0 0 0
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
1 1 1 1 1 1
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a is null;
|
||||
count(1) count(*) count(a) count(b) count(c) count(d)
|
||||
0 0 0 0 0 0
|
||||
select count(1),count(*),count(e) from t4;
|
||||
count(1) count(*) count(e)
|
||||
580 580 580
|
||||
explain select a,b,c,d,count(a),count(b),count(c),count(d) from t4;
|
||||
Query Plan
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
--------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |65 |
|
||||
|1 |└─COLUMN TABLE FULL SCAN|t4 |580 |27 |
|
||||
========================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t4.a], [t4.b], [t4.c], [t4.d], [T_FUN_COUNT(t4.a)], [T_FUN_COUNT(t4.b)], [T_FUN_COUNT(t4.c)], [T_FUN_COUNT(t4.d)]), filter(nil), rowset=256
|
||||
group(nil), agg_func([T_FUN_COUNT(t4.a)], [T_FUN_COUNT(t4.b)], [T_FUN_COUNT(t4.c)], [T_FUN_COUNT(t4.d)])
|
||||
1 - output([t4.a], [t4.b], [t4.c], [t4.d]), filter(nil), rowset=256
|
||||
access([t4.a], [t4.b], [t4.c], [t4.d]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t4.a]), range(MIN ; MAX)always true
|
||||
select a,b,c,d,count(a),count(b),count(c),count(d) from t4;
|
||||
a b c d count(a) count(b) count(c) count(d)
|
||||
1 9 a aaaaaaaaaa 580 515 451 515
|
||||
create table t_empty(a int);
|
||||
select a,count(*) from t_empty;
|
||||
a count(*)
|
||||
NULL 0
|
||||
select a,b,c,d,count(*),count(a),count(b),count(c),count(d) from t4 where b > 1000000;
|
||||
a b c d count(*) count(a) count(b) count(c) count(d)
|
||||
NULL NULL NULL NULL 0 0 0 0 0
|
||||
create table pt1(a int);
|
||||
create table pt2(a int, b int, c int) partition by hash(a) partitions 4;
|
||||
create table pt3(a int, b int, c int) partition by hash(a) partitions 4;
|
||||
insert into pt1 values(1),(2),(3);
|
||||
insert into pt2 values(1,1,1),(2,2,2),(3,3,3);
|
||||
insert into pt3 values (null,null,null),(1,1,1),(2,2,2),(3,3,3);
|
||||
select a,count(*) from pt2;
|
||||
a count(*)
|
||||
1 3
|
||||
select a,count(*) from pt3;
|
||||
a count(*)
|
||||
NULL 4
|
||||
select/*+ leading(pt1,tt) use_nl(pt1,tt) NO_USE_NL_MATERIALIZATION(tt) */ * from pt1,(select a,count(*) from pt2) as tt where pt1.a=tt.a;
|
||||
a a count(*)
|
||||
1 1 3
|
||||
select/*+ leading(pt1,tt) use_nl(pt1,tt) NO_USE_NL_MATERIALIZATION(tt) */ * from pt1,(select a,count(*) from pt3) as tt where pt1.a=tt.a;
|
||||
a a count(*)
|
||||
alter table t_default_value add column b char(10) default 'b';
|
||||
alter table t_default_value add column c char(10) default null;
|
||||
select b,count(b) from t_default_value;
|
||||
b count(b)
|
||||
b 1
|
||||
select c,count(c) from t_default_value;
|
||||
c count(c)
|
||||
NULL 0
|
||||
insert into t_default_value values(2, 'aa', 'bb', 'cc');
|
||||
select b,count(b) from t_default_value;
|
||||
b count(b)
|
||||
b 2
|
||||
select c,count(c) from t_default_value;
|
||||
c count(c)
|
||||
NULL 1
|
||||
SET sql_mode = 'STRICT_ALL_TABLES,PAD_CHAR_TO_FULL_LENGTH';
|
||||
select char_length(a) from t_default_value;
|
||||
char_length(a)
|
||||
5
|
||||
5
|
||||
select char_length(a),count(a) from t_default_value;
|
||||
char_length(a) count(a)
|
||||
5 2
|
||||
drop table if exists t1,t2,t3,t4,nn1,nn2,t_default_value,t_empty,pt1,pt2,pt3;
|
||||
drop table if exists t;
|
||||
create table t(pk int primary key, a char(5));
|
||||
insert into t values(1,'a');
|
||||
insert into t values(2,'b');
|
||||
alter table t add column b char(10) as(concat(a, '1'));
|
||||
explain select b,count(b) from t;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |3 |
|
||||
|1 |└─TABLE FULL SCAN|t |2 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([column_conv(CHAR,utf8mb4_general_ci,length:10,NULL,cast(pad(concat(pad(cast(t.a, VARCHAR(1048576)), ' ', 5), '1'), ' ', 10), CHAR(1048576)))],
|
||||
[T_FUN_COUNT(column_conv(CHAR,utf8mb4_general_ci,length:10,NULL,cast(pad(concat(pad(cast(t.a, VARCHAR(1048576)), ' ', 5), '1'), ' ', 10), CHAR(1048576))))]), filter(nil), rowset=16
|
||||
group(nil), agg_func([T_FUN_COUNT(column_conv(CHAR,utf8mb4_general_ci,length:10,NULL,cast(pad(concat(pad(cast(t.a, VARCHAR(1048576)), ' ', 5), '1'),
|
||||
' ', 10), CHAR(1048576))))])
|
||||
1 - output([column_conv(CHAR,utf8mb4_general_ci,length:10,NULL,cast(pad(concat(pad(cast(t.a, VARCHAR(1048576)), ' ', 5), '1'), ' ', 10), CHAR(1048576)))]), filter(nil), rowset=16
|
||||
access([t.a]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.pk]), range(MIN ; MAX)always true
|
||||
select b,count(b) from t;
|
||||
b count(b)
|
||||
a 1 2
|
||||
select a,count(b) from t;
|
||||
a count(b)
|
||||
a 2
|
||||
select b,count(a) from t;
|
||||
b count(a)
|
||||
a 1 2
|
||||
drop table t;
|
||||
@ -0,0 +1,44 @@
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) row_format = compressed with column group for all columns, each column;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
150
|
||||
alter system major freeze;
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
select count(c1) from t1;
|
||||
count(c1)
|
||||
250
|
||||
select count(c2) from t1;
|
||||
count(c2)
|
||||
100
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
count(c1)
|
||||
99
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
count(c1)
|
||||
150
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
a c2 count(c1)
|
||||
482 482482482482482 9
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
c1 c2
|
||||
482 482482482482482
|
||||
484 484484484484484
|
||||
486 486486486486486
|
||||
488 488488488488488
|
||||
490 490490490490490
|
||||
492 492492492492492
|
||||
494 494494494494494
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
b c2 count(c1)
|
||||
49204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920492049204920 492492492492492 2
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
a c1 count(c1)
|
||||
1 0 10
|
||||
alter system major freeze;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
250
|
||||
drop table t1;
|
||||
@ -0,0 +1,22 @@
|
||||
alter system major freeze tenant all;
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
32000
|
||||
select count(1) from t1 where b <> 0;
|
||||
count(1)
|
||||
2000
|
||||
select count(1) from t1 where b <> 0 and b <> 11;
|
||||
count(1)
|
||||
1800
|
||||
select count(1) from t1 where b > 1 and b <> 11;
|
||||
count(1)
|
||||
1600
|
||||
select count(1) from t1 where c = 'a';
|
||||
count(1)
|
||||
30000
|
||||
select count(1) from t1 where c = 'x';
|
||||
count(1)
|
||||
1000
|
||||
select count(1) from t1 where c <> 'a';
|
||||
count(1)
|
||||
2000
|
||||
@ -0,0 +1,359 @@
|
||||
count(1)
|
||||
352
|
||||
alter system major freeze tenant all;
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
select count(1) from t1;
|
||||
count(1)
|
||||
357
|
||||
alter system minor freeze tenant = all;
|
||||
insert into t1 (b, c, d) values(9, "ab c", repeat('ab ', 300));
|
||||
insert into t1 (b, c, d) values(NULL, NULL, repeat('abcd', 100));
|
||||
select sum(a), sum(b) from t1;
|
||||
sum(a) sum(b)
|
||||
81642 2214
|
||||
select avg(b), count(b) from t1;
|
||||
avg(b) count(b)
|
||||
7.5306 294
|
||||
select count(1) from t1 where b is null;
|
||||
count(1)
|
||||
65
|
||||
select count(1) from t1 where b is not null;
|
||||
count(1)
|
||||
294
|
||||
select sum(a + b) from t1 where c is null;
|
||||
sum(a + b)
|
||||
7308
|
||||
select sum(a - b) from t1 where b between 1 and 5;
|
||||
sum(a - b)
|
||||
13848
|
||||
select sum(a + b) from t1 where c < "ab ";
|
||||
sum(a + b)
|
||||
7052
|
||||
select sum(b) from t1 where c = "ab ";
|
||||
sum(b)
|
||||
365
|
||||
select max(d) from t1 where c > "ab ";
|
||||
max(d)
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd
|
||||
select sum(b) from t1 where c is null;
|
||||
sum(b)
|
||||
240
|
||||
select sum(b) from t1 where c <> 8;
|
||||
sum(b)
|
||||
1974
|
||||
select max(c) from t1 where b is null;
|
||||
max(c)
|
||||
abcd
|
||||
select max(c) from t1 where b is not null;
|
||||
max(c)
|
||||
abd
|
||||
select sum(a+b) from t1 where c like 'abc%';
|
||||
sum(a+b)
|
||||
22244
|
||||
select concat(d, c) from t1 where b > 4 and c > "ab ";
|
||||
concat(d, c)
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcd
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab c
|
||||
abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabc
|
||||
NULL
|
||||
abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabd
|
||||
ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab c
|
||||
select sum(b) from t1 where a < 30 and a > 10 and b > 4 and c > "ab ";
|
||||
sum(b)
|
||||
48
|
||||
select sum(a+b) from t1 where b != 9 and c > "ab " group by c order by c;
|
||||
sum(a+b)
|
||||
4641
|
||||
5524
|
||||
6819
|
||||
6981
|
||||
7608
|
||||
select max(b) from t1 where b != 2 group by c order by c;
|
||||
max(b)
|
||||
10
|
||||
6
|
||||
9
|
||||
11
|
||||
12
|
||||
9
|
||||
13
|
||||
14
|
||||
select min(b) from t1 where b is null group by c order by c;
|
||||
min(b)
|
||||
NULL
|
||||
NULL
|
||||
select max(b) from t1 where b is not null group by c order by c;
|
||||
max(b)
|
||||
10
|
||||
6
|
||||
9
|
||||
11
|
||||
12
|
||||
9
|
||||
13
|
||||
14
|
||||
select max(a), max(c) from t1 where c > "ab" group by b order by b;
|
||||
max(a) max(c)
|
||||
419 abcd
|
||||
4 abcd
|
||||
251 abcd
|
||||
339 abcd
|
||||
383 abcd
|
||||
405 abcde
|
||||
508 abd
|
||||
407 abd
|
||||
418 abd
|
||||
420 abd
|
||||
421 abd
|
||||
423 abd
|
||||
select sum(a), min(c) from t1 where c > "abc" and c < d group by b order by b;
|
||||
sum(a) min(c)
|
||||
select sum(a), min(c) from t1 where c < "abc" group by b order by b;
|
||||
sum(a) min(c)
|
||||
1 a
|
||||
468 a
|
||||
2258 a
|
||||
4861 a
|
||||
6090 a
|
||||
4720 a
|
||||
2600 ab
|
||||
2249 ab
|
||||
5674 ab
|
||||
1710 ab c
|
||||
418 ab c
|
||||
select sum(a+b) from t1 where UPPER(c) < "AB";
|
||||
sum(a+b)
|
||||
7052
|
||||
select avg(b) from t1 where STRCMP(c, d) > 0;
|
||||
avg(b)
|
||||
8.8351
|
||||
select sum(a+b) from t1 where STRCMP(c, d) < 0;
|
||||
sum(a+b)
|
||||
31386
|
||||
select max(c) from t1 where a + b < 20;
|
||||
max(c)
|
||||
abcde
|
||||
select sum(a+b) from t1 where b * 2 > a;
|
||||
sum(a+b)
|
||||
94
|
||||
select a, b, c, d from t1 where STRCMP(c, d) > 0 and b < 10 order by a;
|
||||
a b c d
|
||||
4 4 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
6 6 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
11 9 abd abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
|
||||
15 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
17 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
30 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
32 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
41 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
43 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
61 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
63 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
72 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
74 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
83 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
85 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
94 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
96 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
124 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
126 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
135 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
137 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
146 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
148 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
157 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
159 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
168 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
170 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
179 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
181 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
190 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
192 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
201 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
251 5 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
253 7 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
262 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
264 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
273 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
275 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
284 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
286 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
295 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
297 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
306 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
308 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
317 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
319 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
328 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
339 6 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
341 8 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
350 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
352 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
361 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
363 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
372 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
383 7 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
385 9 ab c aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
394 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
405 8 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
416 9 abcd abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
|
||||
508 9 ab c ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab
|
||||
drop table t1;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,81 @@
|
||||
# owner: fenggu.yh
|
||||
# description: add_column test for filter pushdown correctness in column_store encoding
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=60000000;
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
disconnect default;
|
||||
sleep 1;
|
||||
connect (default,$OBMYSQL_MS0,admin@mysql,admin,test,$OBMYSQL_PORT);
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (a int auto_increment primary key, b bigint, c char(100), d varchar(1000)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t1 (b, c, d) values(1, "a", repeat('a', 1000));
|
||||
insert into t1 (b, c, d) values(2, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(3, "ab ", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(4, "abcd", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(5, "ab c ", repeat("a", 1000));
|
||||
insert into t1 (b, c, d) values(6, "abc ", repeat("abcd", 250));
|
||||
insert into t1 (b, c, d) values(7, "abcd", repeat("abbb", 250));
|
||||
insert into t1 (b, c, d) values(8, "abcde", repeat("accc", 250));
|
||||
--let $loop=3
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c, d) select b + 1, c, d from t1;
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
alter table t1 add column e int;
|
||||
alter table t1 add column def1 int default 10;
|
||||
alter table t1 add column def2 int default 20;
|
||||
insert into t1 (b, c, d) values(100, "abcde", repeat("accc", 250));
|
||||
insert into t1 (b, c, d) values(101, "abcde", repeat("accc", 250));
|
||||
insert into t1 (b, c, d) values(102, "abcde", repeat("accc", 250));
|
||||
insert into t1 (b, c, d) values(103, "abcde", repeat("accc", 250));
|
||||
insert into t1 (b, c, d) values(104, "abcde", repeat("accc", 250));
|
||||
insert into t1 (b, c, d) values(105, "abcde", repeat("accc", 250));
|
||||
|
||||
--disable_query_log
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
|
||||
alter system minor freeze;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
select count(1) from t1;
|
||||
select a, b, e from t1 where c > 'ab' order by a;
|
||||
select a, b, e from t1 where e > 10 order by a;
|
||||
select a, b, e, def1, def2 from t1 where def1 > 10 order by a;
|
||||
select a, b, e, def1, def2 from t1 where def2 > 10 order by a;
|
||||
select a, b, e, def1, def2 from t1 where def2 < def1 order by a;
|
||||
select a, b, e, def1, def2 from t1 where def2 > def1 order by a;
|
||||
|
||||
alter table t1 add column f int generated always as (b*2) virtual;
|
||||
select a, e, f from t1 where c > 'ab' order by a;
|
||||
|
||||
--disable_query_log
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t1 add column g int;
|
||||
select a, b, e from t1 where c > 'ab' order by a;
|
||||
select a, b, f from t1 where c > 'ab' order by a;
|
||||
select a, b, g from t1 where c > 'ab' order by a;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=16777216;
|
||||
set global ob_sql_work_area_percentage=5;
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,159 @@
|
||||
# owner: fenggu.yh
|
||||
#tags: optimizer
|
||||
# description: basic test for filter pushdown correctness in cs encoding
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=60000000;
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
disconnect default;
|
||||
sleep 1;
|
||||
connect (default,$OBMYSQL_MS0,admin@mysql,admin,test,$OBMYSQL_PORT);
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (a int auto_increment primary key, b bigint, c char(100), d varchar(1000)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t1 (b, c, d) values(1, "a", repeat('a', 1000));
|
||||
insert into t1 (b, c, d) values(2, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(3, "ab ", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(4, "abcd", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(5, "ab c ", repeat("a", 1000));
|
||||
insert into t1 (b, c, d) values(6, "abc ", repeat("abcd", 250));
|
||||
insert into t1 (b, c, d) values(7, "abcd", repeat("abbb", 250));
|
||||
insert into t1 (b, c, d) values(8, "abcde", repeat("accc", 250));
|
||||
--let $loop=5
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c, d) select b + 1, c, d from t1;
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
# bug
|
||||
create table t2 (a smallint(94) NOT NULL, b smallint(40) DEFAULT NULL, primary key(a)) row_format = compressed with column group for all columns, each column;
|
||||
insert into t2 values (39,845), (280,748), (520,693), (531,834), (548,17), (575,81), (576,711), (597,756), (680,594);
|
||||
insert into t2 values (751,576), (763,941), (797,906), (806,792), (841,320), (888,10), (952,398), (974,321);
|
||||
|
||||
create table t3 (a int auto_increment primary key, b bigint, c char(100), d varchar(1000)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t3 (b, c, d) values(1, "a", repeat('a', 1000));
|
||||
insert into t3 (b, c, d) values(2, "ab", repeat("ab", 500));
|
||||
insert into t3 (b, c, d) values(3, "ab ", repeat("ab", 500));
|
||||
insert into t3 (b, c, d) values(4, "abcd", repeat("ab", 500));
|
||||
insert into t3 (b, c, d) values(5, "ab c ", repeat("a", 1000));
|
||||
insert into t3 (b, c, d) values(6, "abc ", repeat("abcd", 250));
|
||||
insert into t3 (b, c, d) values(7, "abcd", repeat("abbb", 250));
|
||||
--let $loop=23
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t3 (b, c, d) values(8, "abcde", repeat("accc", 250));
|
||||
dec $loop;
|
||||
}
|
||||
|
||||
--disable_query_log
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--let $loop=5
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
insert into t2 values (700,576);
|
||||
select * from t2 where a = 700 or a <= 601;
|
||||
select * from t2 where a = 800 or a <= 601;
|
||||
|
||||
connection obsys;
|
||||
alter system set _rowsets_enabled = true tenant = 'mysql';
|
||||
alter system flush plan cache global;
|
||||
|
||||
connection default;
|
||||
delete from t3 where a = 2;
|
||||
insert into t3 (a, b, c, d) values(31, 1, "a", repeat('a', 1000));
|
||||
create table t4(a int) row_format = compressed with column group for all columns, each column;
|
||||
insert into t4 values (-1), (0);
|
||||
explain select /*+ LEADING(t4,t3) USE_NL(t3,t4) NO_USE_NL_MATERIALIZATION(t3) */ t3.a from t4,t3 where (t3.a >= t4.a + 31 and t3.a <= t4.a + 35) or (t3.a >= t4.a + 1 and t3.a <= t4.a + 5) order by t3.a;
|
||||
select /*+ LEADING(t4,t3) USE_NL(t3,t4) NO_USE_NL_MATERIALIZATION(t3) */ t3.a from t4,t3 where (t3.a >= t4.a + 31 and t3.a <= t4.a + 35) or (t3.a >= t4.a + 1 and t3.a <= t4.a + 5) order by t3.a;
|
||||
|
||||
connection obsys;
|
||||
alter system set _rowsets_enabled = false tenant = 'mysql';
|
||||
alter system flush plan cache global;
|
||||
|
||||
connection obsys;
|
||||
alter system minor freeze tenant = all;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
insert into t1 (b, c, d) values(9, "ab c", repeat('ab ', 300));
|
||||
|
||||
# basic
|
||||
select count(1) from t1;
|
||||
select count(1) from t1 where b = 1;
|
||||
select count(1) from t1 where b != 2;
|
||||
select count(1) from t1 where b between 1 and 5;
|
||||
select count(1) from t1 where b > 4 and a > 0;
|
||||
select b, c from t1 where b = 9;
|
||||
select 1 as rnd1 from t1 where rand() > 2;
|
||||
select a, b from t1 where rand() < 2 order by a desc limit 10;
|
||||
|
||||
# padding
|
||||
select count(1) from t1 where c < "ab ";
|
||||
select count(1) from t1 where c = "ab ";
|
||||
select count(1) from t1 where c > "ab ";
|
||||
select count(1) from t1 where c > "ab a";
|
||||
select count(1) from t1 where c IN ("ab c", "abc");
|
||||
select count(1) from t1 where c between "abaaa" and "abccc";
|
||||
select count(1) from t1 where b = 2 and c < "ab ";
|
||||
select count(1) from t1 where b != 2 and c = "ab ";
|
||||
select count(1) from t1 where b > 4 and c > "ab ";
|
||||
select count(1) from t1 where b between 1 and 5 and c > "ab a";
|
||||
select count(1) from t1 where b = 9 and c IN ("ab c", "abc");
|
||||
select count(1) from t1 where b * 2 > 10 and c between "abaaa" and "abccc";
|
||||
select count(1) from t1 where d between "abaaa" and "abccc";
|
||||
select count(1) from t1 where a > 10 or c between "abaaa" and "abccc";
|
||||
select count(1) from t1 where a < 30 and b > 4 and c > "ab ";
|
||||
|
||||
# sort
|
||||
select count(1) from t1 where b != 9 and c > "ab " order by b desc;
|
||||
select count(1) from t1 where b != 2 and c = "ab " order by c desc;
|
||||
select count(1) from t1 where b between 1 and 5 and c > "ab a" order by c desc;
|
||||
select count(1) from t1 where a < 100 and b * 2 > 10 and c between "abaaa" and "abccc" order by a;
|
||||
select count(1) from t1 where d between "abaaa" and "abccc" order by a desc;
|
||||
select count(1) from t1 where b = 9 order by a desc;
|
||||
select a, b, c from t1 where c > "ab a" and b < 8 order by a;
|
||||
select a, b, c from t1 where c > "ab a" and b > 8 order by a desc;
|
||||
|
||||
#virtual
|
||||
select count(1) from t1 where UPPER(c) < "AB";
|
||||
select count(1) from t1 where STRCMP(c, d) > 0;
|
||||
select count(1) from t1 where STRCMP(c, d) < 0;
|
||||
select count(1) from t1 where a = b;
|
||||
select count(1) from t1 where a + b < 20;
|
||||
select count(1) from t1 where b * 2 > a;
|
||||
select a, b, c, d from t1 where STRCMP(c, d) > 0 and b < 10 order by a;
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=16777216;
|
||||
set global ob_sql_work_area_percentage=5;
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
alter system set _rowsets_enabled = true tenant = 'mysql';
|
||||
@ -0,0 +1,68 @@
|
||||
# owner: fenggu.yh
|
||||
# description: test for black filter pushdown correctness in column_store encoding
|
||||
|
||||
--disable_query_log
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
disconnect default;
|
||||
sleep 1;
|
||||
connect (default,$OBMYSQL_MS0,admin@mysql,admin,test,$OBMYSQL_PORT);
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t_black;
|
||||
--enable_warnings
|
||||
|
||||
create table t_black(a int primary key, b int, c date, d text, e text, f text) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
--let $count = 1
|
||||
while($count < 101)
|
||||
{
|
||||
--let $stmt=insert into t_black(a,b,c,d,e,f) values ($count,$count,'2022-03-10','AAAAAAAAAAAAA', '', 'http://ck.compressed?filmId=REVENGERS');
|
||||
eval $stmt;
|
||||
inc $count;
|
||||
}
|
||||
while($count < 151)
|
||||
{
|
||||
--let $stmt=insert into t_black(a,b,c,d,e,f) values ($count,NULL,'2022-03-11',NULL, 'A1', 'http://ck.compressed?filmId=TTKKYY');
|
||||
eval $stmt;
|
||||
inc $count;
|
||||
}
|
||||
while($count < 201)
|
||||
{
|
||||
--let $stmt=insert into t_black(a,b,c,d,e,f) values ($count,NULL,'2022-03-11',NULL, 'B1', 'http://ck.compressed?filmId=PPCCII');
|
||||
eval $stmt;
|
||||
inc $count;
|
||||
}
|
||||
while($count < 251)
|
||||
{
|
||||
--let $stmt=insert into t_black(a,b,c,d,e,f) values ($count,NULL,'2022-03-11',NULL, 'C1', 'http://ck.compressed?filmId=LLPPRR');
|
||||
eval $stmt;
|
||||
inc $count;
|
||||
}
|
||||
while($count < 301)
|
||||
{
|
||||
--let $stmt=insert into t_black(a,b,c,d,e,f) values ($count,NULL,'2022-03-11',NULL, 'Mill', 'http://ck.compressed?filmId=TOMORROW');
|
||||
eval $stmt;
|
||||
inc $count;
|
||||
}
|
||||
select count(1) from t_black;
|
||||
select count(*) from t_black where d like '%AAA%';
|
||||
select count(*) from t_black where b/2 > 5;
|
||||
select count(*) from t_black where b/2 > 5 and b/3 < 7;
|
||||
select a, e, f, count(*) as cnt from t_black where f like '%REVENGE%' and e <> '' group by e order by cnt;
|
||||
|
||||
--disable_query_log
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
drop table t_black;
|
||||
|
||||
--disable_query_log
|
||||
set global ob_sql_work_area_percentage=5;
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,92 @@
|
||||
# owner: fenggu.yh
|
||||
# description:
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
create table t1(a int, b varchar(3048), primary key (a)) row_format = compressed with column group for all columns, each column;
|
||||
create table t2(c0 int, c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int, c8 int, c9 int, c10 int, c11 int, c12 int) row_format = compressed with column group for all columns, each column;
|
||||
create table t3(a int, b varchar(3048), primary key (a)) row_format = compressed with column group for all columns, each column;
|
||||
sleep 10;
|
||||
insert into t1 values(1, 1);
|
||||
insert into t2 values(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
|
||||
insert into t3 values(1, 1);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 500)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 , repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 2, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 4, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 6, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 8, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 , repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 2, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 4, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 6, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 8, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=300
|
||||
while ($count < 400)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 1, repeat($count * 10 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 3, repeat($count * 10 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 5, repeat($count * 10 + 4,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 7, repeat($count * 10 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 10 + 9, repeat($count * 10 + 8,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 1, repeat($count * 20 ,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 3, repeat($count * 20 + 2,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 5, repeat($count * 20 + 3,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 7, repeat($count * 20 + 6,512));
|
||||
eval INSERT INTO t1 VALUES($count * 20 + 9, repeat($count * 20 + 8,512));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
|
||||
alter table t3 add column c int;
|
||||
insert into t3 values(2, 1, 1);
|
||||
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t1;
|
||||
select * from t3;
|
||||
select c from t3;
|
||||
select count(c) from t3;
|
||||
|
||||
--let $count=12000
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count,512));
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
select count(*) from t1;
|
||||
select * from t3;
|
||||
select c from t3;
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,176 @@
|
||||
# owner: fenggu.yh
|
||||
# tags: optimizer
|
||||
# description: pushdown aggregation(count) to storage layer
|
||||
|
||||
--disable_query_log
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
sleep 1;
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection default;
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t4,nn1,nn2,t_default_value,t_empty,pt1,pt2,pt3;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
# bugs in
|
||||
create table nn1(c1 int, c2 int, c3 varchar(10));
|
||||
create table nn2 (c1 int primary key, c2 int unique, c3 int);
|
||||
explain select (select count(x.c2) from nn1 a) as x from nn1 x;
|
||||
explain select count(distinct c1,c3) from nn2;
|
||||
|
||||
# count(*),count(column),count(1),count(null)
|
||||
create table t1 (libname varchar(21), city varchar(256), primary key (libname));
|
||||
insert into t1 values ('test1','city1'),('test2','city2');
|
||||
insert into t1 values ('l', null);
|
||||
replace into t1 values ('2', null);
|
||||
replace into t1 values ('test3','city3'),('test4','city4');
|
||||
create table t2(a int, b varchar(26), c date);
|
||||
insert into t2 values(0, 'a', '2021-04-08');
|
||||
insert into t2 values(null, null, null);
|
||||
insert into t2 values(1, null, null);
|
||||
|
||||
explain select count(*);
|
||||
select count(*);
|
||||
explain select count(*) from dual;
|
||||
select count(*) from dual;
|
||||
|
||||
explain select count(*) from t1;
|
||||
select count(*) from t1;
|
||||
explain select count(city) from t1;
|
||||
select count(city) from t1;
|
||||
select count(null) from t1;
|
||||
select count(1) from t1;
|
||||
|
||||
select count(a),count(b),count(c),count(*) from t2;
|
||||
select count(1),count(a),count(b),count(c),count(*) from t2 where a > 0;
|
||||
|
||||
# count(distinct),count(a+b),groupby,for update
|
||||
create table t3(a int, b int);
|
||||
explain select count(distinct a) from t3;
|
||||
explain select count(distinct a,b) from t3;
|
||||
explain select count(a + b) from t3;
|
||||
explain select a,count(b) from t3 group by a;
|
||||
explain select count(*) from t3 for update;
|
||||
|
||||
# minor&major freeze
|
||||
create table t4 (a bigint auto_increment primary key, b bigint, c char(100), d varchar(100), e bigint not null) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t4 (a, b, c, d, e) values(1, 9, "a", repeat('a', 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(2, 2, "ab", repeat("ab", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(3, 5, "abcd", repeat("ab", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(4, 7, NULL, repeat("abcd", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(5, NULL, "ab c ", repeat("a", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(6, 9, NULL, repeat("abbb", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(7, 1, "abc ", repeat("abcd", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(8, 3, "abcde", NULL,1);
|
||||
insert into t4 (a, b, c, d, e) values(9, 100, "abd", repeat("abc", 10),1);
|
||||
--let $loop=6
|
||||
while($loop > 0)
|
||||
{
|
||||
eval insert into t4 (a, b, c, d, e) select a * 10 + $loop, b + 1, c, d, e from t4;
|
||||
dec $loop;
|
||||
}
|
||||
insert into t4 (a, b, c, d, e) values(123456, 100, "abd", repeat("abc", 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(10000, 0, "ab c", repeat('ab ', 10),1);
|
||||
|
||||
## minor freeze
|
||||
connection obsys;
|
||||
alter system minor freeze tenant = all;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
connection default;
|
||||
select count(1),count(*) from t4;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
|
||||
create table t_default_value(pk int primary key, a char(5));
|
||||
insert into t_default_value values(1,'a');
|
||||
|
||||
## major freeze
|
||||
connection obsys;
|
||||
alter system major freeze tenant = all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection default;
|
||||
select count(1),count(*) from t4;
|
||||
select count(*) from t4 where b < 1;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 46912;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a/2 > 23456;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > b;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a - b > 0;
|
||||
|
||||
## memtable
|
||||
insert into t4 (a, b, c, d, e) values(10001, 0, "ab c", repeat('ab ', 10),1);
|
||||
insert into t4 (a, b, c, d, e) values(null, null, null, null,1);
|
||||
|
||||
connection default;
|
||||
select count(1),count(*) from t4;
|
||||
select count(*),count(1),count(a),count(b),count(c),count(d) from t4;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a > 5 and b is not null;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a < 1;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a = 123456;
|
||||
select count(1),count(*),count(a),count(b),count(c),count(d) from t4 where a is null;
|
||||
select count(1),count(*),count(e) from t4;
|
||||
|
||||
# mysql compatibility
|
||||
explain select a,b,c,d,count(a),count(b),count(c),count(d) from t4;
|
||||
select a,b,c,d,count(a),count(b),count(c),count(d) from t4;
|
||||
create table t_empty(a int);
|
||||
select a,count(*) from t_empty;
|
||||
select a,b,c,d,count(*),count(a),count(b),count(c),count(d) from t4 where b > 1000000;
|
||||
create table pt1(a int);
|
||||
create table pt2(a int, b int, c int) partition by hash(a) partitions 4;
|
||||
create table pt3(a int, b int, c int) partition by hash(a) partitions 4;
|
||||
insert into pt1 values(1),(2),(3);
|
||||
insert into pt2 values(1,1,1),(2,2,2),(3,3,3);
|
||||
insert into pt3 values (null,null,null),(1,1,1),(2,2,2),(3,3,3);
|
||||
select a,count(*) from pt2;
|
||||
select a,count(*) from pt3;
|
||||
select/*+ leading(pt1,tt) use_nl(pt1,tt) NO_USE_NL_MATERIALIZATION(tt) */ * from pt1,(select a,count(*) from pt2) as tt where pt1.a=tt.a;
|
||||
select/*+ leading(pt1,tt) use_nl(pt1,tt) NO_USE_NL_MATERIALIZATION(tt) */ * from pt1,(select a,count(*) from pt3) as tt where pt1.a=tt.a;
|
||||
|
||||
# default values & padding
|
||||
alter table t_default_value add column b char(10) default 'b';
|
||||
alter table t_default_value add column c char(10) default null;
|
||||
select b,count(b) from t_default_value;
|
||||
select c,count(c) from t_default_value;
|
||||
|
||||
insert into t_default_value values(2, 'aa', 'bb', 'cc');
|
||||
select b,count(b) from t_default_value;
|
||||
select c,count(c) from t_default_value;
|
||||
|
||||
SET sql_mode = 'STRICT_ALL_TABLES,PAD_CHAR_TO_FULL_LENGTH';
|
||||
select char_length(a) from t_default_value;
|
||||
select char_length(a),count(a) from t_default_value;
|
||||
|
||||
# clean
|
||||
drop table if exists t1,t2,t3,t4,nn1,nn2,t_default_value,t_empty,pt1,pt2,pt3;
|
||||
|
||||
## bug:
|
||||
--disable_warnings
|
||||
drop table if exists t;
|
||||
--enable_warnings
|
||||
create table t(pk int primary key, a char(5));
|
||||
insert into t values(1,'a');
|
||||
insert into t values(2,'b');
|
||||
alter table t add column b char(10) as(concat(a, '1'));
|
||||
|
||||
explain select b,count(b) from t;
|
||||
select b,count(b) from t;
|
||||
select a,count(b) from t;
|
||||
select b,count(a) from t;
|
||||
|
||||
drop table t;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,63 @@
|
||||
# owner: fenggu.yh
|
||||
# description: create column_store encoding table and add column
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
set @@recyclebin = off;
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
create table t1(a int, b varchar(3048), primary key (a), c int) row_format = compressed with column group for all columns, each column;
|
||||
|
||||
sleep 10;
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=1
|
||||
while ($count < 300)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10);
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
alter table t1 add column c1 int default 0, add column c2 varchar(100);
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--let $count=300
|
||||
while ($count < 500)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($count, repeat($count * 10, 512), $count * 10, $count, repeat($count, 5));
|
||||
inc $count;
|
||||
inc $count;
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t1;
|
||||
select count(c1) from t1;
|
||||
select count(c2) from t1;
|
||||
select count(c1) from t1 where c1 > 300;
|
||||
select count(c1) from t1 where c1 < 30;
|
||||
select a, c2, count(c1) from t1 where c1 > 480;
|
||||
select c1, c2 from t1 where c1 > 480 and a < 495;
|
||||
select b, c2, count(c1) from t1 where c1 > 490 and a < 495;
|
||||
select a, c1, count(c1) from t1 where a <20 and c1 != 80 and c1 != 6 and c1 < 30;
|
||||
|
||||
alter system major freeze;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
select count(*) from t1;
|
||||
|
||||
drop table t1;
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,56 @@
|
||||
# owner: fenggu.yh
|
||||
# description: check correctness of cs white filter when executing const dict encoding
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=60000000;
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
disconnect default;
|
||||
sleep 1;
|
||||
connect (default,$OBMYSQL_MS0,admin@mysql,admin,test,$OBMYSQL_PORT);
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (a int auto_increment primary key, b smallint(6), c varchar(10)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
--let $loop=1000
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c) values(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),
|
||||
(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),
|
||||
(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a');
|
||||
dec $loop;
|
||||
}
|
||||
--let $loop=200
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c) values(1, 'x'),(11, 'x'),(21, 'x'),(31, 'x'),(41, 'x'),(51, 'y'),(61, 'y'),(71, 'y'),(81, 'y'),(91, 'y');
|
||||
dec $loop;
|
||||
}
|
||||
|
||||
--disable_query_log
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
select count(1) from t1;
|
||||
select count(1) from t1 where b <> 0;
|
||||
select count(1) from t1 where b <> 0 and b <> 11;
|
||||
select count(1) from t1 where b > 1 and b <> 11;
|
||||
select count(1) from t1 where c = 'a';
|
||||
select count(1) from t1 where c = 'x';
|
||||
select count(1) from t1 where c <> 'a';
|
||||
|
||||
#drop table t1;
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=16777216;
|
||||
set global ob_sql_work_area_percentage=5;
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,106 @@
|
||||
# owner: fenggu.yh
|
||||
# description: null and aggregation func test for filter pushdown correctness
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=60000000;
|
||||
set global ob_sql_work_area_percentage=80;
|
||||
disconnect default;
|
||||
sleep 1;
|
||||
connect (default,$OBMYSQL_MS0,admin@mysql,admin,test,$OBMYSQL_PORT);
|
||||
set @@recyclebin = off;
|
||||
set ob_query_timeout=1000000000;
|
||||
set ob_trx_timeout=1000000000;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (a int auto_increment primary key, b bigint, c char(100), d varchar(1000)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
insert into t1 (b, c, d) values(1, "a", repeat('a', 1000));
|
||||
insert into t1 (b, c, d) values(2, "ab", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(3, "ab ", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(4, "abcd", repeat("ab", 500));
|
||||
insert into t1 (b, c, d) values(5, NULL, repeat("abcd", 250));
|
||||
insert into t1 (b, c, d) values(6, "ab c ", repeat("a", 1000));
|
||||
insert into t1 (b, c, d) values(NULL, "abcd", repeat("abbb", 250));
|
||||
insert into t1 (b, c, d) values(7, "abc ", repeat("abcd", 250));
|
||||
insert into t1 (b, c, d) values(8, "abcde", NULL);
|
||||
insert into t1 (b, c, d) values(NULL, NULL, NULL);
|
||||
insert into t1 (b, c, d) values(9, "abd", repeat("abc", 200));
|
||||
--let $loop=5
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c, d) select b + 1, c, d from t1;
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
--disable_query_log
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--enable_query_log
|
||||
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
--let $loop=5
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (b, c, d) values(9, "ab", repeat("ab", 500));
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
connection obsys;
|
||||
alter system minor freeze tenant = all;
|
||||
--source mysql_test/include/wait_minor_merge.inc
|
||||
|
||||
insert into t1 (b, c, d) values(9, "ab c", repeat('ab ', 300));
|
||||
insert into t1 (b, c, d) values(NULL, NULL, repeat('abcd', 100));
|
||||
|
||||
# basic
|
||||
select sum(a), sum(b) from t1;
|
||||
select avg(b), count(b) from t1;
|
||||
select count(1) from t1 where b is null;
|
||||
select count(1) from t1 where b is not null;
|
||||
select sum(a + b) from t1 where c is null;
|
||||
select sum(a - b) from t1 where b between 1 and 5;
|
||||
|
||||
# padding
|
||||
select sum(a + b) from t1 where c < "ab ";
|
||||
select sum(b) from t1 where c = "ab ";
|
||||
select max(d) from t1 where c > "ab ";
|
||||
select sum(b) from t1 where c is null;
|
||||
select sum(b) from t1 where c <> 8;
|
||||
select max(c) from t1 where b is null;
|
||||
select max(c) from t1 where b is not null;
|
||||
select sum(a+b) from t1 where c like 'abc%';
|
||||
|
||||
# multi selection
|
||||
select concat(d, c) from t1 where b > 4 and c > "ab ";
|
||||
select sum(b) from t1 where a < 30 and a > 10 and b > 4 and c > "ab ";
|
||||
|
||||
# group by
|
||||
select sum(a+b) from t1 where b != 9 and c > "ab " group by c order by c;
|
||||
select max(b) from t1 where b != 2 group by c order by c;
|
||||
select min(b) from t1 where b is null group by c order by c;
|
||||
select max(b) from t1 where b is not null group by c order by c;
|
||||
select max(a), max(c) from t1 where c > "ab" group by b order by b;
|
||||
select sum(a), min(c) from t1 where c > "abc" and c < d group by b order by b;
|
||||
select sum(a), min(c) from t1 where c < "abc" group by b order by b;
|
||||
|
||||
#virtual
|
||||
select sum(a+b) from t1 where UPPER(c) < "AB";
|
||||
select avg(b) from t1 where STRCMP(c, d) > 0;
|
||||
select sum(a+b) from t1 where STRCMP(c, d) < 0;
|
||||
select max(c) from t1 where a + b < 20;
|
||||
select sum(a+b) from t1 where b * 2 > a;
|
||||
select a, b, c, d from t1 where STRCMP(c, d) > 0 and b < 10 order by a;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--disable_query_log
|
||||
set global max_allowed_packet=16777216;
|
||||
set global ob_sql_work_area_percentage=5;
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,101 @@
|
||||
# owner: fenggu.yh
|
||||
#tags: optimizer
|
||||
|
||||
--result_format 4
|
||||
--explain_protocol 0
|
||||
--disable_query_log
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection syscon;
|
||||
alter system set ob_compaction_schedule_interval = '3s';
|
||||
set @@recyclebin = off;
|
||||
--sleep 2
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int auto_increment primary key, c2 bigint, c3 varchar(100)) row_format = compressed block_size = 2048 with column group for all columns, each column;
|
||||
|
||||
--let $loop=10
|
||||
while($loop > 0)
|
||||
{
|
||||
eval insert into t1 (c2, c3) values ($loop, concat("abc", $loop));
|
||||
dec $loop;
|
||||
}
|
||||
insert into t1 (c2, c3) values(5, NULL);
|
||||
--let $loop=9
|
||||
while($loop > 0)
|
||||
{
|
||||
insert into t1 (c2, c3) select c2 + 1, c3 from t1;
|
||||
dec $loop;
|
||||
}
|
||||
insert into t1 (c2, c3) values(NULL, NULL);
|
||||
select count(1) from t1;
|
||||
|
||||
connection syscon;
|
||||
alter system major freeze tenant all;
|
||||
--source mysql_test/include/wait_daily_merge.inc
|
||||
|
||||
connection default;
|
||||
--let $loop=5
|
||||
while($loop > 0)
|
||||
{
|
||||
eval insert into t1 (c2, c3) values ($loop, concat("abc", $loop));
|
||||
dec $loop;
|
||||
}
|
||||
select count(1) from t1;
|
||||
|
||||
delete from t1 where c1 = 20;
|
||||
update t1 set c2 = 50 where c1 = 30;
|
||||
update t1 set c2 = 90 where c1 = 100;
|
||||
insert into t1 (c2, c3) values (1, " abc "), (1, "ccc"), (1000, " abc "), (1000, "ccc");
|
||||
|
||||
select count(1) from t1;
|
||||
--enable_query_log
|
||||
|
||||
# white
|
||||
select count(1) from t1 where c2 != 10;
|
||||
select count(1) from t1 where c2 > 10;
|
||||
select count(1) from t1 where c2 < 10;
|
||||
select sum(c2) from t1 where c3 is null;
|
||||
select sum(c2) from t1 where c3 is null;
|
||||
select sum(c2) from t1 where c3 is not null;
|
||||
select sum(c1+c2) from t1 where c3 = "abc5";
|
||||
select sum(c2) from t1 where c3 > "abc5";
|
||||
select sum(c1+c2) from t1 where c3 < "abc5";
|
||||
|
||||
# black
|
||||
select c1, c2 from t1 where c3 like "%abc5" order by c1;
|
||||
select sum(c2) from t1 where c3 in ("abc2", "ccc");
|
||||
select c1, c2 from t1 where (c1 + c2) > 15 order by c1;
|
||||
|
||||
# and / or
|
||||
select sum(c2) from t1 where c2 > 10 and c3 > "abc5";
|
||||
select sum(c2) from t1 where c2 > 10 or c3 > "abc5";
|
||||
select sum(c2) from t1 where c2 <= 10 and (c3 > "abc5" or c2 = 50);
|
||||
select sum(c2) from t1 where c2 > 10 or c3 like "%abc5" or c2 = 5;
|
||||
select c1, c2 from t1 where (c1, c2) > (9, 9) and (c1, c2) < (15, 15) order by c1;
|
||||
select c1, c2 from t1 where (c1, c2) > (9, 9) or c3 in ("abc5") order by c1;
|
||||
select c1, c2 from t1 where (c1, c2) < (9, 9) or (c1, c2) >= (50, 50) or c3 in ("abc7") order by c1;
|
||||
select c1, c2 from t1 where (c1, c2) > (9, 9) and (c1, c2) < (15, 15) and c3 = "abc1" order by c1;
|
||||
|
||||
# group by
|
||||
select sum(c1) from t1 where c2 > 10 and c3 > "abc5" group by c3 order by c2;
|
||||
select sum(c1) from t1 where c2 > 10 or c3 > "abc5" group by c2, c3;
|
||||
select sum(c1) from t1 where c2 <= 10 and (c3 > "abc5" or c2 = 50) group by c3;
|
||||
select sum(c1) from t1 where c2 > 10 or c3 like "%abc5" or c2 = 5 group by c2;
|
||||
select sum(c1) from t1 where (c1, c2) > (9, 9) and (c1, c2) < (15, 15) group by c2;
|
||||
select sum(c1) from t1 where (c1, c2) > (9, 9) or c3 in ("abc5") group by c2;
|
||||
select sum(c1) from t1 where (c1, c2) < (9, 9) or (c1, c2) >= (50, 50) or c3 in ("abc7") group by c2;
|
||||
select sum(c1) from t1 where (c1, c2) > (9, 9) and (c1, c2) < (15, 15) and c3 = "abc1" group by c2;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--disable_query_log
|
||||
set @@recyclebin = on;
|
||||
--enable_query_log
|
||||
|
||||
--enable_warnings
|
||||
--disable_query_log
|
||||
connection syscon;
|
||||
--enable_query_log
|
||||
@ -0,0 +1,48 @@
|
||||
DROP TABLE IF EXISTS a1;
|
||||
SELECT NULL AND 1, 1 AND NULL, 0 AND NULL, NULL and 0;
|
||||
NULL AND 1 1 AND NULL 0 AND NULL NULL and 0
|
||||
NULL NULL 0 0
|
||||
create table a1 (rowkey_suffix int primary key, price int);
|
||||
insert into a1(rowkey_suffix, price) values (0,0),(1,1),(2,2);
|
||||
SELECT * FROM a1 where NOT(price AND 1);
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
SELECT * FROM a1 where NOT(1 AND price);
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
SELECT * FROM a1 where (price AND 1)=false;
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
SELECT * FROM a1 where (1 AND price)=false;
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
SELECT * FROM a1 where (1 AND price)=true;
|
||||
rowkey_suffix price
|
||||
1 1
|
||||
2 2
|
||||
SELECT * FROM a1 where (1 AND price) IS NULL;
|
||||
rowkey_suffix price
|
||||
select * from a1 where not price between 2 and 3;
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
1 1
|
||||
select * from a1 where not price between 2 and 3;
|
||||
rowkey_suffix price
|
||||
0 0
|
||||
1 1
|
||||
select rowkey_suffix, price is false, price is true, price is unknown from a1;
|
||||
rowkey_suffix price is false price is true price is unknown
|
||||
0 1 0 0
|
||||
1 0 1 0
|
||||
2 0 1 0
|
||||
select rowkey_suffix, price is not false, price is not true, price is not unknown from a1;
|
||||
rowkey_suffix price is not false price is not true price is not unknown
|
||||
0 0 1 1
|
||||
1 1 0 1
|
||||
2 1 0 1
|
||||
DROP TABLE a1;
|
||||
DROP TABLE IF EXISTS ob_new_sql_test;
|
||||
create table ob_new_sql_test ( c0 varchar(20), c1 int primary key);
|
||||
insert into ob_new_sql_test (c0, c1) values ('hello', 0);
|
||||
insert into ob_new_sql_test (c0, c1) values ('hello', 1);
|
||||
drop table ob_new_sql_test;
|
||||
198539
tools/deploy/mysql_test/test_suite/datatype/r/mysql/div.result
Normal file
198539
tools/deploy/mysql_test/test_suite/datatype/r/mysql/div.result
Normal file
File diff suppressed because it is too large
Load Diff
191019
tools/deploy/mysql_test/test_suite/datatype/r/mysql/minus.result
Normal file
191019
tools/deploy/mysql_test/test_suite/datatype/r/mysql/minus.result
Normal file
File diff suppressed because it is too large
Load Diff
119
tools/deploy/mysql_test/test_suite/datatype/r/mysql/null2.result
Normal file
119
tools/deploy/mysql_test/test_suite/datatype/r/mysql/null2.result
Normal file
@ -0,0 +1,119 @@
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
create table t1(pk1 int, pk2 int, pk3 int, extra int, primary key(pk1));
|
||||
insert into t1(pk1,pk2,pk3) values(1,1,1),(2,2,2);
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
insert into t1 values(3,null,null,NULL);
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
3 NULL NULL NULL
|
||||
select * from t1 where extra = NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where extra != NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where extra is NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
3 NULL NULL NULL
|
||||
select * from t1 where extra is not NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where pk1 = NULL and pk3 = NULL and pk3 = NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
select * from t1 where pk1 in (NULL) and pk2 in (NULL) and pk3 in (NULL);
|
||||
pk1 pk2 pk3 extra
|
||||
select * from t1 where pk1 in (NULL,1) and pk2 in (NULL, 1);
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
update t1 set extra=4 where pk1 = NULL and pk2 = NULL and pk3 = NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
3 NULL NULL NULL
|
||||
update t1 set extra=1 where pk1 is NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
3 NULL NULL NULL
|
||||
update t1 set extra=2 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 NULL
|
||||
2 2 2 NULL
|
||||
3 NULL NULL NULL
|
||||
update t1 set extra=3 where pk1 is not NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 3
|
||||
2 2 2 3
|
||||
3 NULL NULL 3
|
||||
update t1 set extra=4 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
update t1 set extra=5 where pk1 != NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
update t1 set extra=6 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 != NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 = NULL and pk2 = NULL and pk3 = NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 is NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
1 1 1 4
|
||||
2 2 2 4
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
3 NULL NULL 3
|
||||
delete from t1 where pk1 is not NULL;
|
||||
select * from t1;
|
||||
pk1 pk2 pk3 extra
|
||||
drop table t1;
|
||||
@ -0,0 +1,208 @@
|
||||
drop table if exists t1;
|
||||
create table t1 (c1 int, c2 varchar(1024), c3 int, primary key (c1));
|
||||
basic case
|
||||
replace into t1 values (1, 'a', 1), (2, 'b', NULL);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 1
|
||||
2 b NULL
|
||||
delete from t1 where c1=1;
|
||||
replace into t1 values (1, 'a', 2);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 2
|
||||
2 b NULL
|
||||
replace into t1 values (1, 'a', 3), (1, 'a', 4);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
only rowkey
|
||||
replace into t1(c1,c2) values (3, 'c');
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
type conversion
|
||||
replace into t1 values ('4', 4, '4'), (5, 'd', '5');
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
cons rowkey
|
||||
replace into t1 (c3, c2, c1) values (9, 'a', 8), (7, 'b', 6);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
6 b 7
|
||||
8 a 9
|
||||
null rowkey
|
||||
replace into t1 values (10, 1, NULL), (11, NULL, 2), (12, 'ULL', 3);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
6 b 7
|
||||
8 a 9
|
||||
10 1 NULL
|
||||
11 NULL 2
|
||||
12 ULL 3
|
||||
ps
|
||||
transaction
|
||||
start transaction;
|
||||
replace into t1 values (31, 'x', 13);
|
||||
select * from t1 where c1 = 31 and c2 = 'x' for update;
|
||||
c1 c2 c3
|
||||
31 x 13
|
||||
rollback;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
6 b 7
|
||||
8 a 9
|
||||
10 1 NULL
|
||||
11 NULL 2
|
||||
12 ULL 3
|
||||
start transaction;
|
||||
replace into t1 values (31, 'x', 13);
|
||||
select * from t1 where c1 = 31 and c2 = 'x' for update;
|
||||
c1 c2 c3
|
||||
31 x 13
|
||||
commit;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
6 b 7
|
||||
8 a 9
|
||||
10 1 NULL
|
||||
11 NULL 2
|
||||
12 ULL 3
|
||||
31 x 13
|
||||
set autocommit = 0;
|
||||
replace into t1 values (32, 'y', 23);
|
||||
replace into t1 values (32, 'y', 32);
|
||||
commit;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 a 4
|
||||
2 b NULL
|
||||
3 c NULL
|
||||
4 4 4
|
||||
5 d 5
|
||||
6 b 7
|
||||
8 a 9
|
||||
10 1 NULL
|
||||
11 NULL 2
|
||||
12 ULL 3
|
||||
31 x 13
|
||||
32 y 32
|
||||
set autocommit = 1;
|
||||
NOP
|
||||
+1 support
|
||||
CreateTime/ModifyTime columns
|
||||
drop table if exists t2;
|
||||
create table t2 (c1 int primary key, ct datetime default now(), mt datetime default now());
|
||||
replace into t2 values (1, '2013-05-29 10:10:10', '2013-05-29 10:10:10');
|
||||
replace into t2 (c1) values (2);
|
||||
select c1 from t2;
|
||||
c1
|
||||
1
|
||||
2
|
||||
clean up
|
||||
drop table t1, t2;
|
||||
not query static data
|
||||
create table t1(c1 int primary key, c2 int, c3 varchar(10) not null, c4 timestamp not null default '2014-02-20 00:00:00.000');
|
||||
replace into t1 values(1, 1, 'aaa', '2014-02-21'), (2, 2, 'bbb', '2014-02-22'), (3, 3, 'ccc', '2014-02-23'), (4, 4, 'bbb', '2014-02-24');
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 1 aaa 2014-02-21 00:00:00
|
||||
2 2 bbb 2014-02-22 00:00:00
|
||||
3 3 ccc 2014-02-23 00:00:00
|
||||
4 4 bbb 2014-02-24 00:00:00
|
||||
replace into t1(c1, c2, c3) values(5, 5, 'aaa');
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 1 aaa 2014-02-21 00:00:00
|
||||
2 2 bbb 2014-02-22 00:00:00
|
||||
3 3 ccc 2014-02-23 00:00:00
|
||||
4 4 bbb 2014-02-24 00:00:00
|
||||
5 5 aaa 2014-02-20 00:00:00
|
||||
replace into t1(c1, c3) values(1, 'abc'), (2, 'bac'), (3, 'cba');
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 NULL abc 2014-02-20 00:00:00
|
||||
2 NULL bac 2014-02-20 00:00:00
|
||||
3 NULL cba 2014-02-20 00:00:00
|
||||
4 4 bbb 2014-02-24 00:00:00
|
||||
5 5 aaa 2014-02-20 00:00:00
|
||||
drop table if exists t1;
|
||||
create table t1(
|
||||
c1 int primary key,
|
||||
c2 float not null,
|
||||
c3 varchar(20) not null default 'aaa',
|
||||
c4 timestamp not null default '2014-02-20');
|
||||
create index t1_c3 on t1(c3);
|
||||
query static data
|
||||
replace into t1(c1, c2) values(1, 2.0), (2, 3.0), (3, 4.0);
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 2 aaa 2014-02-20 00:00:00
|
||||
2 3 aaa 2014-02-20 00:00:00
|
||||
3 4 aaa 2014-02-20 00:00:00
|
||||
replace into t1(c1, c2) values(1, 3.0);
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 3 aaa 2014-02-20 00:00:00
|
||||
2 3 aaa 2014-02-20 00:00:00
|
||||
3 4 aaa 2014-02-20 00:00:00
|
||||
test replace default now()
|
||||
drop table if exists t1;
|
||||
create table t1(
|
||||
c1 int primary key,
|
||||
c2 int,
|
||||
c3 varchar(20),
|
||||
c4 timestamp default now());
|
||||
replace into t1 values(1, 1, 'aa', now());
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 1 aa time
|
||||
replace into t1(c1, c2) values(1, 2), (2, 3), (3, 4);
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 2 NULL time
|
||||
2 3 NULL time
|
||||
3 4 NULL time
|
||||
replace into t1(c1, c4) values(2, date_add(now(), interval 1 minute)), (4, date_add(now(), interval 2 minute));
|
||||
select * from t1;
|
||||
c1 c2 c3 c4
|
||||
1 2 NULL time
|
||||
2 NULL NULL time
|
||||
3 4 NULL time
|
||||
4 NULL NULL time
|
||||
drop table t1;
|
||||
create table t1 (c1 int primary key, c2 int, unique key i2 (c2));
|
||||
replace into t1 values (1, 1);
|
||||
replace into t1 values (2, 1);
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 1
|
||||
drop table t1;
|
||||
@ -0,0 +1,186 @@
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (pk int primary key, v varchar(254));
|
||||
insert into t1 values (1, 'This is a test ');
|
||||
insert into t1 values (2, 'Some sample data');
|
||||
insert into t1 values (3, ' garbage ');
|
||||
insert into t1 values (4, ' This is a test ');
|
||||
insert into t1 values (5, 'This is a test');
|
||||
insert into t1 values (6, 'Hello world');
|
||||
insert into t1 values (7, 'Foo bar');
|
||||
insert into t1 values (8, 'This is a test');
|
||||
insert into t1 values (9, 'MySQL varchar test');
|
||||
insert into t1 values (10, 'test MySQL varchar');
|
||||
insert into t1 values (11, 'This is a long string to have some random length data included');
|
||||
insert into t1 values (12, 'Short string');
|
||||
insert into t1 values (13, 'VSS');
|
||||
insert into t1 values (14, 'Some samples');
|
||||
insert into t1 values (15, 'Bar foo');
|
||||
insert into t1 values (16, 'Bye');
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
pk v
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
pk v
|
||||
1 This is a test
|
||||
5 This is a test
|
||||
8 This is a test
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
pk v
|
||||
12 Short string
|
||||
2 Some sample data
|
||||
14 Some samples
|
||||
57
tools/deploy/mysql_test/test_suite/datatype/t/bool.test
Normal file
57
tools/deploy/mysql_test/test_suite/datatype/t/bool.test
Normal file
@ -0,0 +1,57 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
#### owner: kaizhan.dkz
|
||||
#### owner group: sql3
|
||||
#### description: Test of boolean operations with NULL
|
||||
--enable_abort_on_error
|
||||
#
|
||||
# Test of boolean operations with NULL
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS a1;
|
||||
--enable_warnings
|
||||
|
||||
#SELECT IF(NULL AND 1, 1, 2), IF(1 AND NULL, 1, 2);
|
||||
SELECT NULL AND 1, 1 AND NULL, 0 AND NULL, NULL and 0;
|
||||
|
||||
create table a1 (rowkey_suffix int primary key, price int);
|
||||
insert into a1(rowkey_suffix, price) values (0,0),(1,1),(2,2);
|
||||
#SELECT * FROM a1 WHERE IF(price AND 1, 0, 1);
|
||||
#SELECT * FROM a1 WHERE IF(1 AND price, 0, 1);
|
||||
SELECT * FROM a1 where NOT(price AND 1);
|
||||
SELECT * FROM a1 where NOT(1 AND price);
|
||||
SELECT * FROM a1 where (price AND 1)=false;
|
||||
SELECT * FROM a1 where (1 AND price)=false;
|
||||
SELECT * FROM a1 where (1 AND price)=true;
|
||||
SELECT * FROM a1 where (1 AND price) IS NULL;
|
||||
|
||||
# WL#638 - Behaviour of NOT does not follow SQL specification
|
||||
#set sql_mode='high_not_precedence';
|
||||
select * from a1 where not price between 2 and 3;
|
||||
#set sql_mode=default;
|
||||
select * from a1 where not price between 2 and 3;
|
||||
|
||||
# SQL boolean tests
|
||||
select rowkey_suffix, price is false, price is true, price is unknown from a1;
|
||||
select rowkey_suffix, price is not false, price is not true, price is not unknown from a1;
|
||||
|
||||
# Verify that NULL optimisation works in AND clause:
|
||||
#SET @a=0, @b=0;
|
||||
#SELECT * FROM a1 WHERE NULL AND (@a:=@a+1);
|
||||
#SELECT * FROM a1 WHERE NOT(a>=0 AND NULL AND (@b:=@b+1));
|
||||
#SELECT * FROM a1 WHERE a=2 OR (NULL AND (@a:=@a+1));
|
||||
#SELECT * FROM a1 WHERE NOT(a=2 OR (NULL AND (@b:=@b+1)));
|
||||
DROP TABLE a1;
|
||||
|
||||
#
|
||||
## http://bugfree.corp.taobao.com/bug/200762
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS ob_new_sql_test;
|
||||
--enable_warnings
|
||||
create table ob_new_sql_test ( c0 varchar(20), c1 int primary key);
|
||||
insert into ob_new_sql_test (c0, c1) values ('hello', 0);
|
||||
insert into ob_new_sql_test (c0, c1) values ('hello', 1);
|
||||
drop table ob_new_sql_test;
|
||||
1703
tools/deploy/mysql_test/test_suite/datatype/t/div.test
Normal file
1703
tools/deploy/mysql_test/test_suite/datatype/t/div.test
Normal file
File diff suppressed because it is too large
Load Diff
1764
tools/deploy/mysql_test/test_suite/datatype/t/minus.test
Normal file
1764
tools/deploy/mysql_test/test_suite/datatype/t/minus.test
Normal file
File diff suppressed because it is too large
Load Diff
60
tools/deploy/mysql_test/test_suite/datatype/t/null2.test
Normal file
60
tools/deploy/mysql_test/test_suite/datatype/t/null2.test
Normal file
@ -0,0 +1,60 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
#### owner: zuojiao.hzj
|
||||
#### owner group: sql3
|
||||
#### description: 测试NULL参与运算的一些case
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(pk1 int, pk2 int, pk3 int, extra int, primary key(pk1));
|
||||
|
||||
insert into t1(pk1,pk2,pk3) values(1,1,1),(2,2,2);
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(3,null,null,NULL);
|
||||
select * from t1;
|
||||
|
||||
|
||||
select * from t1 where extra = NULL;
|
||||
select * from t1 where extra != NULL;
|
||||
select * from t1 where extra is NULL;
|
||||
select * from t1 where extra is not NULL;
|
||||
select * from t1 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
select * from t1 where pk1 = NULL and pk3 = NULL and pk3 = NULL;
|
||||
select * from t1 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
select * from t1 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
select * from t1 where pk1 in (NULL) and pk2 in (NULL) and pk3 in (NULL);
|
||||
select * from t1 where pk1 in (NULL,1) and pk2 in (NULL, 1);
|
||||
|
||||
update t1 set extra=4 where pk1 = NULL and pk2 = NULL and pk3 = NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=1 where pk1 is NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=2 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=3 where pk1 is not NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=4 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=5 where pk1 != NULL;
|
||||
select * from t1;
|
||||
update t1 set extra=6 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
select * from t1;
|
||||
|
||||
delete from t1 where pk1 != NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 != NULL and pk2 != NULL and pk3 != NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 = NULL and pk2 = NULL and pk3 = NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 is NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 is NULL and pk2 is NULL and pk3 is NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 is not NULL and pk2 is not NULL and pk3 is not NULL;
|
||||
select * from t1;
|
||||
delete from t1 where pk1 is not NULL;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
156
tools/deploy/mysql_test/test_suite/datatype/t/replace.test
Normal file
156
tools/deploy/mysql_test/test_suite/datatype/t/replace.test
Normal file
@ -0,0 +1,156 @@
|
||||
# owner: kaizhan.dkz
|
||||
# owner group: SQL1
|
||||
# description:
|
||||
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int, c2 varchar(1024), c3 int, primary key (c1));
|
||||
|
||||
--echo basic case
|
||||
replace into t1 values (1, 'a', 1), (2, 'b', NULL);
|
||||
select * from t1;
|
||||
delete from t1 where c1=1;
|
||||
replace into t1 values (1, 'a', 2);
|
||||
select * from t1;
|
||||
replace into t1 values (1, 'a', 3), (1, 'a', 4);
|
||||
select * from t1;
|
||||
|
||||
--echo only rowkey
|
||||
replace into t1(c1,c2) values (3, 'c');
|
||||
select * from t1;
|
||||
|
||||
--echo type conversion
|
||||
replace into t1 values ('4', 4, '4'), (5, 'd', '5');
|
||||
select * from t1;
|
||||
|
||||
--echo cons rowkey
|
||||
replace into t1 (c3, c2, c1) values (9, 'a', 8), (7, 'b', 6);
|
||||
select * from t1;
|
||||
|
||||
--echo null rowkey
|
||||
#-- affect_rows 3
|
||||
replace into t1 values (10, 1, NULL), (11, NULL, 2), (12, 'ULL', 3);
|
||||
select * from t1;
|
||||
|
||||
--echo ps
|
||||
#prepare stmt1 from replace into t1 values (?, ?, ?), (?, ?, ?);
|
||||
#set @v1 = 11;
|
||||
#set @v2 = 'a';
|
||||
#set @v3 = NULL;
|
||||
#set @v4 = 12;
|
||||
#set @v5 = 'b';
|
||||
#execute stmt1 using @v1, @v2, @v3, @v4, @v5, @v4;
|
||||
#select * from t1;
|
||||
|
||||
--echo transaction
|
||||
start transaction;
|
||||
replace into t1 values (31, 'x', 13);
|
||||
select * from t1 where c1 = 31 and c2 = 'x' for update;
|
||||
rollback;
|
||||
select * from t1;
|
||||
|
||||
start transaction;
|
||||
replace into t1 values (31, 'x', 13);
|
||||
select * from t1 where c1 = 31 and c2 = 'x' for update;
|
||||
commit;
|
||||
select * from t1;
|
||||
|
||||
set autocommit = 0;
|
||||
replace into t1 values (32, 'y', 23);
|
||||
replace into t1 values (32, 'y', 32);
|
||||
commit;
|
||||
select * from t1;
|
||||
set autocommit = 1;
|
||||
|
||||
--echo NOP
|
||||
--echo +1 support
|
||||
--echo CreateTime/ModifyTime columns
|
||||
--disable_warnings
|
||||
drop table if exists t2;
|
||||
--enable_warnings
|
||||
create table t2 (c1 int primary key, ct datetime default now(), mt datetime default now());
|
||||
replace into t2 values (1, '2013-05-29 10:10:10', '2013-05-29 10:10:10');
|
||||
replace into t2 (c1) values (2);
|
||||
select c1 from t2;
|
||||
|
||||
--echo clean up
|
||||
drop table t1, t2;
|
||||
|
||||
--echo not query static data
|
||||
create table t1(c1 int primary key, c2 int, c3 varchar(10) not null, c4 timestamp not null default '2014-02-20 00:00:00.000');
|
||||
replace into t1 values(1, 1, 'aaa', '2014-02-21'), (2, 2, 'bbb', '2014-02-22'), (3, 3, 'ccc', '2014-02-23'), (4, 4, 'bbb', '2014-02-24');
|
||||
select * from t1;
|
||||
#c4 include not null and default value, not need to query static data
|
||||
replace into t1(c1, c2, c3) values(5, 5, 'aaa');
|
||||
select * from t1;
|
||||
#c3 include not null but don't include default value, if replace specify c3, also not need to query static data
|
||||
replace into t1(c1, c3) values(1, 'abc'), (2, 'bac'), (3, 'cba');
|
||||
select * from t1;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(
|
||||
c1 int primary key,
|
||||
c2 float not null,
|
||||
c3 varchar(20) not null default 'aaa',
|
||||
c4 timestamp not null default '2014-02-20');
|
||||
create index t1_c3 on t1(c3);
|
||||
|
||||
#if include index, whether index column specified, always query static data
|
||||
--echo query static data
|
||||
replace into t1(c1, c2) values(1, 2.0), (2, 3.0), (3, 4.0);
|
||||
select * from t1;
|
||||
#query static data, and c2 not allow to be inserted with NULL
|
||||
#--error 4152
|
||||
#replace into t1(c1, c3) values(2, 'bbb'), (5, 'ccc');
|
||||
#select * from t1;
|
||||
#table include 1, 2.0, so replace use semantic 'UPDATE'
|
||||
replace into t1(c1, c2) values(1, 3.0);
|
||||
select * from t1;
|
||||
#not specify c2, but table has static data (2, 3.0, 'aaa', '2014-02-20'), so replace will succeed
|
||||
#replace into t1(c1, c3) values(2, 'ccc');
|
||||
#replace into t1 values(1, 4.0, 'ddd', '2014-02-21');
|
||||
#select * from t1;
|
||||
#--echo test replace ps
|
||||
#prepare stmt1 from replace into t1(c1, c2, c3) values(3, ?, ?);
|
||||
#set @c2=3.0;
|
||||
#set @c3='abc';
|
||||
#execute stmt1 using @c2, @c3;
|
||||
#select * from t1;
|
||||
#set @c2=4.0;
|
||||
#set @c3='ddd';
|
||||
#execute stmt1 using @c2, @c3;
|
||||
#select * from t1;
|
||||
#drop table t1;
|
||||
--echo test replace default now()
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(
|
||||
c1 int primary key,
|
||||
c2 int,
|
||||
c3 varchar(20),
|
||||
c4 timestamp default now());
|
||||
#if replace not specify timestamp default now() column, will query static data
|
||||
replace into t1 values(1, 1, 'aa', now());
|
||||
--replace_column 4 time
|
||||
select * from t1;
|
||||
replace into t1(c1, c2) values(1, 2), (2, 3), (3, 4);
|
||||
--replace_column 4 time
|
||||
select * from t1;
|
||||
#if replace specify timestamp default now() column, will not query static data
|
||||
replace into t1(c1, c4) values(2, date_add(now(), interval 1 minute)), (4, date_add(now(), interval 2 minute));
|
||||
--replace_column 4 time
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (c1 int primary key, c2 int, unique key i2 (c2));
|
||||
replace into t1 values (1, 1);
|
||||
replace into t1 values (2, 1);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
@ -0,0 +1,102 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: jim.wjh
|
||||
# owner group: SQL3
|
||||
# Test of varchar functions
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
#
|
||||
##
|
||||
## Test with varchar of lengths 254,255,256,258 & 258 to ensure we don't
|
||||
## have any problems with varchar with one or two byte length_bytes
|
||||
##
|
||||
#
|
||||
create table t1 (pk int primary key, v varchar(254));
|
||||
insert into t1 values (1, 'This is a test ');
|
||||
insert into t1 values (2, 'Some sample data');
|
||||
insert into t1 values (3, ' garbage ');
|
||||
insert into t1 values (4, ' This is a test ');
|
||||
insert into t1 values (5, 'This is a test');
|
||||
insert into t1 values (6, 'Hello world');
|
||||
insert into t1 values (7, 'Foo bar');
|
||||
insert into t1 values (8, 'This is a test');
|
||||
insert into t1 values (9, 'MySQL varchar test');
|
||||
insert into t1 values (10, 'test MySQL varchar');
|
||||
insert into t1 values (11, 'This is a long string to have some random length data included');
|
||||
insert into t1 values (12, 'Short string');
|
||||
insert into t1 values (13, 'VSS');
|
||||
insert into t1 values (14, 'Some samples');
|
||||
insert into t1 values (15, 'Bar foo');
|
||||
insert into t1 values (16, 'Bye');
|
||||
let $i= 255;
|
||||
let $j= 5;
|
||||
while ($j)
|
||||
{
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v like 'This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v='This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v like 'S%' order by v;
|
||||
--enable_result_log
|
||||
# eval alter table t1 change v v varchar($i);
|
||||
inc $i;
|
||||
dec $j;
|
||||
}
|
||||
let $i= 258;
|
||||
let $j= 6;
|
||||
while ($j)
|
||||
{
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v like 'This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v='This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
# explain select * from t1 where v like 'S%' order by v;
|
||||
--enable_result_log
|
||||
# eval alter table t1 change v v varchar($i);
|
||||
dec $i;
|
||||
dec $j;
|
||||
}
|
||||
#alter table t1 change v v varchar(254), drop key v;
|
||||
#
|
||||
## Test with length(varchar(1024)) > 256 and key < 256 (to ensure things works with
|
||||
## different kind of packing
|
||||
#
|
||||
#alter table t1 change v v varchar(300), add key (v(10));
|
||||
select * from t1 where v like 'This is a test' order by v;
|
||||
select * from t1 where v='This is a test' order by v;
|
||||
select * from t1 where v like 'S%' order by v;
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
#explain select * from t1 where v like 'This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
#explain select * from t1 where v='This is a test' order by v;
|
||||
--enable_result_log
|
||||
--replace_regex /Plan signature: [0-9]*/Plan signature/
|
||||
--disable_result_log
|
||||
#explain select * from t1 where v like 'S%' order by v;
|
||||
--enable_result_log
|
||||
#drop table t1;
|
||||
#
|
||||
@ -0,0 +1,66 @@
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
alter system set _lcl_op_interval = '10ms';
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
set ob_query_timeout = 1000000000;
|
||||
set ob_trx_timeout = 1000000000;
|
||||
set ob_trx_idle_timeout = 1000000000;
|
||||
set ob_query_timeout = 1000000000;
|
||||
set ob_trx_timeout = 1000000000;
|
||||
set ob_trx_idle_timeout = 1000000000;
|
||||
create table t1(a int primary key);
|
||||
create table t2(a int primary key) partition by hash(a) partitions 4;
|
||||
insert into t1 values(1);
|
||||
insert into t1 values(2);
|
||||
insert into t2 values(1);
|
||||
insert into t2 values(2);
|
||||
insert into t2 values(3);
|
||||
insert into t2 values(4);
|
||||
commit;
|
||||
begin;
|
||||
select * from t1 where a = 1 order by a for update;
|
||||
a
|
||||
1
|
||||
begin;
|
||||
select * from t1 where a = 2 order by a for update;
|
||||
a
|
||||
2
|
||||
select * from t1 where a = 1 order by a for update;
|
||||
select * from t1 where a = 2 order by a for update;
|
||||
ERROR HY000: Deadlock
|
||||
rollback;
|
||||
a
|
||||
2
|
||||
commit;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
begin;
|
||||
select * from t2 where a in (1,2) order by a for update;
|
||||
a
|
||||
1
|
||||
2
|
||||
begin;
|
||||
select * from t2 where a in (3,4) for update;
|
||||
a
|
||||
4
|
||||
3
|
||||
select * from t2 where a in (1,2) order by a for update;
|
||||
select * from t2 where a in (3,4) order by a for update;
|
||||
ERROR HY000: Deadlock
|
||||
rollback;
|
||||
a
|
||||
3
|
||||
4
|
||||
commit;
|
||||
select * from t2 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
@ -0,0 +1,102 @@
|
||||
# owner: xuwang.txw
|
||||
# owner group: transaction
|
||||
# description: this case is used for testing basic transactional deadlock detector case
|
||||
|
||||
set GLOBAL ob_query_timeout = 1000000000000;
|
||||
set GLOBAL ob_trx_timeout = 10000000000000;
|
||||
set GLOBAL ob_trx_idle_timeout = 10000000000;
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn0,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
alter system set _lcl_op_interval = '10ms';
|
||||
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
--enable_warnings
|
||||
|
||||
connection conn1;
|
||||
set ob_query_timeout = 1000000000;
|
||||
set ob_trx_timeout = 1000000000;
|
||||
set ob_trx_idle_timeout = 1000000000;
|
||||
|
||||
connection conn2;
|
||||
set ob_query_timeout = 1000000000;
|
||||
set ob_trx_timeout = 1000000000;
|
||||
set ob_trx_idle_timeout = 1000000000;
|
||||
|
||||
# single-partition table
|
||||
create table t1(a int primary key);
|
||||
# multi-partition table
|
||||
create table t2(a int primary key) partition by hash(a) partitions 4;
|
||||
insert into t1 values(1);
|
||||
insert into t1 values(2);
|
||||
insert into t2 values(1);
|
||||
insert into t2 values(2);
|
||||
insert into t2 values(3);
|
||||
insert into t2 values(4);
|
||||
commit;
|
||||
|
||||
# ================= CASE 1: local/remote execution deadlock =================
|
||||
connection conn1;
|
||||
begin;
|
||||
select * from t1 where a = 1 order by a for update;
|
||||
|
||||
connection conn2;
|
||||
sleep 1;
|
||||
# used for priority reason
|
||||
begin;
|
||||
select * from t1 where a = 2 order by a for update;
|
||||
send select * from t1 where a = 1 order by a for update;
|
||||
|
||||
connection conn1;
|
||||
sleep 1;
|
||||
send select * from t1 where a = 2 order by a for update;
|
||||
|
||||
connection conn2;
|
||||
--error 1213
|
||||
reap;
|
||||
rollback;
|
||||
|
||||
connection conn1;
|
||||
reap;
|
||||
commit;
|
||||
|
||||
select * from t1 order by a;
|
||||
# ================= CASE 1: distributed execution deadlock =================
|
||||
connection conn1;
|
||||
begin;
|
||||
select * from t2 where a in (1,2) order by a for update;
|
||||
|
||||
connection conn2;
|
||||
# used for priority reason
|
||||
sleep 1;
|
||||
begin;
|
||||
select * from t2 where a in (3,4) for update;
|
||||
send select * from t2 where a in (1,2) order by a for update;
|
||||
|
||||
connection conn1;
|
||||
send select * from t2 where a in (3,4) order by a for update;
|
||||
|
||||
connection conn2;
|
||||
--error 1213
|
||||
reap;
|
||||
rollback;
|
||||
|
||||
connection conn1;
|
||||
reap;
|
||||
commit;
|
||||
|
||||
select * from t2 order by a;
|
||||
|
||||
--disable_warnings
|
||||
connection conn1;
|
||||
--error 0,942
|
||||
drop table t1;
|
||||
--error 0,942
|
||||
drop table t2;
|
||||
--enable_warnings
|
||||
401
tools/deploy/mysql_test/test_suite/delete/r/mysql/delete.result
Normal file
401
tools/deploy/mysql_test/test_suite/delete/r/mysql/delete.result
Normal file
@ -0,0 +1,401 @@
|
||||
drop table if exists t1, t_part, t_single;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
result_format: 4
|
||||
create table t1(a int primary key, b int);
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1;
|
||||
select * from t1;
|
||||
+---+------+
|
||||
| a | b |
|
||||
+---+------+
|
||||
+---+------+
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1 where a = 1;
|
||||
delete from t1 where a = 2;
|
||||
delete from t1 where a = 3;
|
||||
select * from t1;
|
||||
+---+------+
|
||||
| a | b |
|
||||
+---+------+
|
||||
+---+------+
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1 where a=1;
|
||||
select * from t1;
|
||||
+---+------+
|
||||
| a | b |
|
||||
+---+------+
|
||||
| 2 | 0 |
|
||||
| 3 | 0 |
|
||||
+---+------+
|
||||
|
||||
insert into t1 values(1,0);
|
||||
replace into t1 values(2,0),(3,0);
|
||||
delete from t1 where a=1 or a=2 or a=3;
|
||||
select * from t1;
|
||||
+---+------+
|
||||
| a | b |
|
||||
+---+------+
|
||||
+---+------+
|
||||
|
||||
insert into t1 values(1,0),(2,0);
|
||||
delete from t1 where a=1;
|
||||
delete from t1 where a=2;
|
||||
delete from t1 where a=3;
|
||||
select * from t1;
|
||||
+---+------+
|
||||
| a | b |
|
||||
+---+------+
|
||||
+---+------+
|
||||
|
||||
drop table t1;
|
||||
|
||||
create table t_part (c1 bigint primary key, c2 bigint) partition by hash(c1) partitions 2;
|
||||
create table t_single(c1 int);
|
||||
insert into t_part(c1) values(1231346464513131);
|
||||
insert into t_part values(1, 2), (3, 1);
|
||||
insert into t_part values(2, 3), (4, 3);
|
||||
insert into t_part partition(p0, p1) values(5, 6);
|
||||
insert into t_part values('6', '6'), ('8', '8');
|
||||
delete from t_part where c1 in (select c1 from t_single);
|
||||
select * from t_part;
|
||||
+------------------+------+
|
||||
| c1 | c2 |
|
||||
+------------------+------+
|
||||
| 2 | 3 |
|
||||
| 4 | 3 |
|
||||
| 6 | 6 |
|
||||
| 8 | 8 |
|
||||
| 1 | 2 |
|
||||
| 3 | 1 |
|
||||
| 5 | 6 |
|
||||
| 1231346464513131 | NULL |
|
||||
+------------------+------+
|
||||
drop table t_part, t_single;
|
||||
|
||||
create table t2 (p1 int, p2 int, p3 int, p4 int, primary key(p1,p2,p3));
|
||||
|
||||
insert into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1 = 1;
|
||||
|
||||
select * from t2;
|
||||
+----+----+----+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----+------+
|
||||
| 5 | 4 | 4 | 0 |
|
||||
| 6 | 4 | 4 | 0 |
|
||||
| 7 | 4 | 6 | 0 |
|
||||
| 8 | 4 | 6 | 0 |
|
||||
| 9 | 4 | 6 | 0 |
|
||||
| 10 | 4 | 6 | 0 |
|
||||
| 11 | 4 | 6 | 0 |
|
||||
| 12 | 4 | 6 | 0 |
|
||||
| 13 | 4 | 6 | 0 |
|
||||
+----+----+----+------+
|
||||
select p1,p3 from t2;
|
||||
+----+----+
|
||||
| p1 | p3 |
|
||||
+----+----+
|
||||
| 5 | 4 |
|
||||
| 6 | 4 |
|
||||
| 7 | 6 |
|
||||
| 8 | 6 |
|
||||
| 9 | 6 |
|
||||
| 10 | 6 |
|
||||
| 11 | 6 |
|
||||
| 12 | 6 |
|
||||
| 13 | 6 |
|
||||
+----+----+
|
||||
|
||||
replace into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1>3 or p3 >=6;
|
||||
select * from t2;
|
||||
+----+----+----+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----+------+
|
||||
| 1 | 1 | 1 | 0 |
|
||||
| 2 | 2 | 2 | 0 |
|
||||
| 3 | 3 | 3 | 0 |
|
||||
+----+----+----+------+
|
||||
select p1,p3 from t2;
|
||||
+----+----+
|
||||
| p1 | p3 |
|
||||
+----+----+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+----+
|
||||
delete from t2 where p1=1 and p3 =2;
|
||||
select * from t2;
|
||||
+----+----+----+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----+------+
|
||||
| 1 | 1 | 1 | 0 |
|
||||
| 2 | 2 | 2 | 0 |
|
||||
| 3 | 3 | 3 | 0 |
|
||||
+----+----+----+------+
|
||||
select p1,p3 from t2;
|
||||
+----+----+
|
||||
| p1 | p3 |
|
||||
+----+----+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+----+
|
||||
delete from t2 where p1=1 and p2 =1 and p3=1;
|
||||
select * from t2;
|
||||
+----+----+----+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----+------+
|
||||
| 2 | 2 | 2 | 0 |
|
||||
| 3 | 3 | 3 | 0 |
|
||||
+----+----+----+------+
|
||||
select p1,p3 from t2;
|
||||
+----+----+
|
||||
| p1 | p3 |
|
||||
+----+----+
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+----+
|
||||
|
||||
replace into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1 in (1,2,3,6,7,8,12,13,0);
|
||||
select * from t2;
|
||||
+----+----+----+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----+------+
|
||||
| 4 | 4 | 4 | 0 |
|
||||
| 5 | 4 | 4 | 0 |
|
||||
| 9 | 4 | 6 | 0 |
|
||||
| 10 | 4 | 6 | 0 |
|
||||
| 11 | 4 | 6 | 0 |
|
||||
+----+----+----+------+
|
||||
|
||||
drop table t2;
|
||||
|
||||
create table t3 (p1 int, p2 int, p3 int, primary key(p1,p2));
|
||||
|
||||
insert into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6), (13,4,6);
|
||||
delete from t3 where p1=1 and p2=1 and p3=1;
|
||||
select * from t3;
|
||||
+----+----+------+
|
||||
| p1 | p2 | p3 |
|
||||
+----+----+------+
|
||||
| 2 | 2 | 2 |
|
||||
| 3 | 3 | 3 |
|
||||
| 4 | 4 | 4 |
|
||||
| 5 | 4 | 4 |
|
||||
| 6 | 4 | 4 |
|
||||
| 7 | 4 | 6 |
|
||||
| 8 | 4 | 6 |
|
||||
| 9 | 4 | 6 |
|
||||
| 10 | 4 | 6 |
|
||||
| 11 | 4 | 6 |
|
||||
| 12 | 4 | 6 |
|
||||
| 13 | 4 | 6 |
|
||||
+----+----+------+
|
||||
select p1,p3 from t3;
|
||||
+----+------+
|
||||
| p1 | p3 |
|
||||
+----+------+
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
| 4 | 4 |
|
||||
| 5 | 4 |
|
||||
| 6 | 4 |
|
||||
| 7 | 6 |
|
||||
| 8 | 6 |
|
||||
| 9 | 6 |
|
||||
| 10 | 6 |
|
||||
| 11 | 6 |
|
||||
| 12 | 6 |
|
||||
| 13 | 6 |
|
||||
+----+------+
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6), (13,4,6);
|
||||
delete from t3 where p1>3 or p3 >=6;
|
||||
select * from t3;
|
||||
+----+----+------+
|
||||
| p1 | p2 | p3 |
|
||||
+----+----+------+
|
||||
| 1 | 1 | 1 |
|
||||
| 2 | 2 | 2 |
|
||||
| 3 | 3 | 3 |
|
||||
+----+----+------+
|
||||
select p1,p3 from t3;
|
||||
+----+------+
|
||||
| p1 | p3 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
|
||||
delete from t3 where p1=1 and p3 =2;
|
||||
select * from t3;
|
||||
+----+----+------+
|
||||
| p1 | p2 | p3 |
|
||||
+----+----+------+
|
||||
| 1 | 1 | 1 |
|
||||
| 2 | 2 | 2 |
|
||||
| 3 | 3 | 3 |
|
||||
+----+----+------+
|
||||
select p1,p3 from t3;
|
||||
+----+------+
|
||||
| p1 | p3 |
|
||||
+----+------+
|
||||
| 1 | 1 |
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2);
|
||||
delete from t3 where p1=1 and p2 =1 and p3=1;
|
||||
select * from t3;
|
||||
+----+----+------+
|
||||
| p1 | p2 | p3 |
|
||||
+----+----+------+
|
||||
| 2 | 2 | 2 |
|
||||
| 3 | 3 | 3 |
|
||||
+----+----+------+
|
||||
select p1,p3 from t3;
|
||||
+----+------+
|
||||
| p1 | p3 |
|
||||
+----+------+
|
||||
| 2 | 2 |
|
||||
| 3 | 3 |
|
||||
+----+------+
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6),(13,4,6);
|
||||
delete from t3 where p1 in (1,2,3,6,7,8,12,13,0);
|
||||
select * from t3;
|
||||
+----+----+------+
|
||||
| p1 | p2 | p3 |
|
||||
+----+----+------+
|
||||
| 4 | 4 | 4 |
|
||||
| 5 | 4 | 4 |
|
||||
| 9 | 4 | 6 |
|
||||
| 10 | 4 | 6 |
|
||||
| 11 | 4 | 6 |
|
||||
+----+----+------+
|
||||
|
||||
drop table t3;
|
||||
|
||||
create table t4 (p1 varchar(100), p2 int, p3 datetime(6), p4 int, primary key(p1,p2,p3));
|
||||
|
||||
insert into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p3='2012-10-23 17:14:00';
|
||||
select * from t4;
|
||||
+----+----+----------------------------+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----------------------------+------+
|
||||
| b | 42 | 2012-10-23 17:15:00.000000 | 0 |
|
||||
| c | 43 | 2012-10-23 17:16:00.000000 | 0 |
|
||||
+----+----+----------------------------+------+
|
||||
|
||||
replace into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p2='42';
|
||||
select * from t4;
|
||||
+----+----+----------------------------+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----------------------------+------+
|
||||
| a | 41 | 2012-10-23 17:14:00.000000 | 0 |
|
||||
| c | 43 | 2012-10-23 17:16:00.000000 | 0 |
|
||||
+----+----+----------------------------+------+
|
||||
|
||||
replace into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p2<'401' and p1='c';
|
||||
select * from t4;
|
||||
+----+----+----------------------------+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----------------------------+------+
|
||||
| a | 41 | 2012-10-23 17:14:00.000000 | 0 |
|
||||
| b | 42 | 2012-10-23 17:15:00.000000 | 0 |
|
||||
+----+----+----------------------------+------+
|
||||
|
||||
delete from t4 where p1='a' and p2=41 and p3='2012-10-23 17:14:00';
|
||||
select * from t4;
|
||||
+----+----+----------------------------+------+
|
||||
| p1 | p2 | p3 | p4 |
|
||||
+----+----+----------------------------+------+
|
||||
| b | 42 | 2012-10-23 17:15:00.000000 | 0 |
|
||||
+----+----+----------------------------+------+
|
||||
|
||||
drop table t4;
|
||||
|
||||
create table t2(c1 int primary key, c2 int, c3 int);
|
||||
create table t3 (c1 int, c2 int, c3 int);
|
||||
|
||||
insert into t2 values (1, 1, 1);
|
||||
insert into t2 values (2, 2, 2);
|
||||
insert into t2 values (3, 2, 3);
|
||||
insert into t2 values (4, 6, 4);
|
||||
insert into t2 values (5, 4, 3);
|
||||
insert into t2 values (6, 4, 2);
|
||||
insert into t3 values(2, 2, 2);
|
||||
insert into t3 values(3, 3, 3);
|
||||
insert into t3 values(4, 4, 4);
|
||||
insert into t3 values(5, 5, 5);
|
||||
|
||||
delete t3 from t3, t2 where t3.c1 = t2.c2;
|
||||
delete t3 from t3, t2 where t3.c1 = t2.c1;
|
||||
delete t3, t33 from t3 left join t3 as t33 on t3.c1 = t33.c1;
|
||||
ERROR 0A000: multiple aliases to same table not supported
|
||||
select * from t3;
|
||||
+------+------+------+
|
||||
| c1 | c2 | c3 |
|
||||
+------+------+------+
|
||||
+------+------+------+
|
||||
select * from t2;
|
||||
+----+------+------+
|
||||
| c1 | c2 | c3 |
|
||||
+----+------+------+
|
||||
| 1 | 1 | 1 |
|
||||
| 2 | 2 | 2 |
|
||||
| 3 | 2 | 3 |
|
||||
| 4 | 6 | 4 |
|
||||
| 5 | 4 | 3 |
|
||||
| 6 | 4 | 2 |
|
||||
+----+------+------+
|
||||
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
||||
drop table if exists dns_inner_resource_record_info;
|
||||
CREATE TABLE `dns_inner_resource_record_info`(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`owner` varchar(256) NOT NULL COMMENT '资源',
|
||||
`cluster_name` varchar(20) NOT NULL COMMENT '所属集群 冗余字段',
|
||||
`zone_name` varchar(255) NOT NULL DEFAULT '' COMMENT 'ZONE NAME',
|
||||
`view_group_name` varchar(60) DEFAULT '' COMMENT 'VIEW GRP name',
|
||||
`domain_group_name` varchar(60) DEFAULT NULL COMMENT '域名组',
|
||||
`idc_id` varchar(20) DEFAULT NULL COMMENT 'IDC ID',
|
||||
`rr_type` varchar(10) NOT NULL COMMENT '资源类型',
|
||||
`ttl` varchar(20) NOT NULL DEFAULT '' COMMENT 'TTL',
|
||||
`rr_class` varchar(12) NOT NULL DEFAULT '' COMMENT 'RECODR 类型',
|
||||
`data` varchar(500) NOT NULL COMMENT '数据',
|
||||
`status` varchar(10) DEFAULT NULL COMMENT '状态',
|
||||
`gmt_create` datetime NOT NULL COMMENT '创建时间',
|
||||
`gmt_modified` datetime DEFAULT NULL COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `rrdata` (`data`(383)) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `rrtype` (`rr_type`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `owner` (`owner`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `cluster` (`cluster_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `zonename` (`zone_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `viewgroupname` (`view_group_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `domain_group_name` (`domain_group_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `idc_id` (`idc_id`) BLOCK_SIZE 16384 GLOBAL
|
||||
) COMMENT = 'dns 内网集群资源记录表';
|
||||
delete from dns_inner_resource_record_info WHERE cluster_name = "1";
|
||||
set binlog_row_image='MINIMAL';
|
||||
delete from dns_inner_resource_record_info WHERE cluster_name = "1";
|
||||
drop table dns_inner_resource_record_info;
|
||||
|
||||
@ -0,0 +1,166 @@
|
||||
can't determine a row
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1 in(1);
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where c1 in(1,2);
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1>=3;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1<=1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 1>=c1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 3<=c1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
delete from t1 where 2<=c1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1>1 and c1<3;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
1 1
|
||||
3 3
|
||||
delete from t1 where c1=1 or c1=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1<1 or c1<2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1=1 and c1=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1>1 and c1=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2 in(1);
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where c2 in(1,2);
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c2>=3;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2<=1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 1>=c2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 3<=c2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
delete from t1 where c2>1 and c2<3;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
delete from t1 where c2=1 or c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
delete from t1 where c2<1 or c2<2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
delete from t1 where c2=1 and c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
delete from t1 where c2>1 and c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where (c1,c2) in((1,1));
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where (c1,c2) in((1,1),(2,2));
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where (c2,c1) in((1,1));
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where (c2,c1) in((1,1),(2,2));
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1 > 1 and c2 >10 and c1=1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c1 > 1 or c2 >10 and c1=1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
drop table if exists t1;
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2<=1;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 1>=c2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
3 3
|
||||
delete from t1 where 3<=c2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
2 2
|
||||
delete from t1 where c2>1 and c2<3;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2=1 or c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c2<1 or c2<2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c2=1 and c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
delete from t1 where c2>1 and c2=2;
|
||||
select * from t1;
|
||||
c1 c2
|
||||
3 3
|
||||
drop table if exists t1;
|
||||
@ -0,0 +1,258 @@
|
||||
drop table if exists t1;
|
||||
create table t1 (a int, b int, primary key (a));
|
||||
insert into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a=1;
|
||||
delete from t1 where a>0;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<5;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a>1;
|
||||
select * from t1;
|
||||
a b
|
||||
1 1
|
||||
replace into t1(a,b) values(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<4;
|
||||
select * from t1;
|
||||
a b
|
||||
4 1
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1);
|
||||
delete from t1 where a>=1;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<=5;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a>0 and a<2;
|
||||
delete from t1 where a>=2 and a<3;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a=1 or a=2 or a=3 or a=4;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>0;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<6;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>1;
|
||||
select * from t1;
|
||||
a b
|
||||
1 1
|
||||
replace into t1(a,b) values(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<5;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>=1;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<=7;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>0 and b<2;
|
||||
delete from t1 where b>=2 and b<3;
|
||||
delete from t1 where b>=3 and b<=4;
|
||||
select * from t1;
|
||||
a b
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b=1 or b=2 or b=3 or b=4;
|
||||
select * from t1;
|
||||
a b
|
||||
drop table if exists t1;
|
||||
create table t1(a int, b int, c int, primary key(a));
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a>0 and b>1;
|
||||
delete from t1 where a<5 and b<2;
|
||||
select * from t1;
|
||||
a b c
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a>=0 and b<=1;
|
||||
delete from t1 where a<=5 and b>=2;
|
||||
select * from t1;
|
||||
a b c
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a=0 or a=1 or a=2 or b=1;
|
||||
select * from t1;
|
||||
a b c
|
||||
4 2 NULL
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where b=2 or a=1 or a=2;
|
||||
select * from t1;
|
||||
a b c
|
||||
3 1 NULL
|
||||
replace into t1(a,b,c) values(1,1,NULL),(2,2,NULL),(3,3,NULL),(4,4,NULL);
|
||||
delete from t1 where a<=1 or b>=4;
|
||||
select * from t1;
|
||||
a b c
|
||||
2 2 NULL
|
||||
3 3 NULL
|
||||
replace into t1(a,b,c) values(1,1,NULL),(2,2,NULL),(3,3,NULL),(4,4,NULL);
|
||||
delete from t1 where a>1 or b<4;
|
||||
select * from t1;
|
||||
a b c
|
||||
drop table if exists t1;
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) > (0,0);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) < (4,4);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) >= (1,1);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) <= (1,1);
|
||||
select * from t1;
|
||||
a b c d
|
||||
2 2 1 1
|
||||
3 3 1 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) in ((NULL,NULL),(0,0),(1,1),(2,2),(3,3),(4,4));
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b)=(1,1) or (a,b)=(2,2) or (a,b)=(3,3);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) in ((1,1),(2,2),(3,3));
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d) >= (1,1,1,1);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d) <= (3,3,3,3);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d)=(1,1,1,1) or (a,b,c,d)=(2,2,1,1) or (a,b,c,d)=(3,3,3,3);
|
||||
select * from t1;
|
||||
a b c d
|
||||
3 3 1 1
|
||||
drop table if exists t1;
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a = 1;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a > 0;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a >=1 ;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a < 4;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a <= 1;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a=1 or a=2 or a=3;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=1 or b=2);
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 3 1 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a>=1 and b>=2;
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
drop table if exists t1;
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a,b)>=(1,1) and c=1;
|
||||
select * from t1;
|
||||
a b c d
|
||||
2 2 2 1
|
||||
3 3 3 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a,b)>=(1,1) and c=3;
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
2 2 2 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and c>=1;
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and c<1;
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
2 2 2 1
|
||||
3 3 3 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=2 or b=3);
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=2 or b=3) and c=3;
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
2 2 2 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where a>=0 and a<=3 and b>1 and b<3;
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
3 3 3 1
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (c,d)>=(1,1);
|
||||
select * from t1;
|
||||
a b c d
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (b,a) > (1,1);
|
||||
select * from t1;
|
||||
a b c d
|
||||
1 1 1 1
|
||||
drop table if exists t1, t2, t3;
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b,c));
|
||||
insert into t1(a,b,c) values (1,1,1),(2,2,2),(3,3,3);
|
||||
delete from t1 where (a,b,c)>(0,0,0) and (a,b,c)<=(3,3,3);
|
||||
select * from t1;
|
||||
a b c d
|
||||
create table t2(a varchar(128), b varchar(128), c varchar(128), d varchar(128), primary key(a,b,c));
|
||||
insert into t2(a,b,c) values ('a','a','a'),('b','b','b'),('c','c','c');
|
||||
delete from t2 where (a,b,c)>=('a','a','b') and (a,b,c)<('b','b','c');
|
||||
select * from t2;
|
||||
a b c d
|
||||
a a a NULL
|
||||
c c c NULL
|
||||
create table t3(a int, b varchar(128), c timestamp(6) default "2012-01-01 12:00:00", d int, primary key(a,b,c));
|
||||
insert into t3(a,b,c) values (1,'a','2014-02-17'),(2,'b','2014-02-17'),(3,'c','2014-02-18');
|
||||
delete from t3 where (a,b,c)>=(1,'a','2014-02-17 00:00:00') and (a,b,c)<=(2,'b','2014-02-18');
|
||||
select * from t3;
|
||||
a b c d
|
||||
3 c 2014-02-18 00:00:00.000000 NULL
|
||||
drop table if exists t1, t2, t3;
|
||||
209
tools/deploy/mysql_test/test_suite/delete/t/delete.test
Normal file
209
tools/deploy/mysql_test/test_suite/delete/t/delete.test
Normal file
@ -0,0 +1,209 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: yuchen.wyc
|
||||
# owner group: sql1
|
||||
# 测试delete stmt
|
||||
# tags: delete,dml
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t_part, t_single;
|
||||
--enable_warnings
|
||||
--disable_warnings
|
||||
drop table if exists t2;
|
||||
--enable_warnings
|
||||
--disable_warnings
|
||||
drop table if exists t3;
|
||||
--enable_warnings
|
||||
--disable_warnings
|
||||
drop table if exists t4;
|
||||
--enable_warnings
|
||||
--result_format 4
|
||||
#--explain_protocol 2
|
||||
|
||||
#single column rowkey
|
||||
create table t1(a int primary key, b int);
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1 where a = 1;
|
||||
delete from t1 where a = 2;
|
||||
delete from t1 where a = 3;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,0),(2,0),(3,0);
|
||||
delete from t1 where a=1;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,0);
|
||||
replace into t1 values(2,0),(3,0);
|
||||
delete from t1 where a=1 or a=2 or a=3;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,0),(2,0);
|
||||
delete from t1 where a=1;
|
||||
delete from t1 where a=2;
|
||||
delete from t1 where a=3;
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
create table t_part (c1 bigint primary key, c2 bigint) partition by hash(c1) partitions 2;
|
||||
create table t_single(c1 int);
|
||||
insert into t_part(c1) values(1231346464513131);
|
||||
insert into t_part values(1, 2), (3, 1);
|
||||
insert into t_part values(2, 3), (4, 3);
|
||||
insert into t_part partition(p0, p1) values(5, 6);
|
||||
insert into t_part values('6', '6'), ('8', '8');
|
||||
delete from t_part where c1 in (select c1 from t_single);
|
||||
select * from t_part;
|
||||
drop table t_part, t_single;
|
||||
|
||||
# multi-column rowkey
|
||||
create table t2 (p1 int, p2 int, p3 int, p4 int, primary key(p1,p2,p3));
|
||||
|
||||
insert into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1 = 1;
|
||||
|
||||
--disable_query_log
|
||||
--let $p=13
|
||||
while($p>1)
|
||||
{
|
||||
eval delete from t2 where p1=$p and p2 = $p and p3=$p;
|
||||
dec $p;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
select * from t2;
|
||||
select p1,p3 from t2;
|
||||
|
||||
replace into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1>3 or p3 >=6;
|
||||
select * from t2;
|
||||
select p1,p3 from t2;
|
||||
delete from t2 where p1=1 and p3 =2;
|
||||
select * from t2;
|
||||
select p1,p3 from t2;
|
||||
delete from t2 where p1=1 and p2 =1 and p3=1;
|
||||
select * from t2;
|
||||
select p1,p3 from t2;
|
||||
|
||||
replace into t2 values(1,1,1,0),(2,2,2,0),(3,3,3,0),(4,4,4,0),(5,4,4,0),(6,4,4,0),(7,4,6,0),(8,4,6,0),(9,4,6,0),(10,4,6,0),(11,4,6,0),(12,4,6,0), (13,4,6,0);
|
||||
|
||||
delete from t2 where p1 in (1,2,3,6,7,8,12,13,0);
|
||||
select * from t2;
|
||||
|
||||
drop table t2;
|
||||
|
||||
|
||||
# mix common column and rowkey column
|
||||
create table t3 (p1 int, p2 int, p3 int, primary key(p1,p2));
|
||||
|
||||
insert into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6), (13,4,6);
|
||||
delete from t3 where p1=1 and p2=1 and p3=1;
|
||||
select * from t3;
|
||||
select p1,p3 from t3;
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6), (13,4,6);
|
||||
delete from t3 where p1>3 or p3 >=6;
|
||||
select * from t3;
|
||||
select p1,p3 from t3;
|
||||
|
||||
delete from t3 where p1=1 and p3 =2;
|
||||
select * from t3;
|
||||
select p1,p3 from t3;
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2);
|
||||
delete from t3 where p1=1 and p2 =1 and p3=1;
|
||||
select * from t3;
|
||||
select p1,p3 from t3;
|
||||
|
||||
replace into t3 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,4,4),(6,4,4),(7,4,6),(8,4,6),(9,4,6),(10,4,6),(11,4,6),(12,4,6),(13,4,6);
|
||||
delete from t3 where p1 in (1,2,3,6,7,8,12,13,0);
|
||||
select * from t3;
|
||||
|
||||
drop table t3;
|
||||
|
||||
# where clause
|
||||
create table t4 (p1 varchar(100), p2 int, p3 datetime(6), p4 int, primary key(p1,p2,p3));
|
||||
|
||||
insert into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p3='2012-10-23 17:14:00';
|
||||
select * from t4;
|
||||
|
||||
replace into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p2='42';
|
||||
select * from t4;
|
||||
|
||||
replace into t4 values('a', 41, '2012-10-23 17:14:00',0), ('b', 42, '2012-10-23 17:15:00',0), ('c', 43, '2012-10-23 17:16:00',0);
|
||||
delete from t4 where p2<'401' and p1='c';
|
||||
select * from t4;
|
||||
|
||||
delete from t4 where p1='a' and p2=41 and p3='2012-10-23 17:14:00';
|
||||
select * from t4;
|
||||
|
||||
drop table t4;
|
||||
|
||||
create table t2(c1 int primary key, c2 int, c3 int);
|
||||
create table t3 (c1 int, c2 int, c3 int);
|
||||
|
||||
insert into t2 values (1, 1, 1);
|
||||
insert into t2 values (2, 2, 2);
|
||||
insert into t2 values (3, 2, 3);
|
||||
insert into t2 values (4, 6, 4);
|
||||
insert into t2 values (5, 4, 3);
|
||||
insert into t2 values (6, 4, 2);
|
||||
insert into t3 values(2, 2, 2);
|
||||
insert into t3 values(3, 3, 3);
|
||||
insert into t3 values(4, 4, 4);
|
||||
insert into t3 values(5, 5, 5);
|
||||
|
||||
delete t3 from t3, t2 where t3.c1 = t2.c2;
|
||||
delete t3 from t3, t2 where t3.c1 = t2.c1;
|
||||
--error 1235
|
||||
delete t3, t33 from t3 left join t3 as t33 on t3.c1 = t33.c1;
|
||||
select * from t3;
|
||||
select * from t2;
|
||||
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists dns_inner_resource_record_info;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE `dns_inner_resource_record_info`(
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`owner` varchar(256) NOT NULL COMMENT '资源',
|
||||
`cluster_name` varchar(20) NOT NULL COMMENT '所属集群 冗余字段',
|
||||
`zone_name` varchar(255) NOT NULL DEFAULT '' COMMENT 'ZONE NAME',
|
||||
`view_group_name` varchar(60) DEFAULT '' COMMENT 'VIEW GRP name',
|
||||
`domain_group_name` varchar(60) DEFAULT NULL COMMENT '域名组',
|
||||
`idc_id` varchar(20) DEFAULT NULL COMMENT 'IDC ID',
|
||||
`rr_type` varchar(10) NOT NULL COMMENT '资源类型',
|
||||
`ttl` varchar(20) NOT NULL DEFAULT '' COMMENT 'TTL',
|
||||
`rr_class` varchar(12) NOT NULL DEFAULT '' COMMENT 'RECODR 类型',
|
||||
`data` varchar(500) NOT NULL COMMENT '数据',
|
||||
`status` varchar(10) DEFAULT NULL COMMENT '状态',
|
||||
`gmt_create` datetime NOT NULL COMMENT '创建时间',
|
||||
`gmt_modified` datetime DEFAULT NULL COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `rrdata` (`data`(383)) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `rrtype` (`rr_type`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `owner` (`owner`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `cluster` (`cluster_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `zonename` (`zone_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `viewgroupname` (`view_group_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `domain_group_name` (`domain_group_name`) BLOCK_SIZE 16384 GLOBAL,
|
||||
KEY `idc_id` (`idc_id`) BLOCK_SIZE 16384 GLOBAL
|
||||
) COMMENT = 'dns 内网集群资源记录表';
|
||||
delete from dns_inner_resource_record_info WHERE cluster_name = "1";
|
||||
set binlog_row_image='MINIMAL';
|
||||
delete from dns_inner_resource_record_info WHERE cluster_name = "1";
|
||||
drop table dns_inner_resource_record_info;
|
||||
|
||||
126
tools/deploy/mysql_test/test_suite/delete/t/deleteV2.test
Normal file
126
tools/deploy/mysql_test/test_suite/delete/t/deleteV2.test
Normal file
@ -0,0 +1,126 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: xiaoyi.xy
|
||||
# owner group: SQL3
|
||||
# description: 测试where比较条件的delete stmt, 单行删除
|
||||
# tags: delete,dml
|
||||
|
||||
--disable_abort_on_error
|
||||
|
||||
--echo can't determine a row
|
||||
|
||||
##case1
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1 in(1);
|
||||
select * from t1;
|
||||
delete from t1 where c1 in(1,2);
|
||||
select * from t1;
|
||||
delete from t1 where c1>=3;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1<=1;
|
||||
select * from t1;
|
||||
delete from t1 where 1>=c1;
|
||||
select * from t1;
|
||||
delete from t1 where 3<=c1;
|
||||
select * from t1;
|
||||
delete from t1 where 2<=c1;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c1>1 and c1<3;
|
||||
select * from t1;
|
||||
delete from t1 where c1=1 or c1=2;
|
||||
select * from t1;
|
||||
delete from t1 where c1<1 or c1<2;
|
||||
select * from t1;
|
||||
delete from t1 where c1=1 and c1=2;
|
||||
select * from t1;
|
||||
delete from t1 where c1>1 and c1=2;
|
||||
select * from t1;
|
||||
|
||||
##case2
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2 in(1);
|
||||
select * from t1;
|
||||
delete from t1 where c2 in(1,2);
|
||||
select * from t1;
|
||||
delete from t1 where c2>=3;
|
||||
select * from t1;
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2<=1;
|
||||
select * from t1;
|
||||
delete from t1 where 1>=c2;
|
||||
select * from t1;
|
||||
delete from t1 where 3<=c2;
|
||||
select * from t1;
|
||||
delete from t1 where c2>1 and c2<3;
|
||||
select * from t1;
|
||||
delete from t1 where c2=1 or c2=2;
|
||||
select * from t1;
|
||||
delete from t1 where c2<1 or c2<2;
|
||||
select * from t1;
|
||||
delete from t1 where c2=1 and c2=2;
|
||||
select * from t1;
|
||||
delete from t1 where c2>1 and c2=2;
|
||||
select * from t1;
|
||||
|
||||
##case3
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where (c1,c2) in((1,1));
|
||||
select * from t1;
|
||||
delete from t1 where (c1,c2) in((1,1),(2,2));
|
||||
select * from t1;
|
||||
delete from t1 where (c2,c1) in((1,1));
|
||||
select * from t1;
|
||||
delete from t1 where (c2,c1) in((1,1),(2,2));
|
||||
select * from t1;
|
||||
delete from t1 where c1 > 1 and c2 >10 and c1=1;
|
||||
select * from t1;
|
||||
delete from t1 where c1 > 1 or c2 >10 and c1=1;
|
||||
select * from t1;
|
||||
|
||||
##case4
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 int, c2 int, primary key(c1));
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2<=1;
|
||||
select * from t1;
|
||||
delete from t1 where 1>=c2;
|
||||
select * from t1;
|
||||
delete from t1 where 3<=c2;
|
||||
select * from t1;
|
||||
delete from t1 where c2>1 and c2<3;
|
||||
select * from t1;
|
||||
insert into t1 values(1,1),(2,2),(3,3);
|
||||
delete from t1 where c2=1 or c2=2;
|
||||
select * from t1;
|
||||
delete from t1 where c2<1 or c2<2;
|
||||
select * from t1;
|
||||
delete from t1 where c2=1 and c2=2;
|
||||
select * from t1;
|
||||
delete from t1 where c2>1 and c2=2;
|
||||
select * from t1;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
264
tools/deploy/mysql_test/test_suite/delete/t/delete_range.test
Normal file
264
tools/deploy/mysql_test/test_suite/delete/t/delete_range.test
Normal file
@ -0,0 +1,264 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: xiaoyi.xy
|
||||
# owner group: SQL3
|
||||
# description: 本case是为了测试delete 一个range内的数据
|
||||
# tags: delete,dml
|
||||
|
||||
####TITLE: range delete
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
####CASE: single rowkey, using rowkey, >,>=,<,<=
|
||||
create table t1 (a int, b int, primary key (a));
|
||||
insert into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a=1;
|
||||
delete from t1 where a>0;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<5;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a>1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<4;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1);
|
||||
delete from t1 where a>=1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a<=5;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a>0 and a<2;
|
||||
delete from t1 where a>=2 and a<3;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,1),(3,1),(4,1);
|
||||
delete from t1 where a=1 or a=2 or a=3 or a=4;
|
||||
select * from t1;
|
||||
|
||||
####CASE: single rowkey, using non_rowkey, >, >=, <, <=
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>0;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<6;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<5;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>=1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b<=7;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b>0 and b<2;
|
||||
delete from t1 where b>=2 and b<3;
|
||||
delete from t1 where b>=3 and b<=4;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,3),(4,4);
|
||||
delete from t1 where b=1 or b=2 or b=3 or b=4;
|
||||
select * from t1;
|
||||
|
||||
####CASE: single rowkey: using rowkey + non_rowkey, >, >=, <,<=, or
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(a int, b int, c int, primary key(a));
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a>0 and b>1;
|
||||
delete from t1 where a<5 and b<2;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a>=0 and b<=1;
|
||||
delete from t1 where a<=5 and b>=2;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where a=0 or a=1 or a=2 or b=1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b) values(1,1),(2,2),(3,1),(4,2);
|
||||
delete from t1 where b=2 or a=1 or a=2;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c) values(1,1,NULL),(2,2,NULL),(3,3,NULL),(4,4,NULL);
|
||||
delete from t1 where a<=1 or b>=4;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c) values(1,1,NULL),(2,2,NULL),(3,3,NULL),(4,4,NULL);
|
||||
delete from t1 where a>1 or b<4;
|
||||
select * from t1;
|
||||
|
||||
####CASE: two rowkeys, using rowkey, >, >=, <, <=
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) > (0,0);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) < (4,4);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) >= (1,1);
|
||||
select * from t1;
|
||||
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) <= (1,1);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) in ((NULL,NULL),(0,0),(1,1),(2,2),(3,3),(4,4));
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b)=(1,1) or (a,b)=(2,2) or (a,b)=(3,3);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b) in ((1,1),(2,2),(3,3));
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d) >= (1,1,1,1);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d) <= (3,3,3,3);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,1,1),(3,3,1,1);
|
||||
delete from t1 where (a,b,c,d)=(1,1,1,1) or (a,b,c,d)=(2,2,1,1) or (a,b,c,d)=(3,3,3,3);
|
||||
select * from t1;
|
||||
|
||||
####CASE: two rowkeys, using one of rowkey, =, >, >=, <, <=
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a = 1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a > 0;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a >=1 ;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a < 4;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a <= 1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a=1 or a=2 or a=3;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=1 or b=2);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(1,2,1,1),(1,3,1,1);
|
||||
delete from t1 where a>=1 and b>=2;
|
||||
select * from t1;
|
||||
|
||||
####CASE:two rowkeys, using rowkey + non_rowkey, >, >=, <, <=, =
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b));
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a,b)>=(1,1) and c=1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a,b)>=(1,1) and c=3;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and c>=1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and c<1;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=2 or b=3);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (a=1 or a=2 or a=3) and (b=2 or b=3) and c=3;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where a>=0 and a<=3 and b>1 and b<3;
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (c,d)>=(1,1);
|
||||
select * from t1;
|
||||
|
||||
replace into t1(a,b,c,d) values(1,1,1,1),(2,2,2,1),(3,3,3,1);
|
||||
delete from t1 where (b,a) > (1,1);
|
||||
select * from t1;
|
||||
|
||||
####CASE:multi rowkeys
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2, t3;
|
||||
--enable_warnings
|
||||
#int
|
||||
create table t1(a int, b int, c int, d int, primary key(a,b,c));
|
||||
insert into t1(a,b,c) values (1,1,1),(2,2,2),(3,3,3);
|
||||
delete from t1 where (a,b,c)>(0,0,0) and (a,b,c)<=(3,3,3);
|
||||
select * from t1;
|
||||
#varchar
|
||||
create table t2(a varchar(128), b varchar(128), c varchar(128), d varchar(128), primary key(a,b,c));
|
||||
insert into t2(a,b,c) values ('a','a','a'),('b','b','b'),('c','c','c');
|
||||
delete from t2 where (a,b,c)>=('a','a','b') and (a,b,c)<('b','b','c');
|
||||
select * from t2;
|
||||
#timestamp
|
||||
create table t3(a int, b varchar(128), c timestamp(6) default "2012-01-01 12:00:00", d int, primary key(a,b,c));
|
||||
insert into t3(a,b,c) values (1,'a','2014-02-17'),(2,'b','2014-02-17'),(3,'c','2014-02-18');
|
||||
delete from t3 where (a,b,c)>=(1,'a','2014-02-17 00:00:00') and (a,b,c)<=(2,'b','2014-02-18');
|
||||
select * from t3;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2, t3;
|
||||
--enable_warnings
|
||||
@ -0,0 +1,13 @@
|
||||
connect (obsys_for_load_data,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys_for_load_data;
|
||||
|
||||
--disable_query_log
|
||||
let $HOST_IP = query_get_value('select host_ip()',host_ip(), 1);
|
||||
let $DATA_FOLDER_NAME = data_for_mysqltest_direct_loaddata;
|
||||
let $SCP_CMD = ssh $HOST_IP 'mkdir -p "$OBSERVER_DIR/$DATA_FOLDER_NAME"' && scp -r $PWD/mysql_test/test_suite/direct_load_data/data/* $HOST_IP:"$OBSERVER_DIR/$DATA_FOLDER_NAME";
|
||||
exec $SCP_CMD;
|
||||
--enable_query_log
|
||||
|
||||
disconnect obsys_for_load_data;
|
||||
connection default;
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
use test;
|
||||
drop table if exists lineitem;
|
||||
create table lineitem(
|
||||
l_orderkey bigint NOT NULL ,
|
||||
l_partkey bigint NOT NULL ,
|
||||
l_suppkey bigint NOT NULL ,
|
||||
l_linenumber bigint NOT NULL ,
|
||||
l_quantity bigint NOT NULL ,
|
||||
l_extendedprice decimal(10,2) NOT NULL ,
|
||||
l_discount decimal(10,2) NOT NULL ,
|
||||
l_tax decimal(10,2) NOT NULL ,
|
||||
l_returnflag char(1) ,
|
||||
l_linestatus char(1) ,
|
||||
l_shipdate date ,
|
||||
l_commitdate date ,
|
||||
l_receiptdate date ,
|
||||
l_shipinstruct char(25) ,
|
||||
l_shipmode char(10) ,
|
||||
l_comment varchar(44),
|
||||
primary key(L_ORDERKEY, L_LINENUMBER)
|
||||
) partition by hash(l_orderkey) partitions 10;
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
select count(*) from lineitem;
|
||||
count(*)
|
||||
100000
|
||||
truncate table lineitem;
|
||||
set autocommit = off;
|
||||
insert into lineitem values (1,1,1,1,1,0,0,0,'a','b',0,0,0,1,1,'c');
|
||||
set @@ob_query_timeout = 1000000*30, @@ob_trx_timeout=1000000*30;
|
||||
ERROR HY000: Timeout
|
||||
rollback;
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
select count(*) from lineitem;
|
||||
count(*)
|
||||
100000
|
||||
drop table lineitem;
|
||||
@ -0,0 +1,25 @@
|
||||
use test;
|
||||
drop table if exists lineitem;
|
||||
create table lineitem(
|
||||
l_orderkey bigint NOT NULL ,
|
||||
l_partkey bigint NOT NULL ,
|
||||
l_suppkey bigint NOT NULL ,
|
||||
l_linenumber bigint NOT NULL ,
|
||||
l_quantity bigint NOT NULL ,
|
||||
l_extendedprice decimal(10,2) NOT NULL ,
|
||||
l_discount decimal(10,2) NOT NULL ,
|
||||
l_tax decimal(10,2) NOT NULL ,
|
||||
l_returnflag char(1) ,
|
||||
l_linestatus char(1) ,
|
||||
l_shipdate date ,
|
||||
l_commitdate date ,
|
||||
l_receiptdate date ,
|
||||
l_shipinstruct char(25) ,
|
||||
l_shipmode char(10) ,
|
||||
l_comment varchar(44)
|
||||
) partition by hash(l_orderkey) partitions 10;
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
select count(*) from lineitem;
|
||||
count(*)
|
||||
100000
|
||||
drop table lineitem;
|
||||
@ -0,0 +1,77 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: yuya.yu
|
||||
# owner group: Cloud Storage
|
||||
# description: direct load data
|
||||
|
||||
--source mysql_test/test_suite/direct_load_data/include/copy_data_for_direct_load.inc
|
||||
|
||||
connect (conn_query,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
--disable_warnings
|
||||
|
||||
connection default;
|
||||
--enable_query_log
|
||||
use test;
|
||||
|
||||
# Create table
|
||||
--disable_warnings
|
||||
drop table if exists lineitem;
|
||||
--enable_warnings
|
||||
create table lineitem(
|
||||
l_orderkey bigint NOT NULL ,
|
||||
l_partkey bigint NOT NULL ,
|
||||
l_suppkey bigint NOT NULL ,
|
||||
l_linenumber bigint NOT NULL ,
|
||||
l_quantity bigint NOT NULL ,
|
||||
l_extendedprice decimal(10,2) NOT NULL ,
|
||||
l_discount decimal(10,2) NOT NULL ,
|
||||
l_tax decimal(10,2) NOT NULL ,
|
||||
l_returnflag char(1) ,
|
||||
l_linestatus char(1) ,
|
||||
l_shipdate date ,
|
||||
l_commitdate date ,
|
||||
l_receiptdate date ,
|
||||
l_shipinstruct char(25) ,
|
||||
l_shipmode char(10) ,
|
||||
l_comment varchar(44),
|
||||
primary key(L_ORDERKEY, L_LINENUMBER)
|
||||
) partition by hash(l_orderkey) partitions 10;
|
||||
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
|
||||
# Start load data
|
||||
|
||||
--disable_query_log
|
||||
eval load data /*+ direct(true,0) parallel(2) load_batch_size(100) */ infile "$OBSERVER_DIR/$DATA_FOLDER_NAME/lineitem/lineitem-100k.tbl" into table lineitem fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';
|
||||
--enable_query_log
|
||||
|
||||
# Query table
|
||||
select count(*) from lineitem;
|
||||
|
||||
# Parallel dml and load data
|
||||
truncate table lineitem;
|
||||
connection conn1;
|
||||
set autocommit = off;
|
||||
insert into lineitem values (1,1,1,1,1,0,0,0,'a','b',0,0,0,1,1,'c');
|
||||
connection default;
|
||||
set @@ob_query_timeout = 1000000*30, @@ob_trx_timeout=1000000*30;
|
||||
--disable_query_log
|
||||
--error 4012
|
||||
eval load data /*+ direct(true,0) parallel(2) load_batch_size(100) */ infile "$OBSERVER_DIR/$DATA_FOLDER_NAME/lineitem/lineitem-100k.tbl" into table lineitem fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';
|
||||
--enable_query_log
|
||||
connection conn1;
|
||||
rollback;
|
||||
connection default;
|
||||
--disable_query_log
|
||||
eval load data /*+ direct(true,0) parallel(2) load_batch_size(100) */ infile "$OBSERVER_DIR/$DATA_FOLDER_NAME/lineitem/lineitem-100k.tbl" into table lineitem fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';
|
||||
--enable_query_log
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
select count(*) from lineitem;
|
||||
|
||||
disconnect conn_query;
|
||||
|
||||
# Clean Up
|
||||
drop table lineitem;
|
||||
@ -0,0 +1,53 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: yuya.yu
|
||||
# owner group: Cloud Storage
|
||||
# description: direct load data to heap table
|
||||
|
||||
--source mysql_test/test_suite/direct_load_data/include/copy_data_for_direct_load.inc
|
||||
|
||||
connect (conn_query,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
--disable_warnings
|
||||
|
||||
connection default;
|
||||
--enable_query_log
|
||||
use test;
|
||||
|
||||
# Create table
|
||||
--disable_warnings
|
||||
drop table if exists lineitem;
|
||||
--enable_warnings
|
||||
create table lineitem(
|
||||
l_orderkey bigint NOT NULL ,
|
||||
l_partkey bigint NOT NULL ,
|
||||
l_suppkey bigint NOT NULL ,
|
||||
l_linenumber bigint NOT NULL ,
|
||||
l_quantity bigint NOT NULL ,
|
||||
l_extendedprice decimal(10,2) NOT NULL ,
|
||||
l_discount decimal(10,2) NOT NULL ,
|
||||
l_tax decimal(10,2) NOT NULL ,
|
||||
l_returnflag char(1) ,
|
||||
l_linestatus char(1) ,
|
||||
l_shipdate date ,
|
||||
l_commitdate date ,
|
||||
l_receiptdate date ,
|
||||
l_shipinstruct char(25) ,
|
||||
l_shipmode char(10) ,
|
||||
l_comment varchar(44)
|
||||
) partition by hash(l_orderkey) partitions 10;
|
||||
|
||||
set @@ob_query_timeout = 1000000*60*60*10, @@ob_trx_timeout=1000000*60*60*10;
|
||||
|
||||
# Start load data
|
||||
--disable_query_log
|
||||
eval load data /*+ direct(false,0) parallel(2) load_batch_size(100) */ infile "$OBSERVER_DIR/$DATA_FOLDER_NAME/lineitem/lineitem-100k.tbl" into table lineitem fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';
|
||||
--enable_query_log
|
||||
|
||||
# Query table
|
||||
select count(*) from lineitem;
|
||||
disconnect conn_query;
|
||||
|
||||
# Clean Up
|
||||
drop table lineitem;
|
||||
@ -0,0 +1,300 @@
|
||||
drop database if exists duptable_database;
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists dup_t1;
|
||||
drop table if exists dup_t2;
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table dup_t1;
|
||||
Table Create Table
|
||||
dup_t1 CREATE TABLE `dup_t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t2;
|
||||
Table Create Table
|
||||
dup_t2 CREATE TABLE `dup_t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from dup_t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
select * from dup_t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
0
|
||||
duplicate_scope
|
||||
0
|
||||
准备: 将复制表的leader和普通表的leader分开
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
t1 语句查询普通表和复制表的场景
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
select * from t2, dup_t2 where t2.d1 = dup_t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
t2 复制表插入然后再做多表查询
|
||||
begin;
|
||||
insert into dup_t1 values (11, 11, 11);
|
||||
insert into dup_t2 values (11, 11, 11);
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
c1 c2 c3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
11 11 11 11 11 11
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
commit;
|
||||
t3 复制表先查询,在做插入
|
||||
begin;
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
c1 c2 c3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
11 11 11 11 11 11
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
insert into dup_t1 values (22, 22, 22);
|
||||
insert into dup_t2 values (22, 22, 22);
|
||||
commit;
|
||||
t4 复制表先查询,后插入,再查询
|
||||
begin;
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
c1 c2 c3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
11 11 11 11 11 11
|
||||
22 22 22 22 22 22
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
insert into dup_t1 values (33, 33, 33);
|
||||
insert into dup_t2 values (33, 33, 33);
|
||||
insert into t1 values (33, 33, 33);
|
||||
insert into t2 values (33, 33, 33);
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
c1 c2 c3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
11 11 11 11 11 11
|
||||
22 22 22 22 22 22
|
||||
33 33 33 33 33 33
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
33 33 33 33 33 33
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
33 33 33 33 33 33
|
||||
commit;
|
||||
t5 单表查询
|
||||
begin;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
33 33 33
|
||||
select * from dup_t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
11 11 11
|
||||
22 22 22
|
||||
33 33 33
|
||||
select * from t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
33 33 33
|
||||
select * from dup_t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
11 11 11
|
||||
22 22 22
|
||||
33 33 33
|
||||
commit;
|
||||
t6 测试单分区事务在执行的过程中,查询复制表的场景
|
||||
begin;
|
||||
insert into t1 values(44, 44, 44);
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
33 33 33
|
||||
44 44 44
|
||||
select * from dup_t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
11 11 11
|
||||
22 22 22
|
||||
33 33 33
|
||||
commit;
|
||||
t7 测试单分区事务在执行过程中,和复制表做join的场景
|
||||
begin;
|
||||
insert into t1 values(55, 55, 55);
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
33 33 33 33 33 33
|
||||
commit;
|
||||
将普通表leader切回来
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
use duptable_database;
|
||||
t6 测试一阶段提交
|
||||
begin;
|
||||
insert into t1 values(66, 66, 66);
|
||||
insert into dup_t1 values(66, 66, 66);
|
||||
insert into t2 values(66, 66, 66);
|
||||
commit;
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
33 33 33 33 33 33
|
||||
66 66 66 66 66 66
|
||||
begin;
|
||||
insert into t1 values(77, 77, 77);
|
||||
select * from dup_t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
11 11 11
|
||||
22 22 22
|
||||
33 33 33
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
c1 c2 c3 c1 c2 c3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
3 3 3 3 3 3
|
||||
33 33 33 33 33 33
|
||||
66 66 66 66 66 66
|
||||
insert into t2 values(77, 77, 77);
|
||||
select * from t2, dup_t2 where dup_t2.d1 = t2.d1;
|
||||
d1 d2 d3 d1 d2 d3
|
||||
1 1 1 1 1 1
|
||||
2 2 2 2 2 2
|
||||
4 4 4 4 4 4
|
||||
33 33 33 33 33 33
|
||||
commit;
|
||||
use duptable_database;
|
||||
drop table if exists tt2;
|
||||
drop table if exists dup2;
|
||||
CREATE TABLE `tt2` (
|
||||
`x` int(11) DEFAULT NULL,
|
||||
`y` int(11) DEFAULT NULL
|
||||
) partition by hash(x) partitions 2;
|
||||
CREATE TABLE `dup2` (
|
||||
`x` int(11) DEFAULT NULL,
|
||||
`y` int(11) DEFAULT NULL
|
||||
) duplicate_scope='cluster';
|
||||
insert into tt2 values(1,2),(3,4);
|
||||
insert into dup2 select * from tt2;
|
||||
select * from dup2 order by 1;
|
||||
x y
|
||||
1 2
|
||||
3 4
|
||||
drop table if exists tt2;
|
||||
drop table if exists dup2;
|
||||
@ -0,0 +1,64 @@
|
||||
set @@session.recyclebin=off;
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists dup_t1;
|
||||
drop table if exists dup_t2;
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table dup_t1;
|
||||
Table Create Table
|
||||
dup_t1 CREATE TABLE `dup_t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t2;
|
||||
Table Create Table
|
||||
dup_t2 CREATE TABLE `dup_t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
0
|
||||
duplicate_scope
|
||||
0
|
||||
准备: 将复制表的leader和普通表的leader分开
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
1
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
1
|
||||
@ -0,0 +1,164 @@
|
||||
alter system set_tp tp_name = ERRSIM_DUP_TABLE_GC_RIGHT_NOW, error_code = 4016, frequency = 0;
|
||||
alter system set_tp tp_name = ERRSIM_DUP_TABLE_GC_RIGHT_NOW, error_code = 4016, frequency = 1;
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
create table dup_t3 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 5;
|
||||
create table dup_t4 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 30;
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table dup_t1;
|
||||
Table Create Table
|
||||
dup_t1 CREATE TABLE `dup_t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t2;
|
||||
Table Create Table
|
||||
dup_t2 CREATE TABLE `dup_t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t3;
|
||||
Table Create Table
|
||||
dup_t3 CREATE TABLE `dup_t3` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) DEFAULT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
partition by hash(d1)
|
||||
(partition `p0`,
|
||||
partition `p1`,
|
||||
partition `p2`,
|
||||
partition `p3`,
|
||||
partition `p4`)
|
||||
show create table dup_t4;
|
||||
Table Create Table
|
||||
dup_t4 CREATE TABLE `dup_t4` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) DEFAULT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
partition by hash(d1)
|
||||
(partition `p0`,
|
||||
partition `p1`,
|
||||
partition `p2`,
|
||||
partition `p3`,
|
||||
partition `p4`,
|
||||
partition `p5`,
|
||||
partition `p6`,
|
||||
partition `p7`,
|
||||
partition `p8`,
|
||||
partition `p9`,
|
||||
partition `p10`,
|
||||
partition `p11`,
|
||||
partition `p12`,
|
||||
partition `p13`,
|
||||
partition `p14`,
|
||||
partition `p15`,
|
||||
partition `p16`,
|
||||
partition `p17`,
|
||||
partition `p18`,
|
||||
partition `p19`,
|
||||
partition `p20`,
|
||||
partition `p21`,
|
||||
partition `p22`,
|
||||
partition `p23`,
|
||||
partition `p24`,
|
||||
partition `p25`,
|
||||
partition `p26`,
|
||||
partition `p27`,
|
||||
partition `p28`,
|
||||
partition `p29`)
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
insert into dup_t3 select * from t1;
|
||||
insert into dup_t4 select * from t2;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from dup_t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
select * from dup_t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
select * from dup_t3;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from dup_t4;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
0
|
||||
duplicate_scope
|
||||
0
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
5
|
||||
count(*)
|
||||
30
|
||||
count(*)
|
||||
0
|
||||
ls_state
|
||||
LEADER
|
||||
sum(count)
|
||||
37
|
||||
sum(count)
|
||||
37
|
||||
count(*)
|
||||
0
|
||||
drop tenant duptable_tenant1 force;
|
||||
@ -0,0 +1,177 @@
|
||||
set @@recyclebin=off;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists dup_t1;
|
||||
drop table if exists dup_t2;
|
||||
drop table if exists dup_t3;
|
||||
drop table if exists dup_t4;
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
create table dup_t3 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 5;
|
||||
create table dup_t4 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 30;
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
show create table dup_t1;
|
||||
Table Create Table
|
||||
dup_t1 CREATE TABLE `dup_t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
`c3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`c1`, `c2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t2;
|
||||
Table Create Table
|
||||
dup_t2 CREATE TABLE `dup_t2` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) NOT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`, `d2`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
show create table dup_t3;
|
||||
Table Create Table
|
||||
dup_t3 CREATE TABLE `dup_t3` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) DEFAULT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
partition by hash(d1)
|
||||
(partition `p0`,
|
||||
partition `p1`,
|
||||
partition `p2`,
|
||||
partition `p3`,
|
||||
partition `p4`)
|
||||
show create table dup_t4;
|
||||
Table Create Table
|
||||
dup_t4 CREATE TABLE `dup_t4` (
|
||||
`d1` int(11) NOT NULL,
|
||||
`d2` int(11) DEFAULT NULL,
|
||||
`d3` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`d1`)
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10 DUPLICATE_SCOPE = 'CLUSTER'
|
||||
partition by hash(d1)
|
||||
(partition `p0`,
|
||||
partition `p1`,
|
||||
partition `p2`,
|
||||
partition `p3`,
|
||||
partition `p4`,
|
||||
partition `p5`,
|
||||
partition `p6`,
|
||||
partition `p7`,
|
||||
partition `p8`,
|
||||
partition `p9`,
|
||||
partition `p10`,
|
||||
partition `p11`,
|
||||
partition `p12`,
|
||||
partition `p13`,
|
||||
partition `p14`,
|
||||
partition `p15`,
|
||||
partition `p16`,
|
||||
partition `p17`,
|
||||
partition `p18`,
|
||||
partition `p19`,
|
||||
partition `p20`,
|
||||
partition `p21`,
|
||||
partition `p22`,
|
||||
partition `p23`,
|
||||
partition `p24`,
|
||||
partition `p25`,
|
||||
partition `p26`,
|
||||
partition `p27`,
|
||||
partition `p28`,
|
||||
partition `p29`)
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
insert into dup_t3 select * from t1;
|
||||
insert into dup_t4 select * from t2;
|
||||
select * from t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from dup_t1;
|
||||
c1 c2 c3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
select * from dup_t2;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
select * from dup_t3;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
select * from dup_t4;
|
||||
d1 d2 d3
|
||||
1 1 1
|
||||
2 2 2
|
||||
4 4 4
|
||||
count(*)
|
||||
37
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
1
|
||||
duplicate_scope
|
||||
0
|
||||
duplicate_scope
|
||||
0
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
5
|
||||
count(*)
|
||||
30
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
1
|
||||
count(*)
|
||||
5
|
||||
count(*)
|
||||
30
|
||||
count(*)
|
||||
37
|
||||
count(*)
|
||||
37
|
||||
drop tenant duptable_tenant1 force;
|
||||
@ -0,0 +1,164 @@
|
||||
drop database if exists duptable_database;
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists dup_t1;
|
||||
drop table if exists dup_t2;
|
||||
drop table if exists dup_t3;
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1));
|
||||
create table t2 (c1 int, c2 int, c3 int, primary key(c1));
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1)) duplicate_scope='cluster';
|
||||
create table dup_t2 (c1 int, c2 int, c3 int, primary key(c1)) duplicate_scope='cluster';
|
||||
create table dup_t3 (c1 int, c2 int, c3 int) duplicate_scope='cluster';
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
insert into t1 values(5, 5, 5);
|
||||
insert into t2 values(5, 5, 5);
|
||||
insert into dup_t1 values(5, 5, 5);
|
||||
insert into dup_t2 values(5, 5, 5);
|
||||
commit;
|
||||
insert into t1 values(6, 6, 6);
|
||||
insert into t2 values(6, 6, 6);
|
||||
insert into dup_t1 values(6, 6, 6);
|
||||
insert into dup_t2 values(6, 6, 6);
|
||||
commit;
|
||||
insert into t1 values(7, 7, 7);
|
||||
insert into t2 values(7, 7, 7);
|
||||
insert into dup_t1 values(7, 7, 7);
|
||||
insert into dup_t2 values(7, 7, 7);
|
||||
commit;
|
||||
insert into t1 values(8, 8, 8);
|
||||
insert into t2 values(8, 8, 8);
|
||||
insert into dup_t1 values(8, 8, 8);
|
||||
insert into dup_t2 values(8, 8, 8);
|
||||
commit;
|
||||
insert into t1 values(9, 9, 9);
|
||||
insert into t2 values(9, 9, 9);
|
||||
insert into dup_t1 values(9, 9, 9);
|
||||
insert into dup_t2 values(9, 9, 9);
|
||||
commit;
|
||||
insert into t1 values(10, 10, 10);
|
||||
insert into t2 values(10, 10, 10);
|
||||
insert into dup_t1 values(10, 10, 10);
|
||||
insert into dup_t2 values(10, 10, 10);
|
||||
commit;
|
||||
insert into t1 values(11, 11, 11);
|
||||
insert into t2 values(11, 11, 11);
|
||||
insert into dup_t1 values(11, 11, 11);
|
||||
insert into dup_t2 values(11, 11, 11);
|
||||
commit;
|
||||
insert into t1 values(12, 12, 12);
|
||||
insert into t2 values(12, 12, 12);
|
||||
insert into dup_t1 values(12, 12, 12);
|
||||
insert into dup_t2 values(12, 12, 12);
|
||||
commit;
|
||||
insert into t1 values(13, 13, 13);
|
||||
insert into t2 values(13, 13, 13);
|
||||
insert into dup_t1 values(13, 13, 13);
|
||||
insert into dup_t2 values(13, 13, 13);
|
||||
commit;
|
||||
insert into t1 values(14, 14, 14);
|
||||
insert into t2 values(14, 14, 14);
|
||||
insert into dup_t1 values(14, 14, 14);
|
||||
insert into dup_t2 values(14, 14, 14);
|
||||
commit;
|
||||
insert into t1 values(15, 15, 15);
|
||||
insert into t2 values(15, 15, 15);
|
||||
insert into dup_t1 values(15, 15, 15);
|
||||
insert into dup_t2 values(15, 15, 15);
|
||||
commit;
|
||||
insert into t1 values(16, 16, 16);
|
||||
insert into t2 values(16, 16, 16);
|
||||
insert into dup_t1 values(16, 16, 16);
|
||||
insert into dup_t2 values(16, 16, 16);
|
||||
commit;
|
||||
insert into t1 values(17, 17, 17);
|
||||
insert into t2 values(17, 17, 17);
|
||||
insert into dup_t1 values(17, 17, 17);
|
||||
insert into dup_t2 values(17, 17, 17);
|
||||
commit;
|
||||
insert into t1 values(18, 18, 18);
|
||||
insert into t2 values(18, 18, 18);
|
||||
insert into dup_t1 values(18, 18, 18);
|
||||
insert into dup_t2 values(18, 18, 18);
|
||||
commit;
|
||||
insert into t1 values(19, 19, 19);
|
||||
insert into t2 values(19, 19, 19);
|
||||
insert into dup_t1 values(19, 19, 19);
|
||||
insert into dup_t2 values(19, 19, 19);
|
||||
commit;
|
||||
insert into t1 values(20, 20, 20);
|
||||
insert into t2 values(20, 20, 20);
|
||||
insert into dup_t1 values(20, 20, 20);
|
||||
insert into dup_t2 values(20, 20, 20);
|
||||
commit;
|
||||
insert into t1 values(21, 21, 21);
|
||||
insert into t2 values(21, 21, 21);
|
||||
insert into dup_t1 values(21, 21, 21);
|
||||
insert into dup_t2 values(21, 21, 21);
|
||||
commit;
|
||||
insert into t1 values(22, 22, 22);
|
||||
insert into t2 values(22, 22, 22);
|
||||
insert into dup_t1 values(22, 22, 22);
|
||||
insert into dup_t2 values(22, 22, 22);
|
||||
commit;
|
||||
insert into t1 values(23, 23, 23);
|
||||
insert into t2 values(23, 23, 23);
|
||||
insert into dup_t1 values(23, 23, 23);
|
||||
insert into dup_t2 values(23, 23, 23);
|
||||
commit;
|
||||
insert into t1 values(24, 24, 24);
|
||||
insert into t2 values(24, 24, 24);
|
||||
insert into dup_t1 values(24, 24, 24);
|
||||
insert into dup_t2 values(24, 24, 24);
|
||||
commit;
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
ls_state
|
||||
LEADER
|
||||
count(*)
|
||||
23
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
use duptable_database;
|
||||
insert into dup_t3 select * from dup_t2;
|
||||
select count(*) from dup_t3;
|
||||
count(*)
|
||||
46
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
c1 c2 c3 c1 c2 c3
|
||||
@ -0,0 +1,264 @@
|
||||
# owner: weixiaoxian.wxx
|
||||
# owner group: transaction
|
||||
# test_no: 04001
|
||||
# tags: 4.x dup table
|
||||
# description: test 4.x basic dup table read write, test case same as "test_duplicate_table.test"
|
||||
|
||||
## build connect
|
||||
connect (obsys, $OBMYSQL_MS0, root@sys, "", oceanbase, $OBMYSQL_PORT);
|
||||
######## create duptable tenant
|
||||
connection obsys;
|
||||
--disable_warnings
|
||||
--disable_query_log
|
||||
--source mysql_test/include/check_tenant_sync.inc
|
||||
--enable_query_log
|
||||
--enable_warnings
|
||||
|
||||
####### begin test dup table
|
||||
connect (conn0,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
--disable_warnings
|
||||
drop database if exists duptable_database;
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--enable_warnings
|
||||
|
||||
## create dup table
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
|
||||
## create table
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t2;
|
||||
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
|
||||
select * from t1;
|
||||
select * from dup_t1;
|
||||
select * from t2;
|
||||
select * from dup_t2;
|
||||
|
||||
sleep 15;
|
||||
|
||||
connection obsys;
|
||||
let $tenant_id = query_get_value(select tenant_id from __all_tenant where tenant_name = 'mysql', tenant_id, 1);
|
||||
let $database_id = query_get_value(select database_id from __all_virtual_database where database_name = 'duptable_database' and tenant_id = $tenant_id, database_id, 1);
|
||||
|
||||
## check duplicate scope
|
||||
--disable_query_log
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
--enable_query_log
|
||||
|
||||
--echo 准备: 将复制表的leader和普通表的leader分开
|
||||
|
||||
## get table id
|
||||
let $t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
|
||||
## get ls id of dup table
|
||||
let $dup_t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
|
||||
## get the ip:port of dup table follower
|
||||
let $dup_t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t2_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of dup table leader
|
||||
let $dup_t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_IP, 1);
|
||||
let $dup_t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_IP, 1);
|
||||
let $dup_t2_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_PORT, 1);
|
||||
|
||||
## switch leader to dup table follower server
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$dup_t1_follow_ip:$dup_t1_follow_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$dup_t2_follow_ip:$dup_t2_follow_port' tenant='mysql';
|
||||
--enable_query_log
|
||||
|
||||
## sleep 20s wait for switch
|
||||
sleep 20;
|
||||
|
||||
## check switch leader succ
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$dup_t1_follow_ip' and SVR_PORT = '$dup_t1_follow_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$dup_t2_follow_ip' and SVR_PORT = '$dup_t2_follow_port' and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
--echo t1 语句查询普通表和复制表的场景
|
||||
connection conn0;
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
select * from t2, dup_t2 where t2.d1 = dup_t2.d1;
|
||||
|
||||
--echo t2 复制表插入然后再做多表查询
|
||||
begin;
|
||||
insert into dup_t1 values (11, 11, 11);
|
||||
insert into dup_t2 values (11, 11, 11);
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
commit;
|
||||
|
||||
--echo t3 复制表先查询,在做插入
|
||||
begin;
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
insert into dup_t1 values (22, 22, 22);
|
||||
insert into dup_t2 values (22, 22, 22);
|
||||
commit;
|
||||
|
||||
--echo t4 复制表先查询,后插入,再查询
|
||||
begin;
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
insert into dup_t1 values (33, 33, 33);
|
||||
insert into dup_t2 values (33, 33, 33);
|
||||
insert into t1 values (33, 33, 33);
|
||||
insert into t2 values (33, 33, 33);
|
||||
select * from dup_t1, dup_t2 where dup_t1.c1 = dup_t2.d1;
|
||||
select * from dup_t1, t1 where dup_t1.c1 = t1.c1;
|
||||
select * from dup_t2, t2 where dup_t2.d1 = t2.d1;
|
||||
commit;
|
||||
|
||||
--echo t5 单表查询
|
||||
begin;
|
||||
select * from t1;
|
||||
select * from dup_t1;
|
||||
select * from t2;
|
||||
select * from dup_t2;
|
||||
commit;
|
||||
|
||||
--echo t6 测试单分区事务在执行的过程中,查询复制表的场景
|
||||
begin;
|
||||
insert into t1 values(44, 44, 44);
|
||||
select * from t1;
|
||||
select * from dup_t1;
|
||||
commit;
|
||||
|
||||
--echo t7 测试单分区事务在执行过程中,和复制表做join的场景
|
||||
begin;
|
||||
insert into t1 values(55, 55, 55);
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
commit;
|
||||
|
||||
--echo 将普通表leader切回来
|
||||
connection obsys;
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$dup_t1_leader_ip:$dup_t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$dup_t2_leader_ip:$dup_t2_leader_port' tenant='mysql';
|
||||
--enable_query_log
|
||||
|
||||
sleep 20;
|
||||
|
||||
## check switch leader succ
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$dup_t1_leader_ip' and SVR_PORT = '$dup_t1_leader_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$dup_t1_leader_ip' and SVR_PORT = '$dup_t2_leader_port' and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
connection conn1;
|
||||
use duptable_database;
|
||||
--echo t6 测试一阶段提交
|
||||
begin;
|
||||
insert into t1 values(66, 66, 66);
|
||||
insert into dup_t1 values(66, 66, 66);
|
||||
insert into t2 values(66, 66, 66);
|
||||
commit;
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
|
||||
begin;
|
||||
insert into t1 values(77, 77, 77);
|
||||
select * from dup_t2;
|
||||
select * from t1, dup_t1 where t1.c1 = dup_t1.c1;
|
||||
insert into t2 values(77, 77, 77);
|
||||
select * from t2, dup_t2 where dup_t2.d1 = t2.d1;
|
||||
commit;
|
||||
|
||||
connection conn0;
|
||||
use duptable_database;
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists tt2;
|
||||
--error 0,942
|
||||
drop table if exists dup2;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
#[复制表]使用insert into select 语句插入数据会进入重试死循环
|
||||
CREATE TABLE `tt2` (
|
||||
`x` int(11) DEFAULT NULL,
|
||||
`y` int(11) DEFAULT NULL
|
||||
) partition by hash(x) partitions 2;
|
||||
|
||||
CREATE TABLE `dup2` (
|
||||
`x` int(11) DEFAULT NULL,
|
||||
`y` int(11) DEFAULT NULL
|
||||
) duplicate_scope='cluster';
|
||||
|
||||
###此处应该连备机
|
||||
insert into tt2 values(1,2),(3,4);
|
||||
insert into dup2 select * from tt2;
|
||||
sleep 10;
|
||||
select * from dup2 order by 1;
|
||||
drop table if exists tt2;
|
||||
drop table if exists dup2;
|
||||
|
||||
connection conn0;
|
||||
--disable_query_log
|
||||
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t3;
|
||||
--enable_warnings
|
||||
drop database duptable_database;
|
||||
--enable_query_log
|
||||
|
||||
disconnect conn0;
|
||||
disconnect conn1;
|
||||
disconnect obsys;
|
||||
|
||||
@ -0,0 +1,143 @@
|
||||
# owner: weixiaoxian.wxx
|
||||
# owner group: transaction
|
||||
# test_no: 04002
|
||||
# tags: 4.x dup table
|
||||
# description: test 4.x dup table basic lease, test normal and after switch leader, follower can get lease
|
||||
|
||||
## build connect
|
||||
connect (obsys, $OBMYSQL_MS0, root@sys, "", oceanbase, $OBMYSQL_PORT);
|
||||
|
||||
connection obsys;
|
||||
--disable_warnings
|
||||
--disable_query_log
|
||||
--source mysql_test/include/check_tenant_sync.inc
|
||||
--enable_query_log
|
||||
--enable_warnings
|
||||
|
||||
connect (conn0,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
## close recyclebin
|
||||
set @@session.recyclebin=off;
|
||||
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--enable_warnings
|
||||
|
||||
## create dup table
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
|
||||
## create table
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t2;
|
||||
|
||||
connection obsys;
|
||||
let $tenant_id = query_get_value(select tenant_id from __all_tenant where tenant_name = 'mysql', tenant_id, 1);
|
||||
let $database_id = query_get_value(select database_id from __all_virtual_database where database_name = 'duptable_database' and tenant_id = $tenant_id, database_id, 1);
|
||||
|
||||
## check duplicate scope
|
||||
--disable_query_log
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
--enable_query_log
|
||||
|
||||
--echo 准备: 将复制表的leader和普通表的leader分开
|
||||
|
||||
## get table id
|
||||
let $t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
|
||||
## get ls id of dup table
|
||||
let $dup_t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
|
||||
## get the ip:port of dup table follower
|
||||
let $dup_t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t2_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of dup table leader
|
||||
let $dup_t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_IP, 1);
|
||||
let $dup_t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_IP, 1);
|
||||
let $dup_t2_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_PORT, 1);
|
||||
|
||||
sleep 20;
|
||||
|
||||
## check dup_t1 lease virtual table
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_virtual_dup_ls_lease_mgr where svr_ip = '$dup_t1_leader_ip' and svr_port = $dup_t1_leader_port and follower_ip = '$dup_t1_follow_ip' and follower_port = $dup_t1_follow_port and tenant_id = $tenant_id;
|
||||
eval select count(*) from oceanbase.__all_virtual_dup_ls_lease_mgr where svr_ip = '$dup_t2_leader_ip' and svr_port = $dup_t2_leader_port and follower_ip = '$dup_t2_follow_ip' and follower_port = $dup_t2_follow_port and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
## switch leader to dup table follower server
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$dup_t1_follow_ip:$dup_t1_follow_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$dup_t2_follow_ip:$dup_t2_follow_port' tenant='mysql';
|
||||
--enable_query_log
|
||||
|
||||
## sleep 20s wait for switch leader
|
||||
sleep 20;
|
||||
|
||||
## check switch leader succ
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$dup_t1_follow_ip' and SVR_PORT = '$dup_t1_follow_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$dup_t2_follow_ip' and SVR_PORT = '$dup_t2_follow_port' and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
## check follower can get lease after switch leader
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_virtual_dup_ls_lease_mgr where svr_ip = '$dup_t1_follow_ip' and svr_port = $dup_t1_follow_port and follower_ip = '$dup_t1_leader_ip' and follower_port = $dup_t1_leader_port and tenant_id = $tenant_id;
|
||||
eval select count(*) from oceanbase.__all_virtual_dup_ls_lease_mgr where svr_ip = '$dup_t2_follow_ip' and svr_port = $dup_t2_follow_port and follower_ip = '$dup_t2_leader_ip' and follower_port = $dup_t2_leader_port and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
--disable_query_log
|
||||
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t3;
|
||||
--enable_warnings
|
||||
drop database duptable_database;
|
||||
--enable_query_log
|
||||
|
||||
disconnect conn0;
|
||||
disconnect conn1;
|
||||
disconnect obsys;
|
||||
|
||||
@ -0,0 +1,205 @@
|
||||
# owner: weixiaoxian.wxx
|
||||
# owner group: transaction
|
||||
# test_no: 04003
|
||||
# tags: 4.x dup table
|
||||
# description: test basic add and remove duplicate tablet
|
||||
|
||||
## build connect
|
||||
connect (obsys, $OBMYSQL_MS0, root@sys, "", oceanbase, $OBMYSQL_PORT);
|
||||
|
||||
connection obsys;
|
||||
--disable_warnings
|
||||
--disable_query_log
|
||||
--source mysql_test/include/check_tenant_sync.inc
|
||||
--enable_query_log
|
||||
--enable_warnings
|
||||
|
||||
let $cpu = 1;
|
||||
let $memory = '2G';
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
drop tenant if exists duptable_tenant1 force;
|
||||
DROP RESOURCE POOL IF EXISTS duptable_pool1;
|
||||
DROP RESOURCE UNIT IF EXISTS duptable_unit1;
|
||||
--enable_warnings
|
||||
|
||||
sleep 5;
|
||||
|
||||
eval CREATE RESOURCE UNIT duptable_unit1 MAX_CPU=$cpu, MEMORY_SIZE=$memory;
|
||||
eval CREATE RESOURCE POOL duptable_pool1 UNIT='duptable_unit1', UNIT_NUM=1, ZONE_LIST=('zone1', 'zone2');
|
||||
CREATE TENANT duptable_tenant1 REPLICA_NUM = 2, RESOURCE_POOL_LIST = ('duptable_pool1') set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql', lower_case_table_names = 0;
|
||||
alter tenant duptable_tenant1 set variables ob_tcp_invited_nodes='%';
|
||||
--enable_query_log
|
||||
|
||||
## set errsim to invoke gc
|
||||
alter system set_tp tp_name = ERRSIM_DUP_TABLE_GC_RIGHT_NOW, error_code = 4016, frequency = 0;
|
||||
sleep 1;
|
||||
|
||||
alter system set_tp tp_name = ERRSIM_DUP_TABLE_GC_RIGHT_NOW, error_code = 4016, frequency = 1;
|
||||
|
||||
|
||||
|
||||
####### begin test dup table
|
||||
connect (conn0,$OBMYSQL_MS0,root@duptable_tenant1,,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,root@duptable_tenant1,,test,$OBMYSQL_PORT);
|
||||
connection conn0;
|
||||
|
||||
## create dup table
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
|
||||
## create partition dup table
|
||||
create table dup_t3 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 5;
|
||||
create table dup_t4 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 30;
|
||||
|
||||
## create table
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
|
||||
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t3;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t4;
|
||||
|
||||
sleep 15;
|
||||
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
insert into dup_t3 select * from t1;
|
||||
insert into dup_t4 select * from t2;
|
||||
|
||||
select * from t1;
|
||||
select * from dup_t1;
|
||||
select * from t2;
|
||||
select * from dup_t2;
|
||||
|
||||
select * from dup_t3;
|
||||
select * from dup_t4;
|
||||
|
||||
connection obsys;
|
||||
let $tenant_id = query_get_value(select tenant_id from __all_tenant where tenant_name = 'duptable_tenant1', tenant_id, 1);
|
||||
let $database_id = query_get_value(select database_id from __all_virtual_database where database_name = 'test' and tenant_id = $tenant_id, database_id, 1);
|
||||
|
||||
## check duplicate scope
|
||||
--disable_query_log
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t3' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t4' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
--enable_query_log
|
||||
|
||||
# --echo switch leader
|
||||
|
||||
## get table id
|
||||
#############
|
||||
# /* for debug */ select table_id from oceanbase.__all_virtual_table where table_name = 'dup_t1' or table_name = 'dup_t2' or table_name = 'dup_t3' or table_name = 'dup_t4'and tenant_id = 1004;
|
||||
#############
|
||||
|
||||
let $t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t3_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t3' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t4_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t4' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
|
||||
## get ls id of dup table
|
||||
let $dup_t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t3_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t3_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t4_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t4_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
|
||||
## get the ip:port of dup table follower
|
||||
let $dup_t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of dup table leader
|
||||
let $dup_t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_IP, 1);
|
||||
let $dup_t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
connection conn0;
|
||||
## check all_tablet_to_ls;
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t1_ls_id and table_id = $dup_t1_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t2_ls_id and table_id = $dup_t2_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t3_ls_id and table_id = $dup_t3_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t4_ls_id and table_id = $dup_t4_table_id;
|
||||
--enable_query_log
|
||||
|
||||
## check tablet_set hold all dup tablets
|
||||
--disable_query_log
|
||||
# eval select sum(b.count) = count(a.tablet_id) from oceanbase.__all_tablet_to_ls as a, oceanbase.__all_virtual_dup_ls_tablet_set as b where b.ls_state = 'LEADER' and a.table_id = $dup_t1_table_id
|
||||
# or a.table_id = $dup_t2_table_id or a.table_id = $dup_t3_table_id or a.table_id = $dup_t4_table_id;
|
||||
|
||||
## check tabelt_set count follower equal to leader
|
||||
# eval select sum(count) from oceanbase.__all_virtual_dup_ls_tablet_set where attribute = 'READABLE' and ls_state = 'LEADER';
|
||||
# eval select sum(count) from oceanbase.__all_virtual_dup_ls_tablet_set where attribute = 'READABLE' and ls_state = 'FOLLOWER' limit 1;
|
||||
|
||||
## check readable_set, follower uid equal to leader
|
||||
eval select count(*) from (select unique_id not in
|
||||
(select unique_id from oceanbase.__all_virtual_dup_ls_tablet_set
|
||||
where ls_state='LEADER' and attribute ='READABLE') as res
|
||||
from oceanbase.__all_virtual_dup_ls_tablet_set
|
||||
where ls_state='FOLLOWER' and attribute='READABLE' and
|
||||
svr_ip = '$dup_t1_follow_ip' and SVR_PORT = '$dup_t1_follow_port')
|
||||
where res <> FALSE;
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
## switch leader to dup table follower server
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$dup_t1_follow_ip:$dup_t1_follow_port' tenant='duptable_tenant1';
|
||||
--enable_query_log
|
||||
|
||||
## sleep 10s wait for switch
|
||||
sleep 10;
|
||||
|
||||
## check switch leader succ
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$dup_t1_follow_ip' and SVR_PORT = '$dup_t1_follow_port' and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
sleep 10;
|
||||
|
||||
connection conn0;
|
||||
## check all_tablet_to_ls;
|
||||
--disable_query_log
|
||||
## check tabelt_set count follower equal to leader in mysql tenant
|
||||
eval select sum(count) from oceanbase.__all_virtual_dup_ls_tablet_set where attribute = 'READABLE' and ls_state = 'LEADER';
|
||||
eval select sum(count) from oceanbase.__all_virtual_dup_ls_tablet_set where attribute = 'READABLE' and svr_ip = '$dup_t1_leader_ip' and svr_port = '$dup_t1_leader_port';
|
||||
|
||||
## check follower readable_set uid equal to leader
|
||||
eval select count(*) from (select unique_id not in
|
||||
(select unique_id from oceanbase.__all_virtual_dup_ls_tablet_set
|
||||
where ls_state='LEADER' and attribute ='READABLE') as res
|
||||
from oceanbase.__all_virtual_dup_ls_tablet_set
|
||||
where ls_state='FOLLOWER' and attribute='READABLE' and
|
||||
svr_ip = '$dup_t1_leader_ip' and SVR_PORT = '$dup_t1_leader_port')
|
||||
where res <> FALSE;
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
## clean tenant
|
||||
drop tenant duptable_tenant1 force;
|
||||
|
||||
disconnect conn0;
|
||||
disconnect conn1;
|
||||
disconnect obsys;
|
||||
@ -0,0 +1,208 @@
|
||||
# owner: weixiaoxian.wxx
|
||||
# owner group: transaction
|
||||
# test_no: 04003
|
||||
# tags: 4.x dup table
|
||||
# description: test basic add and remove duplicate tablet
|
||||
|
||||
## build connect
|
||||
connect (obsys, $OBMYSQL_MS0, root@sys, "", oceanbase, $OBMYSQL_PORT);
|
||||
|
||||
connection obsys;
|
||||
--disable_warnings
|
||||
--disable_query_log
|
||||
--source mysql_test/include/check_tenant_sync.inc
|
||||
--enable_query_log
|
||||
--enable_warnings
|
||||
|
||||
let $cpu = 1;
|
||||
let $memory = '2G';
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
drop tenant if exists duptable_tenant1 force;
|
||||
DROP RESOURCE POOL IF EXISTS duptable_pool1;
|
||||
DROP RESOURCE UNIT IF EXISTS duptable_unit1;
|
||||
--enable_warnings
|
||||
|
||||
sleep 5;
|
||||
|
||||
eval CREATE RESOURCE UNIT duptable_unit1 MAX_CPU=$cpu, MEMORY_SIZE=$memory;
|
||||
eval CREATE RESOURCE POOL duptable_pool1 UNIT='duptable_unit1', UNIT_NUM=1, ZONE_LIST=('zone1', 'zone2');
|
||||
CREATE TENANT duptable_tenant1 REPLICA_NUM = 2, RESOURCE_POOL_LIST = ('duptable_pool1') set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql', lower_case_table_names = 0;
|
||||
alter tenant duptable_tenant1 set variables ob_tcp_invited_nodes='%';
|
||||
--enable_query_log
|
||||
|
||||
|
||||
|
||||
####### begin test dup table
|
||||
connect (conn0,$OBMYSQL_MS0,root@duptable_tenant1,,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,root@duptable_tenant1,,test,$OBMYSQL_PORT);
|
||||
connection conn0;
|
||||
set @@recyclebin=off;
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t3;
|
||||
--error 0,942
|
||||
drop table if exists dup_t4;
|
||||
--enable_warnings
|
||||
|
||||
## create dup table
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1, c2)) duplicate_scope='cluster';
|
||||
create table dup_t2 (d1 int, d2 int, d3 int, primary key(d1, d2)) duplicate_scope='cluster';
|
||||
|
||||
## create partition dup table
|
||||
create table dup_t3 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 5;
|
||||
create table dup_t4 (d1 int, d2 int, d3 int, primary key(d1)) duplicate_scope='cluster' PARTITION BY HASH(d1) PARTITIONS 30;
|
||||
|
||||
## create table
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1, c2));
|
||||
create table t2 (d1 int, d2 int, d3 int, primary key(d1, d2));
|
||||
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t1;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t2;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t3;
|
||||
--source mysql_test/include/show_create_table_old_version_replica2.inc
|
||||
show create table dup_t4;
|
||||
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
insert into dup_t3 select * from t1;
|
||||
insert into dup_t4 select * from t2;
|
||||
|
||||
select * from t1;
|
||||
select * from dup_t1;
|
||||
select * from t2;
|
||||
select * from dup_t2;
|
||||
|
||||
select * from dup_t3;
|
||||
select * from dup_t4;
|
||||
|
||||
sleep 15;
|
||||
|
||||
## check tablets count equal to tablet_to_ls table
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls as ls_tablet, oceanbase.__all_virtual_dup_ls_tablets as ls_dup_tablet
|
||||
where ls_dup_tablet.ls_state = 'LEADER' and ls_tablet.tablet_id = ls_dup_tablet.tablet_id and ls_tablet.ls_id = ls_dup_tablet.ls_id;
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
let $tenant_id = query_get_value(select tenant_id from __all_tenant where tenant_name = 'duptable_tenant1', tenant_id, 1);
|
||||
let $database_id = query_get_value(select database_id from __all_virtual_database where database_name = 'test' and tenant_id = $tenant_id, database_id, 1);
|
||||
|
||||
## check duplicate scope
|
||||
--disable_query_log
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t3' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 'dup_t4' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
eval select duplicate_scope from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id;
|
||||
--enable_query_log
|
||||
|
||||
# --echo 准备: 将复制表的leader和普通表的leader分开
|
||||
|
||||
## get table id
|
||||
let $t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t3_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t3' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t4_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t4' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
|
||||
## get ls id of dup table
|
||||
let $dup_t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t3_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t3_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t4_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t4_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
|
||||
## get the ip:port of dup table follower
|
||||
let $dup_t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t2_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of dup table leader
|
||||
let $dup_t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_IP, 1);
|
||||
let $dup_t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_IP, 1);
|
||||
let $dup_t2_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_PORT, 1);
|
||||
|
||||
## get duplicate ls id
|
||||
let $dup_ls_id = query_get_value(select ls_id from oceanbase.__all_virtual_ls where flag like "%DUPLICATE%" and tenant_id = $tenant_id, ls_id, 1);
|
||||
|
||||
|
||||
connection conn0;
|
||||
## check all_tablet_to_ls;
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t1_ls_id and table_id = $dup_t1_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t2_ls_id and table_id = $dup_t2_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t3_ls_id and table_id = $dup_t3_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t4_ls_id and table_id = $dup_t4_table_id;
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
## switch leader to dup table follower server
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$dup_t1_follow_ip:$dup_t1_follow_port' tenant='duptable_tenant1';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$dup_t2_follow_ip:$dup_t2_follow_port' tenant='duptable_tenant1';
|
||||
--enable_query_log
|
||||
|
||||
## sleep 20s wait for switch
|
||||
sleep 20;
|
||||
|
||||
## check switch leader succ
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$dup_t1_follow_ip' and SVR_PORT = '$dup_t1_follow_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$dup_t2_follow_ip' and SVR_PORT = '$dup_t2_follow_port' and tenant_id = $tenant_id;
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
## check all_tablet_to_ls;
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t1_ls_id and table_id = $dup_t1_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t2_ls_id and table_id = $dup_t2_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t3_ls_id and table_id = $dup_t3_table_id;
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls where ls_id= $dup_t4_ls_id and table_id = $dup_t4_table_id;
|
||||
--enable_query_log
|
||||
|
||||
## check tablets count equal to tablet_to_ls table
|
||||
--disable_query_log
|
||||
eval select count(*) from oceanbase.__all_tablet_to_ls as ls_tablet, oceanbase.__all_virtual_dup_ls_tablets as ls_dup_tablet
|
||||
where ls_dup_tablet.ls_state = 'LEADER' and ls_tablet.tablet_id = ls_dup_tablet.tablet_id and ls_tablet.ls_id = ls_dup_tablet.ls_id;
|
||||
|
||||
eval select count(*) from oceanbase.__all_virtual_dup_ls_tablets where ls_id = $dup_ls_id and tenant_id = $tenant_id and ls_state = 'LEADER';
|
||||
--enable_query_log
|
||||
|
||||
### should use errsim test gc handler
|
||||
|
||||
connection obsys;
|
||||
drop tenant duptable_tenant1 force;
|
||||
|
||||
disconnect conn0;
|
||||
disconnect conn1;
|
||||
disconnect obsys;
|
||||
|
||||
@ -0,0 +1,232 @@
|
||||
# owner: weixiaoxian.wxx
|
||||
# owner group: transaction
|
||||
# test_no: 04005
|
||||
# tags: 4.x dup table
|
||||
# description: test duplicate join, insert form select
|
||||
|
||||
## build connect
|
||||
connect (obsys, $OBMYSQL_MS0, root@sys, "", oceanbase, $OBMYSQL_PORT);
|
||||
|
||||
connection obsys;
|
||||
--disable_warnings
|
||||
--disable_query_log
|
||||
--source mysql_test/include/check_tenant_sync.inc
|
||||
--enable_query_log
|
||||
--enable_warnings
|
||||
|
||||
####### begin test dup table
|
||||
connect (conn0,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
connect (conn1,$OBMYSQL_MS0,root@mysql,,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn0;
|
||||
--disable_warnings
|
||||
drop database if exists duptable_database;
|
||||
create database duptable_database;
|
||||
use duptable_database;
|
||||
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t3;
|
||||
--enable_warnings
|
||||
|
||||
## create table
|
||||
create table t1 (c1 int, c2 int, c3 int, primary key(c1));
|
||||
create table t2 (c1 int, c2 int, c3 int, primary key(c1));
|
||||
|
||||
## create dup table
|
||||
create table dup_t1 (c1 int, c2 int, c3 int, primary key(c1)) duplicate_scope='cluster';
|
||||
create table dup_t2 (c1 int, c2 int, c3 int, primary key(c1)) duplicate_scope='cluster';
|
||||
create table dup_t3 (c1 int, c2 int, c3 int) duplicate_scope='cluster';
|
||||
|
||||
insert into t1 values(1, 1, 1);
|
||||
insert into t1 values(2, 2, 2);
|
||||
insert into t1 values(3, 3, 3);
|
||||
|
||||
insert into t2 values(1, 1, 1);
|
||||
insert into t2 values(2, 2, 2);
|
||||
insert into t2 values(4, 4, 4);
|
||||
|
||||
insert into dup_t1 select * from t1;
|
||||
insert into dup_t2 select * from t2;
|
||||
|
||||
let $test_count = 20;
|
||||
let $v_c1 = 5;
|
||||
|
||||
while ($test_count > 0)
|
||||
{
|
||||
connection conn0;
|
||||
eval insert into t1 values($v_c1, $v_c1, $v_c1);
|
||||
eval insert into t2 values($v_c1, $v_c1, $v_c1);
|
||||
eval insert into dup_t1 values($v_c1, $v_c1, $v_c1);
|
||||
eval insert into dup_t2 values($v_c1, $v_c1, $v_c1);
|
||||
inc $v_c1;
|
||||
dec $test_count;
|
||||
commit;
|
||||
}
|
||||
|
||||
## ensure normal table and dup table in one leader
|
||||
connection obsys;
|
||||
sleep 6;
|
||||
|
||||
let $tenant_id = query_get_value(select tenant_id from __all_tenant where tenant_name = 'mysql', tenant_id, 1);
|
||||
let $database_id = query_get_value(select database_id from __all_virtual_database where database_name = 'duptable_database' and tenant_id = $tenant_id, database_id, 1);
|
||||
|
||||
## get table id
|
||||
let $t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 't2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t1_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t1' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
let $dup_t2_table_id = query_get_value(select table_id from __all_virtual_table where table_name = 'dup_t2' and tenant_id = $tenant_id and database_id = $database_id, table_id, 1);
|
||||
|
||||
## get ls id
|
||||
let $dup_t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $dup_t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $dup_t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $t1_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $t1_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
let $t2_ls_id = query_get_value(select LS_ID from __all_virtual_tablet_to_ls where table_id = $t2_table_id and tenant_id = $tenant_id, LS_ID, 1);
|
||||
|
||||
##########################################
|
||||
## get the ip:port of dup table follower
|
||||
let $dup_t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $dup_t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $dup_t2_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $dup_t2_ls_id ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of dup table leader
|
||||
let $dup_t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_IP, 1);
|
||||
let $dup_t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
let $dup_t2_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_IP, 1);
|
||||
let $dup_t2_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $dup_t2_ls_id, SVR_PORT, 1);
|
||||
|
||||
###########################################
|
||||
## get the ip:port of normal table follower
|
||||
let $t1_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $t1_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_id = $t1_ls_id and ls_state = 'FOLLOWER' ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
let $t2_follow_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $t2_ls_id ORDER BY SVR_PORT, SVR_IP, 1);
|
||||
let $t2_follow_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'FOLLOWER' and ls_id = $t2_ls_id ORDER BY SVR_PORT, SVR_PORT, 1);
|
||||
|
||||
## get the ip:port of normal table leader
|
||||
let $t1_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $t1_ls_id, SVR_IP, 1);
|
||||
let $t1_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $t1_ls_id, SVR_PORT, 1);
|
||||
|
||||
let $t2_leader_ip = query_get_value(select SVR_IP from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $t2_ls_id, SVR_IP, 1);
|
||||
let $t2_leader_port = query_get_value(select SVR_PORT from __all_virtual_ls_info where tenant_id = $tenant_id and ls_state = 'LEADER' and ls_id = $t2_ls_id, SVR_PORT, 1);
|
||||
|
||||
##### switch all table leader to t1 leader
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$t1_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$t2_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
--enable_query_log
|
||||
|
||||
sleep 20;
|
||||
|
||||
##### check all table leader to t1 leader
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $t1_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $t2_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
--disable_query_log
|
||||
|
||||
### join test
|
||||
############################ nature join
|
||||
############################ inner join
|
||||
############################ left join
|
||||
############################ right join
|
||||
|
||||
connection conn1;
|
||||
use duptable_database;
|
||||
--disable_query_log
|
||||
select * from t1 join t2 on t1.c1 = t2.c1 where not exists (select * from t1 join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 inner join t2 on t1.c1 = t2.c1 where not exists (select * from t1 inner join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 left join t2 on t1.c1 = t2.c1 where not exists (select * from t1 left join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 right join t2 on t1.c1 = t2.c1 where not exists (select * from t1 right join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
--enable_query_log
|
||||
|
||||
connection obsys;
|
||||
##### switch dup table leader to t1 follower
|
||||
--disable_query_log
|
||||
eval alter system switch replica leader ls=$t1_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$t2_ls_id server='$t1_leader_ip:$t1_leader_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t1_ls_id server='$t1_follow_ip:$t1_follow_port' tenant='mysql';
|
||||
eval alter system switch replica leader ls=$dup_t2_ls_id server='$t1_follow_ip:$t1_follow_port' tenant='mysql';
|
||||
--enable_query_log
|
||||
|
||||
sleep 20;
|
||||
|
||||
##### check dup table leader to t1 follower
|
||||
--disable_query_log
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $t1_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $t2_ls_id and SVR_IP = '$t1_leader_ip' and SVR_PORT = '$t1_leader_port' and tenant_id = $tenant_id;
|
||||
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t1_ls_id and SVR_IP = '$t1_follow_ip' and SVR_PORT = '$t1_follow_port' and tenant_id = $tenant_id;
|
||||
eval select ls_state from __all_virtual_ls_info where ls_id = $dup_t2_ls_id and SVR_IP = '$t1_follow_ip' and SVR_PORT = '$t1_follow_port' and tenant_id = $tenant_id;
|
||||
--disable_query_log
|
||||
|
||||
connection conn1;
|
||||
use duptable_database;
|
||||
insert into dup_t3 select * from dup_t1;
|
||||
select count(*) from dup_t3;
|
||||
--disable_query_log
|
||||
select * from t1 join t2 on t1.c1 = t2.c1 where not exists (select * from t1 join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 inner join t2 on t1.c1 = t2.c1 where not exists (select * from t1 inner join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 left join t2 on t1.c1 = t2.c1 where not exists (select * from t1 left join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 right join t2 on t1.c1 = t2.c1 where not exists (select * from t1 right join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
use duptable_database;
|
||||
insert into dup_t3 select * from dup_t2;
|
||||
select count(*) from dup_t3;
|
||||
--disable_query_log
|
||||
#### normal join dup
|
||||
select * from t1 join t2 on t1.c1 = t2.c1 where not exists (select * from t1 join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 inner join t2 on t1.c1 = t2.c1 where not exists (select * from t1 inner join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 left join t2 on t1.c1 = t2.c1 where not exists (select * from t1 left join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 right join t2 on t1.c1 = t2.c1 where not exists (select * from t1 right join dup_t2 on t1.c1 = dup_t2.c1);
|
||||
--enable_query_log
|
||||
|
||||
--disable_query_log
|
||||
#### dup join normal
|
||||
select * from t1 join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 join t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 inner join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 inner join t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 left join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 left join t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 right join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 right join t1 on t1.c1 = dup_t2.c1);
|
||||
#### dup join dup
|
||||
select * from t1 join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 join dup_t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 inner join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 inner join dup_t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 left join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 left join dup_t1 on t1.c1 = dup_t2.c1);
|
||||
select * from t1 right join t2 on t1.c1 = t2.c1 where not exists (select * from dup_t2 right join dup_t1 on t1.c1 = dup_t2.c1);
|
||||
--enable_query_log
|
||||
|
||||
connection conn0;
|
||||
--disable_query_log
|
||||
|
||||
--disable_warnings
|
||||
--error 0,942
|
||||
drop table if exists t1;
|
||||
--error 0,942
|
||||
drop table if exists t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t1;
|
||||
--error 0,942
|
||||
drop table if exists dup_t2;
|
||||
--error 0,942
|
||||
drop table if exists dup_t3;
|
||||
--enable_warnings
|
||||
drop database duptable_database;
|
||||
--enable_query_log
|
||||
|
||||
disconnect conn0;
|
||||
disconnect conn1;
|
||||
disconnect obsys;
|
||||
6988
tools/deploy/mysql_test/test_suite/executor/r/mysql/basic.result
Normal file
6988
tools/deploy/mysql_test/test_suite/executor/r/mysql/basic.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,16 @@
|
||||
drop table if exists t_single, t_part;
|
||||
create table t_single (pk int primary key, c1 int);
|
||||
create table t_part (pk int primary key, c1 int) partition by hash(pk) partitions 2;
|
||||
insert into t_single values (1, 20), (2, 20);
|
||||
insert into t_part values (1, 2), (2, 2);
|
||||
begin;
|
||||
select * from t_single for update;
|
||||
pk c1
|
||||
1 20
|
||||
2 20
|
||||
select /*+INDEX(INFO PRIMARY) READ_CONSISTENCY(WEAK) */ * from t_single t1 join t_part t2 on t1.pk = t2.c1 order by t2.pk;
|
||||
pk c1 pk c1
|
||||
2 20 1 2
|
||||
2 20 2 2
|
||||
rollback;
|
||||
drop table t_single, t_part;
|
||||
211
tools/deploy/mysql_test/test_suite/executor/t/basic.test
Normal file
211
tools/deploy/mysql_test/test_suite/executor/t/basic.test
Normal file
@ -0,0 +1,211 @@
|
||||
# owner: yibo.tyf
|
||||
# owner group: SQL3
|
||||
# tags: optimizer
|
||||
|
||||
--source mysql_test/test_suite/executor/include/cleanup.inc
|
||||
--source mysql_test/test_suite/executor/include/load_data.inc
|
||||
|
||||
--result_format 4
|
||||
--explain_protocol 2
|
||||
--disable_abort_on_error
|
||||
|
||||
################################
|
||||
# basic
|
||||
# all kinds of receive.
|
||||
|
||||
# fifo receive
|
||||
select b, sum(a) from t_h3_01_20 group by b having sum(a) between 5 and 16 order by b;
|
||||
select b, sum(a) from t_h5_09_28 group by b having sum(a) between 13 and 24 order by b desc;
|
||||
select b, sum(a) from t_r4_01_20 group by b having sum(a) between 5 and 16 order by b;
|
||||
select b, sum(a) from t_r5_09_28 group by b having sum(a) between 13 and 24 order by b desc;
|
||||
select b, sum(a) from t_h3_r4_01_20 group by b having sum(a) between 5 and 16 order by b;
|
||||
select b, sum(a) from t_h3_r5_09_28 group by b having sum(a) between 13 and 24 order by b desc;
|
||||
select b, sum(a) from t_h5_r4_01_20 group by b having sum(a) between 5 and 16 order by b;
|
||||
select b, sum(a) from t_h5_r5_09_28 group by b having sum(a) between 13 and 24 order by b desc;
|
||||
# task order receive
|
||||
select a, b from t_r4_01_20 where a between 5 and 16 order by a;
|
||||
select a, b from t_r4_09_28 where a between 13 and 24 order by a desc;
|
||||
select a, b from t_r5_01_20 where a between 5 and 16 order by a;
|
||||
select a, b from t_r5_09_28 where a between 13 and 24 order by a desc;
|
||||
select a, b from t_h3_r4_01_20 where a = 12 order by b;
|
||||
select a, b from t_h3_r5_09_28 where a = 12 order by b desc;
|
||||
select a, b from t_h5_r4_01_20 where a = 12 order by b;
|
||||
select a, b from t_h5_r5_09_28 where a = 12 order by b desc;
|
||||
# merge sort receive
|
||||
select a, b from t_h3_01_20 where a between 5 and 16 order by b;
|
||||
select a, b from t_h5_09_28 where a between 13 and 24 order by b desc;
|
||||
select a, b from t_r4_01_20 where a between 5 and 16 order by b;
|
||||
select a, b from t_r4_09_28 where a between 13 and 24 order by b desc;
|
||||
select a, b from t_h3_r4_01_20 where a between 5 and 16 order by b;
|
||||
select a, b from t_h3_r5_09_28 where a between 13 and 24 order by b desc;
|
||||
select a, b from t_h5_r4_01_20 where a between 5 and 16 order by b;
|
||||
select a, b from t_h5_r5_09_28 where a between 13 and 24 order by b desc;
|
||||
|
||||
## check if result_type_classes of join_keys are the same when repart
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.aa;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.a;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.b;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.c;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.d;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.e;
|
||||
|
||||
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.aa;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.a;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.b;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.d;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.e;
|
||||
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.a;
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.b;
|
||||
--sorted_result
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.c;
|
||||
--sorted_result
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.d;
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.e;
|
||||
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.a;
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.b;
|
||||
--sorted_result
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.c;
|
||||
--sorted_result
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.d;
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.e;
|
||||
|
||||
#bug:
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.a;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.aa;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.b;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.bb;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.c;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.d;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.e;
|
||||
|
||||
|
||||
select * from t_r4_int t1, t_r4_int as t2 where t1.a = t2.a;
|
||||
select * from t_r4_int t1, t_r4_date as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_r4_datetime as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_r4_timestamp as t2 where t1.a = t2.c;
|
||||
|
||||
|
||||
select * from t_r4_date t1, t_r4_int as t2 where t1.c = t2.a;
|
||||
select * from t_r4_date t1, t_r4_date as t2 where t1.c = t2.c;
|
||||
select * from t_r4_date t1, t_r4_datetime as t2 where t1.c = t2.c;
|
||||
select * from t_r4_date t1, t_r4_timestamp as t2 where t1.c = t2.c;
|
||||
|
||||
select * from t_r4_datetime t1, t_r4_int as t2 where t1.c = t2.a;
|
||||
select * from t_r4_datetime t1, t_r4_date as t2 where t1.c = t2.c;
|
||||
select * from t_r4_datetime t1, t_r4_datetime as t2 where t1.c = t2.c;
|
||||
select * from t_r4_datetime t1, t_r4_timestamp as t2 where t1.c = t2.c;
|
||||
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.aa;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.a;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.b;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.c;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.d;
|
||||
select * from t_h5_int t1, t_refered as t2 where t1.a = t2.e;
|
||||
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.aa;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.a;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.b;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.d;
|
||||
select * from t_r4_int t1, t_refered as t2 where t1.a = t2.e;
|
||||
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.a;
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.b;
|
||||
--sorted_result
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.c;
|
||||
--sorted_result
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.d;
|
||||
select * from t_r4_date t1, t_refered as t2 where t1.c = t2.e;
|
||||
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.a;
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.b;
|
||||
--sorted_result
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.c;
|
||||
--sorted_result
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.d;
|
||||
select * from t_r4_datetime t1, t_refered as t2 where t1.c = t2.e;
|
||||
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a;
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.aa;
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.b;
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.c;
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.d;
|
||||
select * from t_h5_r4_int_int t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.e;
|
||||
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.a;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.aa;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.b;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.bb;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.c;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.d;
|
||||
select * from t_h5_r4_int_int_datetime t1, t_refered as t2 where t1.a = t2.a and t1.b=t2.a and t1.c = t2.e;
|
||||
|
||||
select * from t_r4_int t1, t_r4_int as t2 where t1.a = t2.a;
|
||||
select * from t_r4_int t1, t_r4_date as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_r4_datetime as t2 where t1.a = t2.c;
|
||||
select * from t_r4_int t1, t_r4_timestamp as t2 where t1.a = t2.c;
|
||||
|
||||
|
||||
select * from t_r4_date t1, t_r4_int as t2 where t1.c = t2.a;
|
||||
select * from t_r4_date t1, t_r4_date as t2 where t1.c = t2.c;
|
||||
select * from t_r4_date t1, t_r4_datetime as t2 where t1.c = t2.c;
|
||||
select * from t_r4_date t1, t_r4_timestamp as t2 where t1.c = t2.c;
|
||||
|
||||
select * from t_r4_datetime t1, t_r4_int as t2 where t1.c = t2.a;
|
||||
select * from t_r4_datetime t1, t_r4_date as t2 where t1.c = t2.c;
|
||||
select * from t_r4_datetime t1, t_r4_datetime as t2 where t1.c = t2.c;
|
||||
select * from t_r4_datetime t1, t_r4_timestamp as t2 where t1.c = t2.c;
|
||||
|
||||
|
||||
# additional case for task order with many range part.
|
||||
|
||||
select min(a) from t_many_range_part where a >= 1;
|
||||
select min(a) from t_many_range_part where a >= 6;
|
||||
select min(a) from t_many_range_part where a >= 11;
|
||||
select min(a) from t_many_range_part where a >= 16;
|
||||
select min(a) from t_many_range_part where a >= 21;
|
||||
select min(a) from t_many_range_part where a >= 26;
|
||||
select min(a) from t_many_range_part where a >= 31;
|
||||
select min(a) from t_many_range_part where a >= 36;
|
||||
select min(a) from t_many_range_part where a >= 41;
|
||||
select min(a) from t_many_range_part where a >= 46;
|
||||
|
||||
select max(a) from t_many_range_part where a >= 1;
|
||||
select max(a) from t_many_range_part where a >= 6;
|
||||
select max(a) from t_many_range_part where a >= 11;
|
||||
select max(a) from t_many_range_part where a >= 16;
|
||||
select max(a) from t_many_range_part where a >= 21;
|
||||
select max(a) from t_many_range_part where a >= 26;
|
||||
select max(a) from t_many_range_part where a >= 31;
|
||||
select max(a) from t_many_range_part where a >= 36;
|
||||
select max(a) from t_many_range_part where a >= 41;
|
||||
select max(a) from t_many_range_part where a >= 46;
|
||||
|
||||
select a from t_many_range_part where a >= 1 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 6 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 11 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 16 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 21 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 26 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 31 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 36 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 41 order by a asc limit 10;
|
||||
select a from t_many_range_part where a >= 46 order by a asc limit 10;
|
||||
|
||||
select a from t_many_range_part where a >= 1 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 6 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 11 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 16 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 21 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 26 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 31 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 36 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 41 order by a desc limit 10;
|
||||
select a from t_many_range_part where a >= 46 order by a desc limit 10;
|
||||
|
||||
|
||||
--source mysql_test/test_suite/executor/include/cleanup.inc
|
||||
33
tools/deploy/mysql_test/test_suite/executor/t/trx.test
Normal file
33
tools/deploy/mysql_test/test_suite/executor/t/trx.test
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
# owner: yuchen.wyc
|
||||
# owner group: SQL1
|
||||
# tags: optimizer
|
||||
|
||||
connect (conn1,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connect (conn2,$OBMYSQL_MS0,$OBMYSQL_USR,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
###
|
||||
# root job need start participant
|
||||
###
|
||||
connection conn1;
|
||||
--disable_warnings
|
||||
drop table if exists t_single, t_part;
|
||||
--enable_warnings
|
||||
create table t_single (pk int primary key, c1 int);
|
||||
create table t_part (pk int primary key, c1 int) partition by hash(pk) partitions 2;
|
||||
insert into t_single values (1, 20), (2, 20);
|
||||
insert into t_part values (1, 2), (2, 2);
|
||||
begin;
|
||||
select * from t_single for update;
|
||||
|
||||
connection conn2;
|
||||
sleep 4;
|
||||
#本机不一定有副本,所以形状可能会变,所以不能explain,所以这里只有一定的概率拦住不调start_participant的错误
|
||||
#explain basic select /*+INDEX(INFO PRIMARY) READ_CONSISTENCY(WEAK) */ * from t_single t1 join t_part t2 on t1.pk = t2.c1;
|
||||
select /*+INDEX(INFO PRIMARY) READ_CONSISTENCY(WEAK) */ * from t_single t1 join t_part t2 on t1.pk = t2.c1 order by t2.pk;
|
||||
|
||||
connection conn1;
|
||||
rollback;
|
||||
|
||||
drop table t_single, t_part;
|
||||
|
||||
@ -1,287 +0,0 @@
|
||||
================ expression convert_tz ================
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00')
|
||||
2021-01-01 20:00:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+08:00');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','+01:00','+08:00')
|
||||
2021-01-01 19:00:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+06:30');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','+01:00','+06:30')
|
||||
2021-01-01 17:30:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+10:10');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','+01:00','+10:10')
|
||||
2021-01-01 21:10:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:30','+13:00');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','+01:30','+13:00')
|
||||
2021-01-01 23:30:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','-11:30','+13:00');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','-11:30','+13:00')
|
||||
2021-01-02 12:30:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','-12:00','+13:00');
|
||||
CONVERT_TZ('2021-01-01 12:00:00','-12:00','+13:00')
|
||||
2021-01-02 13:00:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 00:00:00','-12:00','+13:00');
|
||||
CONVERT_TZ('2021-01-01 00:00:00','-12:00','+13:00')
|
||||
2021-01-02 01:00:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 23:59:59','-12:00','+13:00');
|
||||
CONVERT_TZ('2021-01-01 23:59:59','-12:00','+13:00')
|
||||
2021-01-03 00:59:59.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 13:19:38','-10:38','+10:12');
|
||||
CONVERT_TZ('2021-01-01 13:19:38','-10:38','+10:12')
|
||||
2021-01-02 10:09:38.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 12:23:35','-09:23','-11:11');
|
||||
CONVERT_TZ('2021-01-01 12:23:35','-09:23','-11:11')
|
||||
2021-01-01 10:35:35.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 00:01:00','+10:00','-11:00');
|
||||
CONVERT_TZ('2021-01-01 00:01:00','+10:00','-11:00')
|
||||
2020-12-31 03:01:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','+00:00','-11:00');
|
||||
CONVERT_TZ('2021-01-01 00:11:00','+00:00','-11:00')
|
||||
2020-12-31 13:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-03-01 00:11:00','+00:00','-11:00');
|
||||
CONVERT_TZ('2021-03-01 00:11:00','+00:00','-11:00')
|
||||
2021-02-28 13:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-06-01 00:11:00','+00:00','-11:00');
|
||||
CONVERT_TZ('2021-06-01 00:11:00','+00:00','-11:00')
|
||||
2021-05-31 13:11:00.000000
|
||||
SELECT CONVERT_TZ('2020-03-01 00:11:00','+00:00','-11:00');
|
||||
CONVERT_TZ('2020-03-01 00:11:00','+00:00','-11:00')
|
||||
2020-02-29 13:11:00.000000
|
||||
SELECT CONVERT_TZ('2020-02-28 23:11:00','-00:00','+11:00');
|
||||
CONVERT_TZ('2020-02-28 23:11:00','-00:00','+11:00')
|
||||
2020-02-29 10:11:00.000000
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','-05:00','+11:00');
|
||||
CONVERT_TZ('2020-12-31 23:11:00','-05:00','+11:00')
|
||||
2021-01-01 15:11:00.000000
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00',null,'+11:00');
|
||||
CONVERT_TZ('2020-12-31 23:11:00',null,'+11:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','+11:00', null);
|
||||
CONVERT_TZ('2020-12-31 23:11:00','+11:00', null)
|
||||
NULL
|
||||
SELECT CONVERT_TZ(null,'-13:00','+11:00');
|
||||
CONVERT_TZ(null,'-13:00','+11:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ(null, null,'+11:00');
|
||||
CONVERT_TZ(null, null,'+11:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ(null, null, null);
|
||||
CONVERT_TZ(null, null, null)
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','America/Merida','Asia/Tokyo');
|
||||
CONVERT_TZ('2020-12-31 23:11:00','America/Merida','Asia/Tokyo')
|
||||
2021-01-01 14:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Australia/Darwin');
|
||||
CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Australia/Darwin')
|
||||
2021-01-01 15:41:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Europe/Amsterdam');
|
||||
CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Europe/Amsterdam')
|
||||
2021-01-01 07:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Europe/Amsterdam','America/Merida');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','Europe/Amsterdam','America/Merida')
|
||||
2021-01-01 00:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','MET','Libya');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','MET','Libya')
|
||||
2021-01-01 08:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','MET','MST');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','MET','MST')
|
||||
2020-12-31 23:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','PRC','MST');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','PRC','MST')
|
||||
2020-12-31 16:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','PRC','ROC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','PRC','ROC')
|
||||
2021-01-01 07:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','UCT','ROC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','UCT','ROC')
|
||||
2021-01-01 15:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Universal','ROC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','Universal','ROC')
|
||||
2021-01-01 15:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Pacific/Marquesas','ROC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00','Pacific/Marquesas','ROC')
|
||||
2021-01-02 00:41:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','GMT+0','ROC');
|
||||
CONVERT_TZ('2021-02-28 17:11:00','GMT+0','ROC')
|
||||
2021-03-01 01:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','GMT+0','Singapore');
|
||||
CONVERT_TZ('2021-02-28 17:11:00','GMT+0','Singapore')
|
||||
2021-03-01 01:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','US/Michigan','ROC');
|
||||
CONVERT_TZ('2021-02-28 17:11:00','US/Michigan','ROC')
|
||||
2021-03-01 06:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', null,'ROC');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', null,'ROC')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','US/Michigan', null);
|
||||
CONVERT_TZ('2021-02-28 17:11:00','US/Michigan', null)
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', null, null);
|
||||
CONVERT_TZ('2021-02-28 17:11:00', null, null)
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', '+00:00','ROC');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', '+00:00','ROC')
|
||||
2021-03-01 01:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', '+00:00','US/Michigan');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', '+00:00','US/Michigan')
|
||||
2021-02-28 12:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+00:00');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+00:00')
|
||||
2021-02-28 09:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'US/Michigan', '+00:00');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', 'US/Michigan', '+00:00')
|
||||
2021-02-28 22:11:00.000000
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+12:58');
|
||||
CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+12:58')
|
||||
2021-02-28 22:09:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', 'UCT','-12:58');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', 'UCT','-12:58')
|
||||
2020-12-31 18:13:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '-12:58','UCT');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', '-12:58','UCT')
|
||||
2021-01-01 20:09:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '-12:58','US/Michigan');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', '-12:58','US/Michigan')
|
||||
2021-01-01 15:09:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+05:12','MET');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', '+05:12','MET')
|
||||
2021-01-01 02:59:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+03:32','PRC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', '+03:32','PRC')
|
||||
2021-01-01 11:39:00.000000
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+11:32','PRC');
|
||||
CONVERT_TZ('2021-01-01 07:11:00', '+11:32','PRC')
|
||||
2021-01-01 03:39:00.000000
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00');
|
||||
CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00');
|
||||
CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC');
|
||||
CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-12:00','OK');
|
||||
CONVERT_TZ('2004-01-01 12:00:00','-12:00','OK')
|
||||
NULL
|
||||
drop table if exists t;
|
||||
create table t(c1 timestamp);
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-12:00','OK'));
|
||||
select * from t;
|
||||
c1
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
delete from t;
|
||||
select convert_tz('9999-12-31 20:00:00', '+02:00', '+06:00');
|
||||
convert_tz('9999-12-31 20:00:00', '+02:00', '+06:00')
|
||||
NULL
|
||||
select convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00');
|
||||
convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00')
|
||||
NULL
|
||||
insert into t values(convert_tz('9999-12-31 20:00:00', '+02:00', '+06:00'));
|
||||
insert into t values(convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00'));
|
||||
select * from t;
|
||||
c1
|
||||
NULL
|
||||
NULL
|
||||
SELECT CONVERT_TZ(123456,'-12:00','+10:00');
|
||||
CONVERT_TZ(123456,'-12:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('','-12:00','+10:00');
|
||||
CONVERT_TZ('','-12:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('aa','-12:00','+10:00');
|
||||
CONVERT_TZ('aa','-12:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('张三','-12:00','+10:00');
|
||||
CONVERT_TZ('张三','-12:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('1asd561ad','-12:00','+10:00');
|
||||
CONVERT_TZ('1asd561ad','-12:00','+10:00')
|
||||
NULL
|
||||
SELECT CONVERT_TZ('¥¥%……&*¥','-12:00','+10:00');
|
||||
CONVERT_TZ('¥¥%……&*¥','-12:00','+10:00')
|
||||
NULL
|
||||
drop table t;
|
||||
create table t(c1 year);
|
||||
insert into t values('1901'),('2155'), ('0000'), ('0001');
|
||||
SELECT c1, CONVERT_TZ(c1,'+00:00','+00:00') from t;
|
||||
c1 CONVERT_TZ(c1,'+00:00','+00:00')
|
||||
1901 NULL
|
||||
2155 NULL
|
||||
0000 NULL
|
||||
2001 NULL
|
||||
drop table t;
|
||||
create table t(a1 int,a2 year,c1 timestamp,c2 timestamp);
|
||||
insert into t values(1,'1998','1998-12-12 12:12:12','2038-01-19 03:14:07');
|
||||
insert into t values(2,'2002','2002-02-02 10:00:00','2034-02-22 00:50:20');
|
||||
insert into t values(3,'2006','2006-04-15 06:06:20','2038-01-19 03:14:07');
|
||||
insert into t values(4,'2012','2012-12-12 12:12:12','2030-08-16 14:05:50');
|
||||
select c1,c2 ,case c1 when convert_tz(c1,'+06:00','+00:00')<'2006-04-15 06:06:20' then convert_tz('2020-02-02 02:02:02','+00:00','+00:00') else convert_tz('1999-09-09 09:09:09','+00:00','+00:00') end as c1 from t;
|
||||
c1 c2 c1
|
||||
1998-12-12 12:12:12 2038-01-19 03:14:07 1999-09-09 09:09:09.000000
|
||||
2002-02-02 10:00:00 2034-02-22 00:50:20 1999-09-09 09:09:09.000000
|
||||
2006-04-15 06:06:20 2038-01-19 03:14:07 1999-09-09 09:09:09.000000
|
||||
2012-12-12 12:12:12 2030-08-16 14:05:50 1999-09-09 09:09:09.000000
|
||||
drop table t;
|
||||
create table t(c1 timestamp(0), c2 timestamp(3), c3 decimal(20,4));
|
||||
insert into t values('2020-01-01 12:00:00.123456', '2020-01-01 12:00:00.123456', '20200101120000.123456');
|
||||
select c1, convert_tz(c1, '+00:00', '+08:00') from t;
|
||||
c1 convert_tz(c1, '+00:00', '+08:00')
|
||||
2020-01-01 12:00:00 2020-01-01 20:00:00
|
||||
select c2, convert_tz(c2, '+00:00', '+08:00') from t;
|
||||
c2 convert_tz(c2, '+00:00', '+08:00')
|
||||
2020-01-01 12:00:00.123 2020-01-01 20:00:00.123
|
||||
select c3, convert_tz(c3, '+00:00', '+08:00') from t;
|
||||
c3 convert_tz(c3, '+00:00', '+08:00')
|
||||
20200101120000.1235 2020-01-01 20:00:00.1235
|
||||
drop table t;
|
||||
SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central') AS time1,
|
||||
CONVERT_TZ('2007-03-11 2:00:01','US/Eastern','US/Central') AS time2,
|
||||
CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central') AS time3,
|
||||
CONVERT_TZ('2007-03-11 3:00:01','US/Eastern','US/Central') AS time4;
|
||||
time1 time2 time3 time4
|
||||
NULL NULL 2007-03-11 01:00:00.000000 2007-03-11 01:00:01.000000
|
||||
SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','+00:00') AS time1,
|
||||
CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','+00:00') AS time2,
|
||||
CONVERT_TZ('2007-03-11 3:00:01','US/Eastern','+00:00') AS time3;
|
||||
time1 time2 time3
|
||||
NULL 2007-03-11 07:00:00.000000 2007-03-11 07:00:01.000000
|
||||
SELECT CONVERT_TZ('2007-11-04 01:00:00','US/Eastern','+00:00') AS time1,
|
||||
CONVERT_TZ('2007-11-04 01:00:01','US/Eastern','+00:00') AS time2,
|
||||
CONVERT_TZ('2007-11-04 02:00:00','US/Eastern','+00:00') AS time3,
|
||||
CONVERT_TZ('2007-11-04 02:00:01','US/Eastern','+00:00') AS time4;
|
||||
time1 time2 time3 time4
|
||||
2007-11-04 05:00:00.000000 2007-11-04 05:00:01.000000 2007-11-04 07:00:00.000000 2007-11-04 07:00:01.000000
|
||||
create table t(c1 datetime);
|
||||
insert into t values('2007-03-11 2:00:00'), ('2007-03-11 2:00:01'), ('2007-03-11 3:00:00'), ('2007-03-11 3:00:01');
|
||||
insert into t values('2007-11-04 1:00:00'), ('2007-11-04 1:00:01'), ('2007-11-04 2:00:00'), ('2007-11-04 2:00:01');
|
||||
select convert_tz(c1, 'US/Eastern', '+00:00') from t;
|
||||
convert_tz(c1, 'US/Eastern', '+00:00')
|
||||
NULL
|
||||
NULL
|
||||
2007-03-11 07:00:00
|
||||
2007-03-11 07:00:01
|
||||
2007-11-04 05:00:00
|
||||
2007-11-04 05:00:01
|
||||
2007-11-04 07:00:00
|
||||
2007-11-04 07:00:01
|
||||
drop table t;
|
||||
create table t(c1 timestamp);
|
||||
insert into t values('2007-03-11 1:59:59'), ('2007-03-11 3:00:00'), ('2007-03-11 3:00:01');
|
||||
insert into t values('2007-11-04 1:00:00'), ('2007-11-04 1:00:01'), ('2007-11-04 2:00:00'), ('2007-11-04 2:00:01');
|
||||
select convert_tz(c1, 'US/Eastern', '+00:00') from t;
|
||||
convert_tz(c1, 'US/Eastern', '+00:00')
|
||||
2007-03-11 06:59:59
|
||||
2007-03-11 07:00:00
|
||||
2007-03-11 07:00:01
|
||||
2007-11-04 05:00:00
|
||||
2007-11-04 05:00:01
|
||||
2007-11-04 07:00:00
|
||||
2007-11-04 07:00:01
|
||||
drop table t;
|
||||
@ -1,584 +0,0 @@
|
||||
result_format: 4
|
||||
================ expression export_set ================
|
||||
select export_set(0,"Y","N","-",5);
|
||||
+-----------------------------+
|
||||
| export_set(0,"Y","N","-",5) |
|
||||
+-----------------------------+
|
||||
| N-N-N-N-N |
|
||||
+-----------------------------+
|
||||
select export_set(7,"Y","N","-",5);
|
||||
+-----------------------------+
|
||||
| export_set(7,"Y","N","-",5) |
|
||||
+-----------------------------+
|
||||
| Y-Y-Y-N-N |
|
||||
+-----------------------------+
|
||||
select export_set(11,"Y","N","-",5);
|
||||
+------------------------------+
|
||||
| export_set(11,"Y","N","-",5) |
|
||||
+------------------------------+
|
||||
| Y-Y-N-Y-N |
|
||||
+------------------------------+
|
||||
select export_set(20,"Y","N","-",5);
|
||||
+------------------------------+
|
||||
| export_set(20,"Y","N","-",5) |
|
||||
+------------------------------+
|
||||
| N-N-Y-N-Y |
|
||||
+------------------------------+
|
||||
select export_set(9,"","","-",5);
|
||||
+---------------------------+
|
||||
| export_set(9,"","","-",5) |
|
||||
+---------------------------+
|
||||
| ---- |
|
||||
+---------------------------+
|
||||
select export_set(9,"Y","N","-",5);
|
||||
+-----------------------------+
|
||||
| export_set(9,"Y","N","-",5) |
|
||||
+-----------------------------+
|
||||
| Y-N-N-Y-N |
|
||||
+-----------------------------+
|
||||
select export_set(9,"左","右","-",5);
|
||||
+---------------------------------+
|
||||
| export_set(9,"左","右","-",5) |
|
||||
+---------------------------------+
|
||||
| 左-右-右-左-右 |
|
||||
+---------------------------------+
|
||||
select export_set(9,"上","下","-",5);
|
||||
+---------------------------------+
|
||||
| export_set(9,"上","下","-",5) |
|
||||
+---------------------------------+
|
||||
| 上-下-下-上-下 |
|
||||
+---------------------------------+
|
||||
select export_set(5,"Y","N",".",5);
|
||||
+-----------------------------+
|
||||
| export_set(5,"Y","N",".",5) |
|
||||
+-----------------------------+
|
||||
| Y.N.Y.N.N |
|
||||
+-----------------------------+
|
||||
select export_set(5,"Y","N","=",5);
|
||||
+-----------------------------+
|
||||
| export_set(5,"Y","N","=",5) |
|
||||
+-----------------------------+
|
||||
| Y=N=Y=N=N |
|
||||
+-----------------------------+
|
||||
select export_set(5,"Y","N","????????",5);
|
||||
+---------------------------------------+
|
||||
| export_set(5,"Y","N","????????",5) |
|
||||
+---------------------------------------+
|
||||
| Y????????N????????Y????????N????????N |
|
||||
+---------------------------------------+
|
||||
select export_set(100,"Y","N",".",3);
|
||||
+-------------------------------+
|
||||
| export_set(100,"Y","N",".",3) |
|
||||
+-------------------------------+
|
||||
| N.N.Y |
|
||||
+-------------------------------+
|
||||
select export_set(100,"Y","N",".",5);
|
||||
+-------------------------------+
|
||||
| export_set(100,"Y","N",".",5) |
|
||||
+-------------------------------+
|
||||
| N.N.Y.N.N |
|
||||
+-------------------------------+
|
||||
select export_set(100,"Y","N",".",7);
|
||||
+-------------------------------+
|
||||
| export_set(100,"Y","N",".",7) |
|
||||
+-------------------------------+
|
||||
| N.N.Y.N.N.Y.Y |
|
||||
+-------------------------------+
|
||||
select export_set(100,"Y","N",".",10);
|
||||
+--------------------------------+
|
||||
| export_set(100,"Y","N",".",10) |
|
||||
+--------------------------------+
|
||||
| N.N.Y.N.N.Y.Y.N.N.N |
|
||||
+--------------------------------+
|
||||
|
||||
select export_set(null,"Y","N",".",5);
|
||||
+--------------------------------+
|
||||
| export_set(null,"Y","N",".",5) |
|
||||
+--------------------------------+
|
||||
| NULL |
|
||||
+--------------------------------+
|
||||
select export_set(0,"Y","N",".",5);
|
||||
+-----------------------------+
|
||||
| export_set(0,"Y","N",".",5) |
|
||||
+-----------------------------+
|
||||
| N.N.N.N.N |
|
||||
+-----------------------------+
|
||||
select export_set(5,null,"N",".",5);
|
||||
+------------------------------+
|
||||
| export_set(5,null,"N",".",5) |
|
||||
+------------------------------+
|
||||
| NULL |
|
||||
+------------------------------+
|
||||
select export_set(5,'',"N",".",5);
|
||||
+----------------------------+
|
||||
| export_set(5,'',"N",".",5) |
|
||||
+----------------------------+
|
||||
| .N..N.N |
|
||||
+----------------------------+
|
||||
select export_set(5,"Y",null,".",5);
|
||||
+------------------------------+
|
||||
| export_set(5,"Y",null,".",5) |
|
||||
+------------------------------+
|
||||
| NULL |
|
||||
+------------------------------+
|
||||
select export_set(5,"Y",'',".",5);
|
||||
+----------------------------+
|
||||
| export_set(5,"Y",'',".",5) |
|
||||
+----------------------------+
|
||||
| Y..Y.. |
|
||||
+----------------------------+
|
||||
select export_set(5,"Y","N",null,5);
|
||||
+------------------------------+
|
||||
| export_set(5,"Y","N",null,5) |
|
||||
+------------------------------+
|
||||
| NULL |
|
||||
+------------------------------+
|
||||
select export_set(5,"Y","N",'',5);
|
||||
+----------------------------+
|
||||
| export_set(5,"Y","N",'',5) |
|
||||
+----------------------------+
|
||||
| YNYNN |
|
||||
+----------------------------+
|
||||
select export_set(5,"Y","N",".",null);
|
||||
+--------------------------------+
|
||||
| export_set(5,"Y","N",".",null) |
|
||||
+--------------------------------+
|
||||
| NULL |
|
||||
+--------------------------------+
|
||||
select export_set(5,"Y","N",".",0);
|
||||
+-----------------------------+
|
||||
| export_set(5,"Y","N",".",0) |
|
||||
+-----------------------------+
|
||||
| |
|
||||
+-----------------------------+
|
||||
select export_set(55555555555555,"YY","NN",".",0);
|
||||
+--------------------------------------------+
|
||||
| export_set(55555555555555,"YY","NN",".",0) |
|
||||
+--------------------------------------------+
|
||||
| |
|
||||
+--------------------------------------------+
|
||||
select export_set(55555555555555,"YY","NN",".......",0);
|
||||
+--------------------------------------------------+
|
||||
| export_set(55555555555555,"YY","NN",".......",0) |
|
||||
+--------------------------------------------------+
|
||||
| |
|
||||
+--------------------------------------------------+
|
||||
select export_set(100,'',1);
|
||||
+------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(100,'',1) |
|
||||
+------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 1,1,,1,1,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
||||
+------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(100,1,'');
|
||||
+--------------------------------------------------------------------+
|
||||
| export_set(100,1,'') |
|
||||
+--------------------------------------------------------------------+
|
||||
| ,,1,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, |
|
||||
+--------------------------------------------------------------------+
|
||||
select export_set(100,1,0,'');
|
||||
+------------------------------------------------------------------+
|
||||
| export_set(100,1,0,'') |
|
||||
+------------------------------------------------------------------+
|
||||
| 0010011000000000000000000000000000000000000000000000000000000000 |
|
||||
+------------------------------------------------------------------+
|
||||
select export_set(1000,'',1);
|
||||
+---------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(1000,'',1) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------+
|
||||
| 1,1,1,,1,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(1000,1,'');
|
||||
+-----------------------------------------------------------------------+
|
||||
| export_set(1000,1,'') |
|
||||
+-----------------------------------------------------------------------+
|
||||
| ,,,1,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, |
|
||||
+-----------------------------------------------------------------------+
|
||||
select export_set(1000,1,0,'');
|
||||
+------------------------------------------------------------------+
|
||||
| export_set(1000,1,0,'') |
|
||||
+------------------------------------------------------------------+
|
||||
| 0001011111000000000000000000000000000000000000000000000000000000 |
|
||||
+------------------------------------------------------------------+
|
||||
|
||||
select export_set(8,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(88,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(88,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(888,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(888,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,Y,Y,Y,Y,N,Y,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8888,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8888,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,Y,Y,Y,N,Y,N,Y,N,N,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8,"1","0");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"1","0") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8,"X","Y");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"X","Y") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,X,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8,"Y","N",'+');
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"Y","N",'+') |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N+N+N+Y+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N+N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8,"1","0",'*');
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"1","0",'*') |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 0*0*0*1*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(8,"X","Y",'*');
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(8,"X","Y",'*') |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y*Y*Y*X*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y*Y |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
select export_set(7,1,0,"-",5);
|
||||
+-------------------------+
|
||||
| export_set(7,1,0,"-",5) |
|
||||
+-------------------------+
|
||||
| 1-1-1-0-0 |
|
||||
+-------------------------+
|
||||
select export_set(7,11,00,"-",5);
|
||||
+---------------------------+
|
||||
| export_set(7,11,00,"-",5) |
|
||||
+---------------------------+
|
||||
| 11-11-11-0-0 |
|
||||
+---------------------------+
|
||||
select export_set(7,111,000,"-",5);
|
||||
+-----------------------------+
|
||||
| export_set(7,111,000,"-",5) |
|
||||
+-----------------------------+
|
||||
| 111-111-111-0-0 |
|
||||
+-----------------------------+
|
||||
select export_set(7,111,000,5,5);
|
||||
+---------------------------+
|
||||
| export_set(7,111,000,5,5) |
|
||||
+---------------------------+
|
||||
| 111511151115050 |
|
||||
+---------------------------+
|
||||
select export_set(true,1,0);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(true,1,0) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(true,"1","0");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(true,"1","0") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(false,1,0);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(false,1,0) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(false,"1","0");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(false,"1","0") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(1.4,1,0);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(1.4,1,0) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(2.4,1,0);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(2.4,1,0) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(1.4,"y","n");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(1.4,"y","n") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| y,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(2.4,"y","n");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(2.4,"y","n") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| n,y,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
select export_set(9223372036854775808,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775808,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(9223372036854775809,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775809,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(-9223372036854775808,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(-9223372036854775808,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(18446744073709551615,"Y","N");
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(18446744073709551615,"Y","N") |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(9223372036854775808,"Y","N",",",92233720368547758080000000000);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775808,"Y","N",",",92233720368547758080000000000) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(9223372036854775808,"Y","N",",",9223372036854775808);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775808,"Y","N",",",9223372036854775808) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775809,"Y","N",",",9223372036854775809) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809000000000000);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(9223372036854775809,"Y","N",",",9223372036854775809000000000000) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(-9223372036854775808,"Y","N",",",-9223372036854775808) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808000000000);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(-9223372036854775808,"Y","N",",",-9223372036854775808000000000) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(18446744073709551615,"Y","N",",",18446744073709551615);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(18446744073709551615,"Y","N",",",18446744073709551615) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(18446744073709551615,"Y","N",",",1844674407370955161500000000000);
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(18446744073709551615,"Y","N",",",1844674407370955161500000000000) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
select export_set();
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set(1);
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set(1,2);
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set("");
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set("","");
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set(5,5);
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set(a,2,3);
|
||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||
select export_set(1,2,3,a);
|
||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||
select export_set(1,2,3,4,a);
|
||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||
|
||||
|
||||
drop table if exists test;
|
||||
create table test(c1 int, c2 varchar(20), c3 varchar(20), c4 varchar(20), c5 int);
|
||||
insert into test values(11,"Y","N",",",10);
|
||||
insert into test values(null,"Y","N",",",10);
|
||||
insert into test values(11,null,"N",",",10);
|
||||
insert into test values(11,"Y",null,",",10);
|
||||
insert into test values(11,"Y","N",null,10);
|
||||
insert into test values(11,"Y","N",",",null);
|
||||
insert into test values(null,null,null,null,null);
|
||||
select export_set(c1,c2,c3,c4,c5) from test;
|
||||
+----------------------------+
|
||||
| export_set(c1,c2,c3,c4,c5) |
|
||||
+----------------------------+
|
||||
| Y,Y,N,Y,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
+----------------------------+
|
||||
select export_set(c1,c2,c3,c4) from test;
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(c1,c2,c3,c4) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(c1,c2,c3) from test;
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(c1,c2,c3) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
insert into test values(100000,"+","-",",",1000000);
|
||||
insert into test values(55555555,"+","-",",",100000);
|
||||
insert into test values(7777777,"+","-",",",10000);
|
||||
select export_set(c1,c2,c3,c4,5) from test;
|
||||
+---------------------------+
|
||||
| export_set(c1,c2,c3,c4,5) |
|
||||
+---------------------------+
|
||||
| Y,Y,N,Y,N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| Y,Y,N,Y,N |
|
||||
| NULL |
|
||||
| -,-,-,-,- |
|
||||
| +,+,-,-,- |
|
||||
| +,-,-,-,+ |
|
||||
+---------------------------+
|
||||
select export_set(c1,c2,c3,'??',5) from test;
|
||||
+-----------------------------+
|
||||
| export_set(c1,c2,c3,'??',5) |
|
||||
+-----------------------------+
|
||||
| Y??Y??N??Y??N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| Y??Y??N??Y??N |
|
||||
| Y??Y??N??Y??N |
|
||||
| NULL |
|
||||
| -??-??-??-??- |
|
||||
| +??+??-??-??- |
|
||||
| +??-??-??-??+ |
|
||||
+-----------------------------+
|
||||
select export_set(c1,c2,c3) from test;
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| export_set(c1,c2,c3) |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| NULL |
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| Y,Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N |
|
||||
| NULL |
|
||||
| -,-,-,-,-,+,-,+,-,+,+,-,-,-,-,+,+,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,- |
|
||||
| +,+,-,-,-,+,+,+,+,-,+,-,+,+,-,+,+,+,+,+,-,-,+,-,+,+,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,- |
|
||||
| +,-,-,-,+,+,+,+,+,-,+,+,-,+,-,+,-,+,+,-,+,+,+,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,- |
|
||||
+---------------------------------------------------------------------------------------------------------------------------------+
|
||||
select export_set(c1) from test;
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set(c1,c2) from test;
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
select export_set() from test;
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
|
||||
drop table test;
|
||||
|
||||
drop table if exists t1;
|
||||
create table t1 as select export_set(0,"Y","N","-",5);
|
||||
desc t1;
|
||||
+-----------------------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-----------------------------+--------------+------+-----+---------+-------+
|
||||
| export_set(0,"Y","N","-",5) | varchar(127) | YES | | NULL | |
|
||||
+-----------------------------+--------------+------+-----+---------+-------+
|
||||
drop table t1;
|
||||
|
||||
create table t1 as select export_set(99,"YYY","NX","---",77);
|
||||
desc t1;
|
||||
+------------------------------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+------------------------------------+--------------+------+-----+---------+-------+
|
||||
| export_set(99,"YYY","NX","---",77) | varchar(381) | YES | | NULL | |
|
||||
+------------------------------------+--------------+------+-----+---------+-------+
|
||||
drop table t1;
|
||||
|
||||
create table t1 as select export_set(99,"1","11","111",77);
|
||||
desc t1;
|
||||
+----------------------------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------------------------+--------------+------+-----+---------+-------+
|
||||
| export_set(99,"1","11","111",77) | varchar(317) | YES | | NULL | |
|
||||
+----------------------------------+--------------+------+-----+---------+-------+
|
||||
drop table t1;
|
||||
|
||||
## bugfix#
|
||||
drop table if exists T_36895309;
|
||||
CREATE TABLE T_36895309(A_0 INT,A_1 INT,A_2 VARCHAR(20),A_3 FLOAT,A_4 DATE);
|
||||
INSERT INTO T_36895309 VALUES(1,1,'A',1.23,'1999-09-09'),(2,-1,'nb',3.21,'1111-11-11'),(3,0,'#',6666.6666,'11-11-11'),(4,NULL,NULL,NULL,NULL);
|
||||
SELECT EXPORT_SET(A_2,'Y','N',',',5) FROM T_36895309 ;
|
||||
+-------------------------------+
|
||||
| EXPORT_SET(A_2,'Y','N',',',5) |
|
||||
+-------------------------------+
|
||||
| N,N,N,N,N |
|
||||
| N,N,N,N,N |
|
||||
| N,N,N,N,N |
|
||||
| NULL |
|
||||
+-------------------------------+
|
||||
SELECT EXPORT_SET(A_3,'Y','N',',',5) FROM T_36895309 ;
|
||||
+-------------------------------+
|
||||
| EXPORT_SET(A_3,'Y','N',',',5) |
|
||||
+-------------------------------+
|
||||
| Y,N,N,N,N |
|
||||
| Y,Y,N,N,N |
|
||||
| Y,Y,N,Y,N |
|
||||
| NULL |
|
||||
+-------------------------------+
|
||||
SELECT EXPORT_SET(A_4,'Y','N',',',5) FROM T_36895309 ;
|
||||
+-------------------------------+
|
||||
| EXPORT_SET(A_4,'Y','N',',',5) |
|
||||
+-------------------------------+
|
||||
| Y,N,Y,Y,Y |
|
||||
| Y,Y,Y,N,N |
|
||||
| Y,Y,Y,N,N |
|
||||
| NULL |
|
||||
+-------------------------------+
|
||||
drop table T_36895309;
|
||||
188339
tools/deploy/mysql_test/test_suite/expr/r/mysql/mul.result
Normal file
188339
tools/deploy/mysql_test/test_suite/expr/r/mysql/mul.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,155 +0,0 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=on;
|
||||
--enable_query_log
|
||||
# owner: dachuan.sdc
|
||||
# owner group: SQL2
|
||||
# Test of functions convert_tz
|
||||
|
||||
|
||||
--echo ================ expression convert_tz ================
|
||||
--source mysql_test/test_suite/otimestamp/t/otimestamp_import_time_zone_mysql.inc
|
||||
# 直接时刻类型
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+08:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+06:30');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:00','+10:10');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','+01:30','+13:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','-11:30','+13:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:00:00','-12:00','+13:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 00:00:00','-12:00','+13:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 23:59:59','-12:00','+13:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 13:19:38','-10:38','+10:12');
|
||||
SELECT CONVERT_TZ('2021-01-01 12:23:35','-09:23','-11:11');
|
||||
SELECT CONVERT_TZ('2021-01-01 00:01:00','+10:00','-11:00');
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','+00:00','-11:00');
|
||||
SELECT CONVERT_TZ('2021-03-01 00:11:00','+00:00','-11:00');
|
||||
SELECT CONVERT_TZ('2021-06-01 00:11:00','+00:00','-11:00');
|
||||
SELECT CONVERT_TZ('2020-03-01 00:11:00','+00:00','-11:00');
|
||||
SELECT CONVERT_TZ('2020-02-28 23:11:00','-00:00','+11:00');
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','-05:00','+11:00');
|
||||
|
||||
#直接时刻类型异常
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00',null,'+11:00');
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','+11:00', null);
|
||||
SELECT CONVERT_TZ(null,'-13:00','+11:00');
|
||||
SELECT CONVERT_TZ(null, null,'+11:00');
|
||||
SELECT CONVERT_TZ(null, null, null);
|
||||
|
||||
#时区类型
|
||||
SELECT CONVERT_TZ('2020-12-31 23:11:00','America/Merida','Asia/Tokyo');
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Australia/Darwin');
|
||||
SELECT CONVERT_TZ('2021-01-01 00:11:00','America/Merida','Europe/Amsterdam');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Europe/Amsterdam','America/Merida');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','MET','Libya');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','MET','MST');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','PRC','MST');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','PRC','ROC');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','UCT','ROC');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Universal','ROC');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00','Pacific/Marquesas','ROC');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','GMT+0','ROC');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','GMT+0','Singapore');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','US/Michigan','ROC');
|
||||
|
||||
#时区类型异常
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', null,'ROC');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00','US/Michigan', null);
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', null, null);
|
||||
|
||||
#混合类型
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', '+00:00','ROC');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', '+00:00','US/Michigan');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+00:00');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'US/Michigan', '+00:00');
|
||||
SELECT CONVERT_TZ('2021-02-28 17:11:00', 'ROC','+12:58');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', 'UCT','-12:58');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '-12:58','UCT');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '-12:58','US/Michigan');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+05:12','MET');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+03:32','PRC');
|
||||
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+11:32','PRC');
|
||||
|
||||
##bugfix:
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00');
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00');
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC');
|
||||
SELECT CONVERT_TZ('2004-01-01 12:00:00','-12:00','OK');
|
||||
--disable_warnings
|
||||
drop table if exists t;
|
||||
--enable_warnings
|
||||
create table t(c1 timestamp);
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC'));
|
||||
insert into t values(CONVERT_TZ('2004-01-01 12:00:00','-12:00','OK'));
|
||||
select * from t;
|
||||
delete from t;
|
||||
|
||||
## test result out of range
|
||||
select convert_tz('9999-12-31 20:00:00', '+02:00', '+06:00');
|
||||
select convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00');
|
||||
insert into t values(convert_tz('9999-12-31 20:00:00', '+02:00', '+06:00'));
|
||||
insert into t values(convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00'));
|
||||
select * from t;
|
||||
|
||||
|
||||
##bugfix:
|
||||
SELECT CONVERT_TZ(123456,'-12:00','+10:00');
|
||||
SELECT CONVERT_TZ('','-12:00','+10:00');
|
||||
SELECT CONVERT_TZ('aa','-12:00','+10:00');
|
||||
SELECT CONVERT_TZ('张三','-12:00','+10:00');
|
||||
SELECT CONVERT_TZ('1asd561ad','-12:00','+10:00');
|
||||
SELECT CONVERT_TZ('¥¥%……&*¥','-12:00','+10:00');
|
||||
|
||||
|
||||
##bugfix:
|
||||
drop table t;
|
||||
create table t(c1 year);
|
||||
insert into t values('1901'),('2155'), ('0000'), ('0001');
|
||||
SELECT c1, CONVERT_TZ(c1,'+00:00','+00:00') from t;
|
||||
|
||||
|
||||
##bugfix:
|
||||
drop table t;
|
||||
create table t(a1 int,a2 year,c1 timestamp,c2 timestamp);
|
||||
insert into t values(1,'1998','1998-12-12 12:12:12','2038-01-19 03:14:07');
|
||||
insert into t values(2,'2002','2002-02-02 10:00:00','2034-02-22 00:50:20');
|
||||
insert into t values(3,'2006','2006-04-15 06:06:20','2038-01-19 03:14:07');
|
||||
insert into t values(4,'2012','2012-12-12 12:12:12','2030-08-16 14:05:50');
|
||||
select c1,c2 ,case c1 when convert_tz(c1,'+06:00','+00:00')<'2006-04-15 06:06:20' then convert_tz('2020-02-02 02:02:02','+00:00','+00:00') else convert_tz('1999-09-09 09:09:09','+00:00','+00:00') end as c1 from t;
|
||||
drop table t;
|
||||
|
||||
create table t(c1 timestamp(0), c2 timestamp(3), c3 decimal(20,4));
|
||||
insert into t values('2020-01-01 12:00:00.123456', '2020-01-01 12:00:00.123456', '20200101120000.123456');
|
||||
select c1, convert_tz(c1, '+00:00', '+08:00') from t;
|
||||
select c2, convert_tz(c2, '+00:00', '+08:00') from t;
|
||||
select c3, convert_tz(c3, '+00:00', '+08:00') from t;
|
||||
drop table t;
|
||||
|
||||
|
||||
##bugfix:
|
||||
SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central') AS time1,
|
||||
CONVERT_TZ('2007-03-11 2:00:01','US/Eastern','US/Central') AS time2,
|
||||
CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central') AS time3,
|
||||
CONVERT_TZ('2007-03-11 3:00:01','US/Eastern','US/Central') AS time4;
|
||||
|
||||
SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','+00:00') AS time1,
|
||||
CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','+00:00') AS time2,
|
||||
CONVERT_TZ('2007-03-11 3:00:01','US/Eastern','+00:00') AS time3;
|
||||
|
||||
SELECT CONVERT_TZ('2007-11-04 01:00:00','US/Eastern','+00:00') AS time1,
|
||||
CONVERT_TZ('2007-11-04 01:00:01','US/Eastern','+00:00') AS time2,
|
||||
CONVERT_TZ('2007-11-04 02:00:00','US/Eastern','+00:00') AS time3,
|
||||
CONVERT_TZ('2007-11-04 02:00:01','US/Eastern','+00:00') AS time4;
|
||||
|
||||
create table t(c1 datetime);
|
||||
insert into t values('2007-03-11 2:00:00'), ('2007-03-11 2:00:01'), ('2007-03-11 3:00:00'), ('2007-03-11 3:00:01');
|
||||
insert into t values('2007-11-04 1:00:00'), ('2007-11-04 1:00:01'), ('2007-11-04 2:00:00'), ('2007-11-04 2:00:01');
|
||||
select convert_tz(c1, 'US/Eastern', '+00:00') from t;
|
||||
drop table t;
|
||||
|
||||
create table t(c1 timestamp);
|
||||
insert into t values('2007-03-11 1:59:59'), ('2007-03-11 3:00:00'), ('2007-03-11 3:00:01');
|
||||
insert into t values('2007-11-04 1:00:00'), ('2007-11-04 1:00:01'), ('2007-11-04 2:00:00'), ('2007-11-04 2:00:01');
|
||||
select convert_tz(c1, 'US/Eastern', '+00:00') from t;
|
||||
drop table t;
|
||||
@ -1,172 +0,0 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: dachuan.sdc
|
||||
# owner group: SQL2
|
||||
# test for export_set function in mysql mode
|
||||
--result_format 4
|
||||
|
||||
--echo ================ expression export_set ================
|
||||
# 基本检查
|
||||
select export_set(0,"Y","N","-",5);
|
||||
select export_set(7,"Y","N","-",5);
|
||||
select export_set(11,"Y","N","-",5);
|
||||
select export_set(20,"Y","N","-",5);
|
||||
select export_set(9,"","","-",5);
|
||||
select export_set(9,"Y","N","-",5);
|
||||
select export_set(9,"左","右","-",5);
|
||||
select export_set(9,"上","下","-",5);
|
||||
select export_set(5,"Y","N",".",5);
|
||||
select export_set(5,"Y","N","=",5);
|
||||
select export_set(5,"Y","N","????????",5);
|
||||
select export_set(100,"Y","N",".",3);
|
||||
select export_set(100,"Y","N",".",5);
|
||||
select export_set(100,"Y","N",".",7);
|
||||
select export_set(100,"Y","N",".",10);
|
||||
|
||||
# 参数NULL检查
|
||||
select export_set(null,"Y","N",".",5);
|
||||
select export_set(0,"Y","N",".",5);
|
||||
select export_set(5,null,"N",".",5);
|
||||
select export_set(5,'',"N",".",5);
|
||||
select export_set(5,"Y",null,".",5);
|
||||
select export_set(5,"Y",'',".",5);
|
||||
select export_set(5,"Y","N",null,5);
|
||||
select export_set(5,"Y","N",'',5);
|
||||
select export_set(5,"Y","N",".",null);
|
||||
select export_set(5,"Y","N",".",0);
|
||||
select export_set(55555555555555,"YY","NN",".",0);
|
||||
select export_set(55555555555555,"YY","NN",".......",0);
|
||||
select export_set(100,'',1);
|
||||
select export_set(100,1,'');
|
||||
select export_set(100,1,0,'');
|
||||
select export_set(1000,'',1);
|
||||
select export_set(1000,1,'');
|
||||
select export_set(1000,1,0,'');
|
||||
|
||||
# 默认参数检查
|
||||
select export_set(8,"Y","N");
|
||||
select export_set(88,"Y","N");
|
||||
select export_set(888,"Y","N");
|
||||
select export_set(8888,"Y","N");
|
||||
select export_set(8,"1","0");
|
||||
select export_set(8,"X","Y");
|
||||
select export_set(8,"Y","N",'+');
|
||||
select export_set(8,"1","0",'*');
|
||||
select export_set(8,"X","Y",'*');
|
||||
|
||||
# 参数类型不同
|
||||
select export_set(7,1,0,"-",5);
|
||||
select export_set(7,11,00,"-",5);
|
||||
select export_set(7,111,000,"-",5);
|
||||
select export_set(7,111,000,5,5);
|
||||
select export_set(true,1,0);
|
||||
select export_set(true,"1","0");
|
||||
select export_set(false,1,0);
|
||||
select export_set(false,"1","0");
|
||||
select export_set(1.4,1,0);
|
||||
select export_set(2.4,1,0);
|
||||
select export_set(1.4,"y","n");
|
||||
select export_set(2.4,"y","n");
|
||||
|
||||
# 边界检查
|
||||
# 超过uint64的上界,int64的下界,ob对溢出的处理和mysql不同,这是mysql的bug,不兼容
|
||||
# 目前保证-9223372036854775808到18446744073709551615与mysql兼容
|
||||
# select export_set(1111111111111111111111111111111111111111111111111111,"Y","N");
|
||||
select export_set(9223372036854775808,"Y","N");
|
||||
select export_set(9223372036854775809,"Y","N");
|
||||
select export_set(-9223372036854775808,"Y","N");
|
||||
select export_set(18446744073709551615,"Y","N");
|
||||
select export_set(9223372036854775808,"Y","N",",",92233720368547758080000000000);
|
||||
select export_set(9223372036854775808,"Y","N",",",9223372036854775808);
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809);
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809000000000000);
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808);
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808000000000);
|
||||
select export_set(18446744073709551615,"Y","N",",",18446744073709551615);
|
||||
select export_set(18446744073709551615,"Y","N",",",1844674407370955161500000000000);
|
||||
|
||||
|
||||
# 参数错误检查
|
||||
--error 1582
|
||||
select export_set();
|
||||
--error 1582
|
||||
select export_set(1);
|
||||
--error 1582
|
||||
select export_set(1,2);
|
||||
--error 1582
|
||||
select export_set("");
|
||||
--error 1582
|
||||
select export_set("","");
|
||||
--error 1582
|
||||
select export_set(5,5);
|
||||
--error 1054
|
||||
select export_set(a,2,3);
|
||||
--error 1054
|
||||
select export_set(1,2,3,a);
|
||||
--error 1054
|
||||
select export_set(1,2,3,4,a);
|
||||
|
||||
|
||||
|
||||
# 用表数据做参数
|
||||
--disable_warnings
|
||||
drop table if exists test;
|
||||
--enable_warnings
|
||||
create table test(c1 int, c2 varchar(20), c3 varchar(20), c4 varchar(20), c5 int);
|
||||
sleep 1;
|
||||
insert into test values(11,"Y","N",",",10);
|
||||
insert into test values(null,"Y","N",",",10);
|
||||
insert into test values(11,null,"N",",",10);
|
||||
insert into test values(11,"Y",null,",",10);
|
||||
insert into test values(11,"Y","N",null,10);
|
||||
insert into test values(11,"Y","N",",",null);
|
||||
insert into test values(null,null,null,null,null);
|
||||
select export_set(c1,c2,c3,c4,c5) from test;
|
||||
select export_set(c1,c2,c3,c4) from test;
|
||||
select export_set(c1,c2,c3) from test;
|
||||
insert into test values(100000,"+","-",",",1000000);
|
||||
insert into test values(55555555,"+","-",",",100000);
|
||||
insert into test values(7777777,"+","-",",",10000);
|
||||
select export_set(c1,c2,c3,c4,5) from test;
|
||||
select export_set(c1,c2,c3,'??',5) from test;
|
||||
select export_set(c1,c2,c3) from test;
|
||||
--error 1582
|
||||
select export_set(c1) from test;
|
||||
--error 1582
|
||||
select export_set(c1,c2) from test;
|
||||
--error 1582
|
||||
select export_set() from test;
|
||||
drop table test;
|
||||
|
||||
|
||||
# ctas cases
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 as select export_set(0,"Y","N","-",5);
|
||||
sleep 1;
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 as select export_set(99,"YYY","NX","---",77);
|
||||
sleep 1;
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 as select export_set(99,"1","11","111",77);
|
||||
sleep 1;
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
## bugfix#
|
||||
--disable_warnings
|
||||
drop table if exists T_36895309;
|
||||
--enable_warnings
|
||||
CREATE TABLE T_36895309(A_0 INT,A_1 INT,A_2 VARCHAR(20),A_3 FLOAT,A_4 DATE);
|
||||
INSERT INTO T_36895309 VALUES(1,1,'A',1.23,'1999-09-09'),(2,-1,'nb',3.21,'1111-11-11'),(3,0,'#',6666.6666,'11-11-11'),(4,NULL,NULL,NULL,NULL);
|
||||
SELECT EXPORT_SET(A_2,'Y','N',',',5) FROM T_36895309 ;
|
||||
SELECT EXPORT_SET(A_3,'Y','N',',',5) FROM T_36895309 ;
|
||||
SELECT EXPORT_SET(A_4,'Y','N',',',5) FROM T_36895309 ;
|
||||
drop table T_36895309;
|
||||
1921
tools/deploy/mysql_test/test_suite/expr/t/mul.test
Normal file
1921
tools/deploy/mysql_test/test_suite/expr/t/mul.test
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,763 @@
|
||||
set foreign_key_checks=on;
|
||||
drop table if exists t6, t5, t4, t3, t2, t1;
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_2 foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
create table t3(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_3 foreign key (a, b) references t2 (a, b) on update CASCADE on delete CASCADE);
|
||||
create table t4(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_4 foreign key (a, b) references t3 (b, a) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
insert into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
insert into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
insert into t3 values (70, 72, 71), (80, 82, 81);
|
||||
insert into t4 values (60, 61, 62), (70, 71, 72);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
update t1 set a = 91, b = 92 where pk = 10;
|
||||
update t2 set a = 82, b = 81 where pk = 20;
|
||||
update t3 set a = 72, b = 71 where pk = 30;
|
||||
update t4 set a = 61, b = 62 where pk = 40;
|
||||
update t2 set a = a * 10 where pk = 70;
|
||||
update t3 set a = a * 10 where pk = 60;
|
||||
update t4 set a = a * 10 where pk = 50;
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b) on update RESTRICT);
|
||||
insert into t5 values (10, 91, 92), (20, 81, 82), (30, 71, 72), (40, 61, 62);
|
||||
update t1 set a = 11, b = 12 where pk = 10;
|
||||
update t2 set a = 22, b = 21 where pk = 20;
|
||||
update t3 set a = 32, b = 31 where pk = 30;
|
||||
update t4 set a = 41, b = 42 where pk = 40;
|
||||
update t1 set pk = pk * 10 where pk = 10;
|
||||
update t2 set pk = pk * 10 where pk = 20;
|
||||
update t3 set pk = pk * 10 where pk = 30;
|
||||
update t4 set pk = pk * 10 where pk = 40;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 91 92
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
200 82 81
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
300 72 71
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
50 51 52
|
||||
400 61 62
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
drop table if exists t5;
|
||||
delete from t1 where pk = 10;
|
||||
delete from t2 where pk = 20;
|
||||
delete from t3 where pk = 30;
|
||||
delete from t4 where pk = 40;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 91 92
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
200 82 81
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
300 72 71
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
50 51 52
|
||||
400 61 62
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b) on delete NO ACTION);
|
||||
insert into t5 values (50, 51, 52);
|
||||
delete from t1 where pk = 50;
|
||||
delete from t2 where pk = 50;
|
||||
delete from t3 where pk = 50;
|
||||
delete from t4 where pk = 50;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 91 92
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
200 82 81
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
300 72 71
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
50 51 52
|
||||
400 61 62
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
50 51 52
|
||||
drop table if exists t5;
|
||||
delete from t1;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
replace into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
replace into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
replace into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
replace into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
replace into t2 values (80, 82, 81), (90, 92, 91);
|
||||
replace into t3 values (70, 72, 71), (80, 82, 81);
|
||||
replace into t4 values (60, 61, 62), (70, 71, 72);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
replace into t1 values (10, 91, 92);
|
||||
replace into t2 values (20, 82, 81);
|
||||
replace into t3 values (30, 72, 71);
|
||||
replace into t4 values (40, 61, 62);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
20 82 81
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
30 72 71
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
40 61 62
|
||||
50 51 52
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b));
|
||||
replace into t5 values (50, 51, 52);
|
||||
replace into t1 values (50, 11, 12);
|
||||
replace into t2 values (50, 22, 21);
|
||||
replace into t3 values (50, 32, 31);
|
||||
replace into t4 values (50, 41, 42);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
20 82 81
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
30 72 71
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
40 61 62
|
||||
50 51 52
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
50 51 52
|
||||
drop table if exists t5;
|
||||
delete from t1;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
insert into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
insert into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
insert into t1 values (10, 101, 102) on duplicate key update a = 91, b = 92;
|
||||
insert into t2 values (20, 92, 91) on duplicate key update a = 82, b = 81;
|
||||
insert into t3 values (30, 82, 81) on duplicate key update a = 72, b = 71;
|
||||
insert into t4 values (40, 71, 72) on duplicate key update a = 61, b = 62;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 72 71
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
50 51 52
|
||||
insert into t2 values (20, 0, 0) on duplicate key update a = a * 10;
|
||||
insert into t3 values (30, 0, 0) on duplicate key update a = a * 10;
|
||||
insert into t4 values (40, 0, 0) on duplicate key update a = a * 10;
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b));
|
||||
insert into t5 values (10, 91, 92), (20, 81, 82), (30, 71, 72), (40, 61, 62);
|
||||
insert into t1 values (10, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t1 values (100, 101, 102);
|
||||
insert into t2 values (20, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t2 values (100, 102, 101);
|
||||
insert into t3 values (30, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t3 values (100, 102, 101);
|
||||
insert into t4 values (40, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t4 values (100, 101, 102);
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 101 102
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
100 102 101
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 72 71
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
100 102 101
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
50 51 52
|
||||
100 101 102
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
insert into t1 values (0, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t2 values (0, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t3 values (0, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t4 values (0, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 101 102
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
100 102 101
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 72 71
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
100 102 101
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
50 51 52
|
||||
100 101 102
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
insert into t1 values (0, 21, 22) on duplicate key update pk = 1000;
|
||||
insert into t2 values (0, 32, 31) on duplicate key update pk = 1010;
|
||||
insert into t3 values (0, 42, 41) on duplicate key update pk = 1020;
|
||||
insert into t4 values (0, 51, 52) on duplicate key update pk = 1030;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
100 101 102
|
||||
1000 21 22
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
100 102 101
|
||||
1010 32 31
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
10 92 91
|
||||
20 82 81
|
||||
30 72 71
|
||||
50 52 51
|
||||
60 62 61
|
||||
100 102 101
|
||||
1020 42 41
|
||||
select * from t4 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
100 101 102
|
||||
1030 51 52
|
||||
select * from t5 order by pk;
|
||||
pk a b
|
||||
10 91 92
|
||||
20 81 82
|
||||
30 71 72
|
||||
40 61 62
|
||||
drop table if exists t5, t4, t3, t2, t1;
|
||||
create table t1(pk int, a varchar(16), b datetime(6), primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a datetime(6), b varchar(16), primary key (pk), unique key uk_a_b (a, b), foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 'abc', '2018-03-31 12:00:00'),
|
||||
(20, 'DEF', '2018-03-31 13:00:00'),
|
||||
(30, 'ghi', '2018-03-31 14:00:00'),
|
||||
(40, 'JKL', '2018-03-31 15:00:00'),
|
||||
(50, 'mno', '2018-03-31 16:00:00'),
|
||||
(60, 'PQR', '2018-03-31 17:00:00');
|
||||
insert into t2 values (10, '2018-03-31 12:00:00', 'ABC'),
|
||||
(20, '2018-03-31 13:00:00', 'def'),
|
||||
(30, '2018-03-31 14:00:00', 'GHI'),
|
||||
(40, '2018-03-31 15:00:00', 'jkl'),
|
||||
(50, '2018-03-31 00:00:00', NULL),
|
||||
(60, NULL, NULL);
|
||||
delete from t1 where pk = 10;
|
||||
update t1 set a = 'stu', b = '2018-03-31 19:00:00' where pk = 20;
|
||||
update t1 set a = NULL where pk = 30;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
20 stu 2018-03-31 19:00:00.000000
|
||||
30 NULL 2018-03-31 14:00:00.000000
|
||||
40 JKL 2018-03-31 15:00:00.000000
|
||||
50 mno 2018-03-31 16:00:00.000000
|
||||
60 PQR 2018-03-31 17:00:00.000000
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
20 2018-03-31 19:00:00.000000 stu
|
||||
30 2018-03-31 14:00:00.000000 NULL
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
50 2018-03-31 00:00:00.000000 NULL
|
||||
60 NULL NULL
|
||||
delete from t1 where pk = 30;
|
||||
update t2 set a = NULL, b = 'vwx' where pk = 20;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
20 stu 2018-03-31 19:00:00.000000
|
||||
40 JKL 2018-03-31 15:00:00.000000
|
||||
50 mno 2018-03-31 16:00:00.000000
|
||||
60 PQR 2018-03-31 17:00:00.000000
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
20 NULL vwx
|
||||
30 2018-03-31 14:00:00.000000 NULL
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
50 2018-03-31 00:00:00.000000 NULL
|
||||
60 NULL NULL
|
||||
create table t3(pk int, a datetime(6), b varchar(16), primary key (pk), unique key uk_a_b (a, b), foreign key (a, b) references t1 (b, a));
|
||||
insert into t3 values (40, '2018-03-31 15:00:00', 'jkl');
|
||||
update t2 set b = 'hello' where pk = 20;
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
20 NULL hello
|
||||
30 2018-03-31 14:00:00.000000 NULL
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
50 2018-03-31 00:00:00.000000 NULL
|
||||
60 NULL NULL
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
delete from t2 where pk = 20;
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
30 2018-03-31 14:00:00.000000 NULL
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
50 2018-03-31 00:00:00.000000 NULL
|
||||
60 NULL NULL
|
||||
select * from t3 order by pk;
|
||||
pk a b
|
||||
40 2018-03-31 15:00:00.000000 jkl
|
||||
insert into t3 values (10, '2018-03-31 12:00:00', 'ABC');
|
||||
update t1 set a = 'hello' where pk = 40;
|
||||
delete from t1 where pk = 40;
|
||||
drop table if exists t3, t2, t1;
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_2 foreign key (a, b) references t1 (b, a));
|
||||
set foreign_key_checks=on;
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
update t1 set a = 101, b = 102 where pk = 10;
|
||||
delete from t1 where pk = 20;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 11 12
|
||||
20 21 22
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
set foreign_key_checks=off;
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
update t1 set a = 101, b = 102 where pk = 10;
|
||||
delete from t1 where pk = 20;
|
||||
select * from t1 order by pk;
|
||||
pk a b
|
||||
10 101 102
|
||||
30 31 32
|
||||
40 41 42
|
||||
50 51 52
|
||||
60 61 62
|
||||
70 71 72
|
||||
80 81 82
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
40 42 41
|
||||
50 52 51
|
||||
60 62 61
|
||||
70 72 71
|
||||
80 82 81
|
||||
90 92 91
|
||||
set foreign_key_checks=on;
|
||||
drop table if exists t3, t2, t1;
|
||||
create table t1(pk int, a int, b int, c int, d int, primary key (a, b), constraint fake_name_1 foreign key (c, d) references t1 (a, b) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 11, 12, NULL, NULL), (20, 13, 14, NULL, NULL);
|
||||
insert into t1 values (30, 21, 22, 11, 12), (40, 23, 24, 11, 12);
|
||||
insert into t1 values (50, 31, 32, 21, 22), (60, 33, 34, 21, 22), (70, 35, 36, 23, 24), (80, 37, 38, 23, 24);
|
||||
insert into t1 values (90, 41, 42, 31, 32), (100, 43, 44, 33, 34), (110, 45, 46, 35, 36), (120, 47, 48, 37, 38);
|
||||
insert into t1 values (130, 51, 52, 41, 42), (140, 53, 54, 49, 50);
|
||||
update t1 set c = 15, d = 16 where pk = 30;
|
||||
select * from t1 order by pk;
|
||||
pk a b c d
|
||||
10 11 12 NULL NULL
|
||||
20 13 14 NULL NULL
|
||||
30 21 22 11 12
|
||||
40 23 24 11 12
|
||||
50 31 32 21 22
|
||||
60 33 34 21 22
|
||||
70 35 36 23 24
|
||||
80 37 38 23 24
|
||||
90 41 42 31 32
|
||||
100 43 44 33 34
|
||||
110 45 46 35 36
|
||||
120 47 48 37 38
|
||||
delete from t1 where pk = 50;
|
||||
select * from t1 order by pk;
|
||||
pk a b c d
|
||||
10 11 12 NULL NULL
|
||||
20 13 14 NULL NULL
|
||||
30 21 22 11 12
|
||||
40 23 24 11 12
|
||||
60 33 34 21 22
|
||||
70 35 36 23 24
|
||||
80 37 38 23 24
|
||||
100 43 44 33 34
|
||||
110 45 46 35 36
|
||||
120 47 48 37 38
|
||||
drop table if exists t1;
|
||||
drop table if exists t2, t1;
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint cst_name foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21);
|
||||
insert into t2 values (30, 32, 31);
|
||||
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails
|
||||
drop table t1;
|
||||
ERROR HY000: Cannot drop table 't1' referenced by a foreign key constraint 'cst_name' on table 't2'
|
||||
alter table t2 drop foreign key cst_name;
|
||||
insert into t2 values (30, 32, 31);
|
||||
drop table t1;
|
||||
select * from t2 order by pk;
|
||||
pk a b
|
||||
10 12 11
|
||||
20 22 21
|
||||
30 32 31
|
||||
drop table if exists jx_t1;
|
||||
create table jx_t1(pk int, a int, b int, primary key (pk), unique key uk_b (b), foreign key (a) references jx_t1 (b) on update RESTRICT on delete RESTRICT);
|
||||
insert into jx_t1 values (1, 2, 3);
|
||||
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails
|
||||
replace into jx_t1 values (1, NULL, 1);
|
||||
insert into jx_t1 values (2, NULL, 2);
|
||||
update jx_t1 set b=22 where pk=2;
|
||||
select * from jx_t1;
|
||||
pk a b
|
||||
1 NULL 1
|
||||
2 NULL 22
|
||||
insert into jx_t1 values (3, 4, 4);
|
||||
# BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
delete from jx_t1 where pk = 3;
|
||||
drop table jx_t1;
|
||||
create table jx_t1(pk int, a int, b int, c int, d int, primary key (pk), unique key uk_b (a, b), foreign key (c, d) references jx_t1 (a, b) on update RESTRICT on delete RESTRICT);
|
||||
insert into jx_t1 values(1, 2, 2, 2, 2);
|
||||
# BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
update jx_t1 set a =3, c = 3 where pk = 1;
|
||||
# BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
update jx_t1 set c =3, a = 3 where pk = 1;
|
||||
drop table jx_t1;
|
||||
drop table if exists child, parent;
|
||||
create table parent (id int not null, name varchar(228), primary key (id));
|
||||
create table child (id int, name varchar(228), parent_id int,
|
||||
foreign key (parent_id) references parent(id) on delete cascade);
|
||||
insert into parent value ('1', 'test');
|
||||
insert into child value ('1', 'test', '1');
|
||||
select * from parent;
|
||||
id name
|
||||
1 test
|
||||
select * from child;
|
||||
id name parent_id
|
||||
1 test 1
|
||||
delete from parent;
|
||||
select * from parent;
|
||||
id name
|
||||
select * from child;
|
||||
id name parent_id
|
||||
366
tools/deploy/mysql_test/test_suite/foreign_key/t/dml_147.test
Normal file
366
tools/deploy/mysql_test/test_suite/foreign_key/t/dml_147.test
Normal file
@ -0,0 +1,366 @@
|
||||
#### owner: yuchen.wyc
|
||||
#### owner group: sql2
|
||||
#### description: foreign key
|
||||
|
||||
--disable_warnings
|
||||
set foreign_key_checks=on;
|
||||
|
||||
#drop tablegroup if exists fk_group;
|
||||
#create tablegroup fk_group;
|
||||
|
||||
drop table if exists t6, t5, t4, t3, t2, t1;
|
||||
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_2 foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
create table t3(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_3 foreign key (a, b) references t2 (a, b) on update CASCADE on delete CASCADE);
|
||||
create table t4(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_4 foreign key (a, b) references t3 (b, a) on update CASCADE on delete CASCADE);
|
||||
|
||||
## insert.
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
insert into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
insert into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t3 values (70, 72, 71), (80, 82, 81);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t4 values (60, 61, 62), (70, 71, 72);
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
|
||||
## update.
|
||||
update t1 set a = 91, b = 92 where pk = 10;
|
||||
update t2 set a = 82, b = 81 where pk = 20;
|
||||
update t3 set a = 72, b = 71 where pk = 30;
|
||||
update t4 set a = 61, b = 62 where pk = 40;
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
update t2 set a = a * 10 where pk = 70;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
update t3 set a = a * 10 where pk = 60;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
update t4 set a = a * 10 where pk = 50;
|
||||
--enable_result_log
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b) on update RESTRICT);
|
||||
insert into t5 values (10, 91, 92), (20, 81, 82), (30, 71, 72), (40, 61, 62);
|
||||
--disable_result_log
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t1 set a = 11, b = 12 where pk = 10;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t2 set a = 22, b = 21 where pk = 20;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t3 set a = 32, b = 31 where pk = 30;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t4 set a = 41, b = 42 where pk = 40;
|
||||
--enable_result_log
|
||||
# update column unconcerned with foreign key.
|
||||
update t1 set pk = pk * 10 where pk = 10;
|
||||
update t2 set pk = pk * 10 where pk = 20;
|
||||
update t3 set pk = pk * 10 where pk = 30;
|
||||
update t4 set pk = pk * 10 where pk = 40;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
drop table if exists t5;
|
||||
|
||||
# delete.
|
||||
delete from t1 where pk = 10;
|
||||
delete from t2 where pk = 20;
|
||||
delete from t3 where pk = 30;
|
||||
delete from t4 where pk = 40;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b) on delete NO ACTION);
|
||||
insert into t5 values (50, 51, 52);
|
||||
--disable_result_log
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t1 where pk = 50;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t2 where pk = 50;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t3 where pk = 50;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t4 where pk = 50;
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
drop table if exists t5;
|
||||
delete from t1;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
|
||||
# replace.
|
||||
replace into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
replace into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
replace into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
replace into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
replace into t2 values (80, 82, 81), (90, 92, 91);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
replace into t3 values (70, 72, 71), (80, 82, 81);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
replace into t4 values (60, 61, 62), (70, 71, 72);
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
replace into t1 values (10, 91, 92);
|
||||
replace into t2 values (20, 82, 81);
|
||||
replace into t3 values (30, 72, 71);
|
||||
replace into t4 values (40, 61, 62);
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b));
|
||||
replace into t5 values (50, 51, 52);
|
||||
--disable_result_log
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
replace into t1 values (50, 11, 12);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
replace into t2 values (50, 22, 21);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
replace into t3 values (50, 32, 31);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
replace into t4 values (50, 41, 42);
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
drop table if exists t5;
|
||||
delete from t1;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
|
||||
# insert on dup.
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
insert into t3 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61);
|
||||
insert into t4 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52);
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
insert into t1 values (10, 101, 102) on duplicate key update a = 91, b = 92;
|
||||
insert into t2 values (20, 92, 91) on duplicate key update a = 82, b = 81;
|
||||
insert into t3 values (30, 82, 81) on duplicate key update a = 72, b = 71;
|
||||
insert into t4 values (40, 71, 72) on duplicate key update a = 61, b = 62;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (20, 0, 0) on duplicate key update a = a * 10;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t3 values (30, 0, 0) on duplicate key update a = a * 10;
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t4 values (40, 0, 0) on duplicate key update a = a * 10;
|
||||
--enable_result_log
|
||||
create table t5(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a), constraint fake_name_5 foreign key (a, b) references t4 (a, b));
|
||||
insert into t5 values (10, 91, 92), (20, 81, 82), (30, 71, 72), (40, 61, 62);
|
||||
--disable_result_log
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
insert into t1 values (10, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t1 values (100, 101, 102);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
insert into t2 values (20, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t2 values (100, 102, 101);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
insert into t3 values (30, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t3 values (100, 102, 101);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
insert into t4 values (40, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t4 values (100, 101, 102);
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
# update column concerned with foreign key but old value is equal to new value.
|
||||
insert into t1 values (0, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
insert into t2 values (0, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t3 values (0, 102, 101) on duplicate key update a = 102, b = 101;
|
||||
insert into t4 values (0, 101, 102) on duplicate key update a = 101, b = 102;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
# update column unconcerned with foreign key.
|
||||
insert into t1 values (0, 21, 22) on duplicate key update pk = 1000;
|
||||
insert into t2 values (0, 32, 31) on duplicate key update pk = 1010;
|
||||
insert into t3 values (0, 42, 41) on duplicate key update pk = 1020;
|
||||
insert into t4 values (0, 51, 52) on duplicate key update pk = 1030;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
select * from t4 order by pk;
|
||||
select * from t5 order by pk;
|
||||
|
||||
drop table if exists t5, t4, t3, t2, t1;
|
||||
|
||||
## more datatypes, especially datetime, varchar, and NULL.
|
||||
create table t1(pk int, a varchar(16), b datetime(6), primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a datetime(6), b varchar(16), primary key (pk), unique key uk_a_b (a, b), foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 'abc', '2018-03-31 12:00:00'),
|
||||
(20, 'DEF', '2018-03-31 13:00:00'),
|
||||
(30, 'ghi', '2018-03-31 14:00:00'),
|
||||
(40, 'JKL', '2018-03-31 15:00:00'),
|
||||
(50, 'mno', '2018-03-31 16:00:00'),
|
||||
(60, 'PQR', '2018-03-31 17:00:00');
|
||||
insert into t2 values (10, '2018-03-31 12:00:00', 'ABC'),
|
||||
(20, '2018-03-31 13:00:00', 'def'),
|
||||
(30, '2018-03-31 14:00:00', 'GHI'),
|
||||
(40, '2018-03-31 15:00:00', 'jkl'),
|
||||
(50, '2018-03-31 00:00:00', NULL),
|
||||
(60, NULL, NULL);
|
||||
delete from t1 where pk = 10;
|
||||
update t1 set a = 'stu', b = '2018-03-31 19:00:00' where pk = 20;
|
||||
update t1 set a = NULL where pk = 30;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
delete from t1 where pk = 30;
|
||||
update t2 set a = NULL, b = 'vwx' where pk = 20;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
create table t3(pk int, a datetime(6), b varchar(16), primary key (pk), unique key uk_a_b (a, b), foreign key (a, b) references t1 (b, a));
|
||||
insert into t3 values (40, '2018-03-31 15:00:00', 'jkl');
|
||||
update t2 set b = 'hello' where pk = 20;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
delete from t2 where pk = 20;
|
||||
select * from t2 order by pk;
|
||||
select * from t3 order by pk;
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t3 values (10, '2018-03-31 12:00:00', 'ABC');
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t1 set a = 'hello' where pk = 40;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t1 where pk = 40;
|
||||
--enable_result_log
|
||||
|
||||
drop table if exists t3, t2, t1;
|
||||
|
||||
## foreign_key_checks on/off.
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint fake_name_2 foreign key (a, b) references t1 (b, a));
|
||||
set foreign_key_checks=on;
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22), (30, 31, 32), (40, 41, 42), (50, 51, 52), (60, 61, 62), (70, 71, 72), (80, 81, 82);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21), (30, 32, 31), (40, 42, 41), (50, 52, 51), (60, 62, 61), (70, 72, 71);
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
update t1 set a = 101, b = 102 where pk = 10;
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
delete from t1 where pk = 20;
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
set foreign_key_checks=off;
|
||||
insert into t2 values (80, 82, 81), (90, 92, 91);
|
||||
update t1 set a = 101, b = 102 where pk = 10;
|
||||
delete from t1 where pk = 20;
|
||||
select * from t1 order by pk;
|
||||
select * from t2 order by pk;
|
||||
|
||||
set foreign_key_checks=on;
|
||||
drop table if exists t3, t2, t1;
|
||||
|
||||
## self reference.
|
||||
create table t1(pk int, a int, b int, c int, d int, primary key (a, b), constraint fake_name_1 foreign key (c, d) references t1 (a, b) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 11, 12, NULL, NULL), (20, 13, 14, NULL, NULL);
|
||||
insert into t1 values (30, 21, 22, 11, 12), (40, 23, 24, 11, 12);
|
||||
insert into t1 values (50, 31, 32, 21, 22), (60, 33, 34, 21, 22), (70, 35, 36, 23, 24), (80, 37, 38, 23, 24);
|
||||
insert into t1 values (90, 41, 42, 31, 32), (100, 43, 44, 33, 34), (110, 45, 46, 35, 36), (120, 47, 48, 37, 38);
|
||||
--disable_result_log
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t1 values (130, 51, 52, 41, 42), (140, 53, 54, 49, 50);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
update t1 set c = 15, d = 16 where pk = 30;
|
||||
--enable_result_log
|
||||
select * from t1 order by pk;
|
||||
# mysql will return ER_ROW_IS_REFERENCED_2, maybe bug.
|
||||
# update t1 set a = 25, b = 26 where pk = 40;
|
||||
delete from t1 where pk = 50;
|
||||
select * from t1 order by pk;
|
||||
|
||||
drop table if exists t1;
|
||||
|
||||
drop table if exists t2, t1;
|
||||
create table t1(pk int, a int, b int, primary key (pk), unique key uk_a_b (b, a));
|
||||
create table t2(pk int, a int, b int, primary key (pk), unique key uk_a_b (a, b), constraint cst_name foreign key (a, b) references t1 (b, a) on update CASCADE on delete CASCADE);
|
||||
insert into t1 values (10, 11, 12), (20, 21, 22);
|
||||
insert into t2 values (10, 12, 11), (20, 22, 21);
|
||||
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into t2 values (30, 32, 31);
|
||||
--error 3730
|
||||
drop table t1;
|
||||
|
||||
alter table t2 drop foreign key cst_name;
|
||||
|
||||
insert into t2 values (30, 32, 31);
|
||||
drop table t1;
|
||||
select * from t2 order by pk;
|
||||
|
||||
#bug:
|
||||
drop table if exists jx_t1;
|
||||
create table jx_t1(pk int, a int, b int, primary key (pk), unique key uk_b (b), foreign key (a) references jx_t1 (b) on update RESTRICT on delete RESTRICT);
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
insert into jx_t1 values (1, 2, 3);
|
||||
replace into jx_t1 values (1, NULL, 1);
|
||||
insert into jx_t1 values (2, NULL, 2);
|
||||
update jx_t1 set b=22 where pk=2;
|
||||
select * from jx_t1;
|
||||
insert into jx_t1 values (3, 4, 4);
|
||||
--echo # BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
delete from jx_t1 where pk = 3;
|
||||
|
||||
drop table jx_t1;
|
||||
create table jx_t1(pk int, a int, b int, c int, d int, primary key (pk), unique key uk_b (a, b), foreign key (c, d) references jx_t1 (a, b) on update RESTRICT on delete RESTRICT);
|
||||
insert into jx_t1 values(1, 2, 2, 2, 2);
|
||||
--echo # BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
update jx_t1 set a =3, c = 3 where pk = 1;
|
||||
--echo # BUG#29775335 - 修复外键指向自身时删除数据失败
|
||||
update jx_t1 set c =3, a = 3 where pk = 1;
|
||||
drop table jx_t1;
|
||||
|
||||
# issue/18132630
|
||||
drop table if exists child, parent;
|
||||
create table parent (id int not null, name varchar(228), primary key (id));
|
||||
create table child (id int, name varchar(228), parent_id int,
|
||||
foreign key (parent_id) references parent(id) on delete cascade);
|
||||
insert into parent value ('1', 'test');
|
||||
insert into child value ('1', 'test', '1');
|
||||
select * from parent;
|
||||
select * from child;
|
||||
delete from parent;
|
||||
select * from parent;
|
||||
select * from child;
|
||||
|
||||
--enable_warnings
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,28 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Create spatial index test of GEOMETRY spatial index.
|
||||
# ----------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS tab;
|
||||
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 GEOMETRY NOT NULL SRID 0,
|
||||
c3 GEOMETRY NOT NULL SRID 0,c4 GEOMETRY NOT NULL SRID 0,c5 GEOMETRY NOT NULL SRID 0);
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3 ASC) COMMENT 'wl6968';
|
||||
ERROR HY000: Incorrect usage of spatial/fulltext/hash index and explicit index order.
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3 DESC) COMMENT 'wl6968';
|
||||
ERROR HY000: Incorrect usage of spatial/fulltext/hash index and explicit index order.
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4);
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) COMMENT 'Spatial index on Geometry type column';
|
||||
ERROR HY000: Incorrect usage of spatial/fulltext/hash index and explicit index order.
|
||||
SHOW INDEXES FROM tab;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
tab 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
tab 1 idx1 1 c2 A NULL NULL NULL SPATIAL available YES NULL
|
||||
tab 1 idx3 1 c4 A NULL NULL NULL SPATIAL available YES NULL
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
|
||||
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
|
||||
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(3,ST_GeomFromText('POINT(4 4)'),ST_GeomFromText('LINESTRING(130 130,140 140,150 150)'),
|
||||
ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))'),
|
||||
ST_GeomFromText('POLYGON((4 -2,5 -4,6 -5,7 -4,7 2,4 -2))'));
|
||||
DROP TABLE tab;
|
||||
@ -0,0 +1,585 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of geometry ddl.
|
||||
# ----------------------------------------------------------------------
|
||||
set @g = point(1, 1);
|
||||
select length(@g);
|
||||
length(@g)
|
||||
25
|
||||
drop table if exists geo_table, tt1, T_GEO, tab, FF01, gis_point_plancache;
|
||||
CREATE TABLE geo_table(
|
||||
k int primary key,
|
||||
geom geometry NOT NULL,
|
||||
SPATIAL INDEX (geom)
|
||||
);
|
||||
INSERT INTO geo_table VALUES
|
||||
(1, ST_GeomFromText('POINT(1.0 1.0)')),
|
||||
(2, ST_GeomFromText('LINESTRING(1.0 1.0, 2.0 2.0)')),
|
||||
(3, ST_GeomFromText('POINT(3.0 3.0)')),
|
||||
(4, ST_GeomFromText('LINESTRING(4.0 4.0, 5.0 5.0)')),
|
||||
(5, ST_GeomFromText('LINESTRING(40.0 40.0, 41.0 41.0)')),
|
||||
(6, ST_GeomFromText('POLYGON((1.0 1.0, 5.0 1.0, 5.0 5.0, 1.0 5.0, 1.0 1.0))'));
|
||||
SELECT k FROM geo_table WHERE ST_Intersects(ST_GeomFromText('POINT(3.0 3.0)'), geom) ORDER BY k;
|
||||
k
|
||||
3
|
||||
6
|
||||
drop table geo_table;
|
||||
CREATE TABLE geo_table(
|
||||
k int primary key,
|
||||
geom geometry NOT NULL srid 4326,
|
||||
SPATIAL INDEX (geom) local
|
||||
);
|
||||
INSERT INTO geo_table VALUES (1, ST_GeomFromText('POINT(1.0 1.0)', 4326));
|
||||
SELECT k FROM geo_table WHERE ST_Intersects(ST_GeomFromText('POINT(1.0 1.0)', 0), geom) ORDER BY k;
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
drop table geo_table;
|
||||
create table tt1(g GEOMETRY check(g=ST_GeomFromText('point(10 20)')));
|
||||
insert into tt1 values(ST_GeomFromText('point(10 20)',26918));
|
||||
ERROR HY000: check constraint violated
|
||||
insert into tt1 values(st_geomfromwkb(x'01040000000300000001010000000000000000c067400000000000805b4001010000000000000000c06240000000000080514001010000000000000000c06c400000000000805140'));
|
||||
ERROR HY000: check constraint violated
|
||||
insert into tt1 values(ST_GeomFromText('point(10 20)'));
|
||||
drop table tt1;
|
||||
create table T_GEO (GID int auto_increment primary key, geo_c geometrycollection,geo geometry);
|
||||
select * from T_GEO group by geo;
|
||||
GID geo_c geo
|
||||
select * from T_GEO order by geo_c;
|
||||
GID geo_c geo
|
||||
drop table T_GEO;
|
||||
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL SRID 0,
|
||||
c3 LINESTRING NOT NULL SRID 0,c4 POLYGON NOT NULL SRID 0,c5 GEOMETRY NOT NULL SRID 0)
|
||||
ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
|
||||
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
|
||||
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'),
|
||||
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'),
|
||||
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(3,ST_GeomFromText('POINT(4 4)'),ST_GeomFromText('LINESTRING(130 130,140 140,150 150)'),
|
||||
ST_GeomFromText('POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))'),
|
||||
ST_GeomFromText('POLYGON((4 -2,5 -4,6 -5,7 -4,7 2,4 -2))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(4,ST_GeomFromText('POINT(50 50)'),ST_GeomFromText('LINESTRING(200 200,300 300,400 400)'),
|
||||
ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'),
|
||||
ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(5,ST_GeomFromText('POINT(3 3)'),ST_GeomFromText('LINESTRING(400 400,500 500,600 700)'),
|
||||
ST_GeomFromText('POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))'),
|
||||
ST_GeomFromText('POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(6,ST_GeomFromText('POINT(3 3)'),ST_GeomFromText('LINESTRING(40 40,50 50,60 70)'),
|
||||
ST_GeomFromText('POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))'),
|
||||
ST_GeomFromText('POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(7,ST_GeomFromText('POINT(60 70)'),ST_GeomFromText('LINESTRING(40 40,50 50,60 70)'),
|
||||
ST_GeomFromText('POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))'),
|
||||
ST_GeomFromText('POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(8,ST_GeomFromText('POINT(0 0)'),ST_GeomFromText('LINESTRING(40 40,50 50,60 70)'),
|
||||
ST_GeomFromText('POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))'),
|
||||
ST_GeomFromText('POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(9,ST_GeomFromText('POINT(120 120)'),ST_GeomFromText('LINESTRING(100 100,110 110,120 120)'),
|
||||
ST_GeomFromText('POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))'),
|
||||
ST_GeomFromText('POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))'));
|
||||
INSERT INTO tab(c1,c2,c3,c4,c5)
|
||||
VALUES(10,ST_GeomFromText('POINT(160 160)'),ST_GeomFromText('LINESTRING(140 140,150 150,160 160)'),
|
||||
ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))'),
|
||||
ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))'));
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab ORDER BY c1;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab ORDER BY c2;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab ORDER BY c3;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab ORDER BY c4;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab ORDER BY c5;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c1;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c2;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
8 POINT(0 0) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c3;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c4;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c5;
|
||||
c1 ST_Astext(c2) ST_Astext(c4)
|
||||
1 POINT(10 10) POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
|
||||
2 POINT(20 20) POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
|
||||
3 POINT(4 4) POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))
|
||||
4 POINT(50 50) POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
|
||||
5 POINT(3 3) POLYGON((1010 1010,1020 1020,1030 1030,1040 1030,1020 1010,1010 1010))
|
||||
6 POINT(3 3) POLYGON((2010 2010,2020 2020,2030 2030,2040 2030,2020 2010,2010 2010))
|
||||
7 POINT(60 70) POLYGON((3010 3010,3020 3020,3030 3030,3040 3030,3020 3010,3010 3010))
|
||||
9 POINT(120 120) POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020 4010,4010 4010))
|
||||
10 POINT(160 160) POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))
|
||||
SET sql_mode = 'ONLY_FULL_GROUP_BY';
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab GROUP BY c2;
|
||||
ERROR 42000: 'test.tab.c1' is not in GROUP BY
|
||||
SET sql_mode = ' ';
|
||||
drop table tab;
|
||||
CREATE TABLE FF01 (A INT,B GEOMETRY);
|
||||
INSERT INTO FF01 VALUES (1,NULL);
|
||||
INSERT INTO FF01 VALUES (2,POINT(1,2));
|
||||
INSERT INTO FF01 VALUES (3,POINT(-1,-2));
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B = SOME (SELECT B FROM FF01 WHERE A=1);
|
||||
ST_ASTEXT(B)
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B = SOME (SELECT A FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B IN (SELECT B FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
POINT(1 2)
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B LIKE (SELECT B FROM FF01 WHERE B=POINT(1,2));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B NOT IN (SELECT B FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
POINT(-1 -2)
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B = ANY (SELECT A FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B = ALL (SELECT A FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
drop table FF01;
|
||||
create table FF01 (gid int auto_increment primary key, geo geometry SRID 4326,geo_c GEOMETRYCOLLECTION SRID 26918,poi point SRID 4326,lin linestring SRID 26918,pol polygon SRID 4326,M_POI MULTIPOINT SRID 26918,M_LIN MULTILINESTRING SRID 4326 ,M_POL MULTIPOLYGON SRID 26918);
|
||||
SELECT ST_ASTEXT(POL) FROM FF01 WHERE (GEO,GEO_C) = (SELECT GEO,GEO_C FROM FF01 WHERE GID=1);
|
||||
ST_ASTEXT(POL)
|
||||
drop table FF01;
|
||||
create table FF01 (gid int auto_increment primary key, M_POI MULTIPOINT SRID 26918);
|
||||
create table FF02 (gid int auto_increment primary key, geo geometry SRID 4326);
|
||||
SELECT ST_ASTEXT(M_POI) FROM FF01 WHERE M_POI <=> (SELECT M_POI FROM FF02 WHERE GID=1);
|
||||
ST_ASTEXT(M_POI)
|
||||
drop table FF01;
|
||||
drop table FF02;
|
||||
alter system flush plan cache;
|
||||
create table gis_point_plancache (x double, y double, poi geometry);
|
||||
insert into gis_point_plancache (x,y,poi) values (88.9200873939389,-70.01650134265074,st_srid(point(88.9200873939389,-70.01650134265074),4326)),(-131.96607164968344,70.74339201768984,st_srid(point(-131.96607164968344,70.74339201768984),4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (66.70676602312597,68.49638658511424,st_srid(point(66.70676602312597,68.49638658511424),4326)),(38.2111204280196,-84.97214528175294,st_srid(point(38.2111204280196,-84.97214528175294),4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (-135.24378902766549,-45.111689570279204,st_srid(point(-135.24378902766549,-45.111689570279204),4326)),(54.43574907318134,11.87557381602113,st_srid(point(54.43574907318134,11.87557381602113),4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (-51.28971091880538,-16.112290993511024,st_srid(point(-51.28971091880538,-16.112290993511024),4326)),(26.793719900045886,38.22676013634444,st_srid(point(26.793719900045886,38.22676013634444),4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (1.1, 1.2, st_srid(linestring(point(1.1, 1.2), point(1.2, 1.3)), 4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (1.111, 1.211, st_srid(linestring(point(1.111, 1.211), point(1.211, 1.311)), 4326));
|
||||
insert into gis_point_plancache (x,y,poi) values (1.111111, 1.211111, st_srid(linestring(point(1.111111, 1.211111), point(1.211111, 1.311111)), 4326));
|
||||
select x,y,st_astext(poi) from gis_point_plancache;
|
||||
x y st_astext(poi)
|
||||
88.9200873939389 -70.01650134265074 POINT(-70.01650134265074 88.9200873939389)
|
||||
-131.96607164968344 70.74339201768984 POINT(70.74339201768984 -131.96607164968344)
|
||||
66.70676602312597 68.49638658511424 POINT(68.49638658511424 66.70676602312597)
|
||||
38.2111204280196 -84.97214528175294 POINT(-84.97214528175294 38.2111204280196)
|
||||
-135.24378902766549 -45.111689570279204 POINT(-45.111689570279204 -135.24378902766549)
|
||||
54.43574907318134 11.87557381602113 POINT(11.87557381602113 54.43574907318134)
|
||||
-51.28971091880538 -16.112290993511024 POINT(-16.112290993511024 -51.28971091880538)
|
||||
26.793719900045886 38.22676013634444 POINT(38.22676013634444 26.793719900045886)
|
||||
1.1 1.2 LINESTRING(1.2 1.1,1.3 1.2)
|
||||
1.111 1.211 LINESTRING(1.211 1.111,1.311 1.211)
|
||||
1.111111 1.211111 LINESTRING(1.211111 1.111111,1.311111 1.211111)
|
||||
select executions, hit_count, substring(query_sql, 1, 100) as sql_text from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT where query_sql like '%x,y,poi%' order by plan_size desc limit 10;
|
||||
executions hit_count sql_text
|
||||
0 0 select executions, hit_count, substring(query_sql, 1, 100) as sql_text from oceanbase.GV$OB_PLAN_CAC
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (88.9200873939389,-70.01650134265074,st_srid(point(
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (-51.28971091880538,-16.112290993511024,st_srid(poi
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (66.70676602312597,68.49638658511424,st_srid(point(
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (-135.24378902766549,-45.111689570279204,st_srid(po
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (1.1, 1.2, st_srid(linestring(point(1.1, 1.2), poin
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (1.111, 1.211, st_srid(linestring(point(1.111, 1.21
|
||||
1 0 insert into gis_point_plancache (x,y,poi) values (1.111111, 1.211111, st_srid(linestring(point(1.111
|
||||
drop table gis_point_plancache;
|
||||
select json_array(1.1, 1.1, 1.1);
|
||||
json_array(1.1, 1.1, 1.1)
|
||||
[1.1, 1.1, 1.1]
|
||||
select json_array(1.1111, 1.1, 1.1);
|
||||
json_array(1.1111, 1.1, 1.1)
|
||||
[1.1111, 1.1, 1.1]
|
||||
select json_array(1.111111111, 1.1, 1.1);
|
||||
json_array(1.111111111, 1.1, 1.1)
|
||||
[1.111111111, 1.1, 1.1]
|
||||
select st_astext(point(cast(1.11 as double), 1.1)) as plancache_not_share;
|
||||
plancache_not_share
|
||||
POINT(1.11 1.1)
|
||||
select st_astext(point(cast(1.1111 as double), 1.1111)) as plancache_not_share;
|
||||
plancache_not_share
|
||||
POINT(1.1111 1.1111)
|
||||
select cast(1.11 as double), st_astext(point(1.1, 1.1)) as plancache_not_share;
|
||||
cast(1.11 as double) plancache_not_share
|
||||
1.11 POINT(1.1 1.1)
|
||||
select cast(1.11111 as double), st_astext(point(1.1, 1.1111)) as plancache_not_share;
|
||||
cast(1.11111 as double) plancache_not_share
|
||||
1.11111 POINT(1.1 1.1111)
|
||||
select executions, hit_count, substring(query_sql, 1, 100) as sql_text from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT where query_sql like '%plancache_not_share%' and query_sql not like '%OB_PLAN_CACHE_PLAN_STAT%' order by plan_size desc limit 10;
|
||||
executions hit_count sql_text
|
||||
1 0 select st_astext(point(cast(1.11 as double), 1.1)) as plancache_not_share
|
||||
1 0 select st_astext(point(cast(1.1111 as double), 1.1111)) as plancache_not_share
|
||||
1 0 select cast(1.11 as double), st_astext(point(1.1, 1.1)) as plancache_not_share
|
||||
1 0 select cast(1.11111 as double), st_astext(point(1.1, 1.1111)) as plancache_not_share
|
||||
drop table if exists tt2;
|
||||
create table tt2(g GEOMETRY);
|
||||
insert into tt2 values(ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)'));
|
||||
ALTER TABLE tt2 ADD CONSTRAINT qq CHECK(g=ST_GeomFromText('point(10 20)'));
|
||||
ERROR HY000: check constraint violated
|
||||
ALTER TABLE tt2 ADD CONSTRAINT qq CHECK(g=ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)'));
|
||||
drop table tt2;
|
||||
SELECT ST_CONTAINS(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(2 0,2 0))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(2 0))')) A;
|
||||
A
|
||||
1
|
||||
SELECT ST_CONTAINS(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(2 0,2 0))', 4326),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(2 0))', 4326)) A;
|
||||
A
|
||||
1
|
||||
SELECT ST_CONTAINS(ST_GEOMETRYFROMTEXT('POLYGON((2 0,0 0,0 0,2 0))'),ST_GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,1 1,1 0,0 1,0 0))))'));
|
||||
ERROR 22023: Invalid GIS data provided to function.
|
||||
SELECT ST_CONTAINS(
|
||||
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 1e+19,0 0,0 0,0 1e+19)))'),
|
||||
ST_GEOMFROMTEXT('POLYGON((0 0,0 0,0 0,0 0))'));
|
||||
ERROR 22003: coordinate value is out of range in 'st_contains'
|
||||
SELECT ST_CONTAINS(
|
||||
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 9.22e+18,0 0,0 0,0 9.22e+18)))'),
|
||||
ST_GEOMFROMTEXT('POLYGON((0 0,0 0,0 0,0 0))'));
|
||||
ST_CONTAINS(
|
||||
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 9.22e+18,0 0,0 0,0 9.22e+18)))'),
|
||||
ST_GEOMFROMTEXT('POLYGON((0 0,0 0,0 0,0 0))'))
|
||||
0
|
||||
SELECT ST_CONTAINS(
|
||||
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 -9.22e+18,0 0,0 0,0 -9.22e+18)))'),
|
||||
ST_GEOMFROMTEXT('POLYGON((0 0,0 0,0 0,0 0))'));
|
||||
ST_CONTAINS(
|
||||
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 -9.22e+18,0 0,0 0,0 -9.22e+18)))'),
|
||||
ST_GEOMFROMTEXT('POLYGON((0 0,0 0,0 0,0 0))'))
|
||||
0
|
||||
create table tt1(id int,p point);
|
||||
alter table tt1 change p p polygon;
|
||||
ERROR 0A000: Change geometry type not supported
|
||||
desc tt1;
|
||||
Field Type Null Key Default Extra
|
||||
id int(11) YES NULL
|
||||
p point YES NULL
|
||||
drop table tt1;
|
||||
create table tt2(a blob);
|
||||
insert into tt2 values('E6100000010100000000000000000034400000000000002440');
|
||||
select cast(a as point) from tt2;
|
||||
ERROR SR001: There's no spatial reference system with SRID 808531525.
|
||||
drop table tt2;
|
||||
select hex(st_aswkb(x'E61000000108000000000000000e0066C00000000000A06640'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_aswkb.
|
||||
select hex(st_asbinary(x'E61000000108000000000000000e0066C00000000000A06640'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_asbinary.
|
||||
drop table if exists tt1,t1;
|
||||
CREATE TABLE tt1 (
|
||||
id INT NOT NULL ,
|
||||
g GEOMETRY not null srid 4236,
|
||||
p point not null srid 0,
|
||||
l LINESTRING not null srid 26918,
|
||||
po POLYGON not null srid 4236,
|
||||
mu MULTIPOINT not null,
|
||||
ml MULTILINESTRING not null srid 0,
|
||||
mp MULTIPOLYGON not null srid 26918,
|
||||
ge GEOMETRYCOLLECTION not null srid 4236
|
||||
);
|
||||
CREATE INDEX idx02 ON tt1(mu);
|
||||
CREATE INDEX idx03 ON tt1(ml);
|
||||
CREATE INDEX idx05 ON tt1(ge);
|
||||
insert into tt1 values(1,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,10 11,0 10,0 0)),((-5 -6,7 5,7 7,5 7, -5 -6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
insert into tt1 values(1,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,10 11,0 10,0 0)),((-5 -6,7 5,7 7,5 7, -5 -6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
insert into tt1 values(2,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,10 11,0 10,0 0)),((-5 -6,7 5,7 7,5 7, -5 -6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
insert into tt1 values(2,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((1 1,10 0,10 11,0 10,1 1)),((-5 -6,7 5,7 7,5 7, -5 -6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
insert into tt1 values(1,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,10 11,0 10,0 0)),((5 6,7 5,7 7,5 7, 5 6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
insert into tt1 values(1,ST_GeomFromText('POINT(15 20)',4236),ST_GeomFromText('POINT(15 20)',0),ST_GeomFromText('LINESTRING(0 0, 10 10, 20 25, 50 60)',26918),ST_GeomFromText('POLYGON((0 1,10 0,9 10,0 10,0 1),(5 5,7 5,8 7,5 7, 5 5))',4236),ST_GeomFromText('MULTIPOINT(0 1, -20 25, 60 -60)'),
|
||||
ST_GeomFromText('MULTILINESTRING((11 10, 20 -20), (-15 20, 30 15))',0),ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,10 11,0 10,0 0)),((-5 -6,7 5,7 7,5 7, -5 -6)))',26918),
|
||||
ST_GeomFromText('GEOMETRYCOLLECTION(POINT(11 10), POINT(30 -30), LINESTRING(-15 15, -20 20))',4236));
|
||||
explain select id from tt1 where ST_Intersects(ge,ST_GeomFromText('POINT(15 20)',4236));
|
||||
Query Plan
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |TABLE FULL SCAN|tt1(idx05)|1 |299 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([tt1.id]), filter([ST_Intersects(tt1.ge, ST_GeomFromText('POINT(15 20)', 4236))])
|
||||
access([tt1.__pk_increment], [tt1.ge], [tt1.id]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([tt1.__cellid_24], [tt1.__mbr_24], [tt1.__pk_increment]), range(1240640185631322861,MIN,MIN ; 1240640185631322861,MAX,MAX), (1240640185631322860,
|
||||
MIN,MIN ; 1240640185631322860,MAX,MAX), (1240640185631322864,MIN,MIN ; 1240640185631322864,MAX,MAX), (1240640185631322816,MIN,MIN ; 1240640185631322816,
|
||||
MAX,MAX), (1240640185631322880,MIN,MIN ; 1240640185631322880,MAX,MAX), (1240640185631323136,MIN,MIN ; 1240640185631323136,MAX,MAX), (1240640185631322112,
|
||||
MIN,MIN ; 1240640185631322112,MAX,MAX), (1240640185631326208,MIN,MIN ; 1240640185631326208,MAX,MAX), (1240640185631309824,MIN,MIN ; 1240640185631309824,
|
||||
MAX,MAX), (1240640185631506432,MIN,MIN ; 1240640185631506432,MAX,MAX), (1240640185632292864,MIN,MIN ; 1240640185632292864,MAX,MAX), (1240640185633341440,
|
||||
MIN,MIN ; 1240640185633341440,MAX,MAX), (1240640185637535744,MIN,MIN ; 1240640185637535744,MAX,MAX), (1240640185587204096,MIN,MIN ; 1240640185587204096,
|
||||
MAX,MAX), (1240640185520095232,MIN,MIN ; 1240640185520095232,MAX,MAX), (1240640184714788864,MIN,MIN ; 1240640184714788864,MAX,MAX), (1240640185788530688,
|
||||
MIN,MIN ; 1240640185788530688,MAX,MAX), (1240640181493563392,MIN,MIN ; 1240640181493563392,MAX,MAX), (1240640198673432576,MIN,MIN ; 1240640198673432576,
|
||||
MAX,MAX), (1240640267392909312,MIN,MIN ; 1240640267392909312,MAX,MAX), (1240639442759188480,MIN,MIN ; 1240639442759188480,MAX,MAX), (1240640542270816256,
|
||||
MIN,MIN ; 1240640542270816256,MAX,MAX), (1240653736410349568,MIN,MIN ; 1240653736410349568,MAX,MAX), (1240671328596393984,MIN,MIN ; 1240671328596393984,
|
||||
MAX,MAX), (1240460222363860992,MIN,MIN ; 1240460222363860992,MAX,MAX), (1239615797433729024,MIN,MIN ; 1239615797433729024,MAX,MAX), (1238489897526886400,
|
||||
MIN,MIN ; 1238489897526886400,MAX,MAX), (1242993497154256896,MIN,MIN ; 1242993497154256896,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
drop table tt1;
|
||||
create table t1 (a geometry not null, spatial index(a)) row_format=dynamic;
|
||||
INSERT IGNORE INTO t1 VALUES (NULL);
|
||||
ERROR 23000: Column 'a' cannot be null
|
||||
drop table t1;
|
||||
drop table if exists t;
|
||||
create table t1(g geometry NOT NULL SRID 3294);
|
||||
create index idx on t1 (g);
|
||||
INSERT INTO t1 (g) VALUES
|
||||
(ST_GeomFromText('POINT(0 0)', 3294)),
|
||||
(ST_GeomFromText('POINT(1 1)', 3294)),
|
||||
(ST_GeomFromText('POINT(2 2)', 3294)),
|
||||
(ST_GeomFromText('POINT(3 3)', 3294)),
|
||||
(ST_GeomFromText('POINT(4 4)', 3294)),
|
||||
(ST_GeomFromText('POINT(5 5.5)', 3294)),
|
||||
(ST_GeomFromText('POINT(6 6)', 3294)),
|
||||
(ST_GeomFromText('POINT(7 7)', 3294)),
|
||||
(ST_GeomFromText('LINESTRING(0 0, 3 3)',3294));
|
||||
explain select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where _st_covers(a.g, b.g);
|
||||
Query Plan
|
||||
===============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |27 |345 |
|
||||
|1 |├─TABLE FULL SCAN |a |9 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE FULL SCAN|b(idx)|3 |38 |
|
||||
===============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([st_astext(a.g)], [st_astext(b.g)]), filter(nil)
|
||||
conds(nil), nl_params_([a.g(:0)]), use_batch=false
|
||||
1 - output([a.g]), filter(nil)
|
||||
access([a.g]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([a.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([b.g]), filter([_st_covers(:0, b.g)])
|
||||
access([b.__pk_increment], [b.g]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([b.__cellid_16], [b.__mbr_16], [b.__pk_increment]), range(MIN ; MAX)
|
||||
explain select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where st_contains(a.g, b.g);
|
||||
Query Plan
|
||||
===============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |27 |345 |
|
||||
|1 |├─TABLE FULL SCAN |a |9 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE FULL SCAN|b(idx)|3 |38 |
|
||||
===============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([st_astext(a.g)], [st_astext(b.g)]), filter(nil)
|
||||
conds(nil), nl_params_([a.g(:0)]), use_batch=false
|
||||
1 - output([a.g]), filter(nil)
|
||||
access([a.g]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([a.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([b.g]), filter([st_contains(:0, b.g)])
|
||||
access([b.__pk_increment], [b.g]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([b.__cellid_16], [b.__mbr_16], [b.__pk_increment]), range(MIN ; MAX)
|
||||
explain select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where st_within(a.g, b.g);
|
||||
Query Plan
|
||||
===============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |27 |345 |
|
||||
|1 |├─TABLE FULL SCAN |a |9 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE FULL SCAN|b(idx)|3 |38 |
|
||||
===============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([st_astext(a.g)], [st_astext(b.g)]), filter(nil)
|
||||
conds(nil), nl_params_([a.g(:0)]), use_batch=false
|
||||
1 - output([a.g]), filter(nil)
|
||||
access([a.g]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([a.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([b.g]), filter([st_within(:0, b.g)])
|
||||
access([b.__pk_increment], [b.g]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([b.__cellid_16], [b.__mbr_16], [b.__pk_increment]), range(MIN ; MAX)
|
||||
explain select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where _st_dwithin(a.g, b.g, 0.1);
|
||||
Query Plan
|
||||
===============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |27 |345 |
|
||||
|1 |├─TABLE FULL SCAN |a |9 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE FULL SCAN|b(idx)|3 |38 |
|
||||
===============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([st_astext(a.g)], [st_astext(b.g)]), filter(nil)
|
||||
conds(nil), nl_params_([a.g(:0)]), use_batch=false
|
||||
1 - output([a.g]), filter(nil)
|
||||
access([a.g]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([a.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([b.g]), filter([_st_dwithin(:0, b.g, cast(0.1, DOUBLE(-1, -1)))])
|
||||
access([b.__pk_increment], [b.g]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([b.__cellid_16], [b.__mbr_16], [b.__pk_increment]), range(MIN ; MAX)
|
||||
select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where _st_covers(a.g, b.g);
|
||||
st_astext(a.g) st_astext(b.g)
|
||||
POINT(0 0) POINT(0 0)
|
||||
POINT(1 1) POINT(1 1)
|
||||
POINT(2 2) POINT(2 2)
|
||||
POINT(3 3) POINT(3 3)
|
||||
POINT(4 4) POINT(4 4)
|
||||
POINT(5 5.5) POINT(5 5.5)
|
||||
POINT(6 6) POINT(6 6)
|
||||
POINT(7 7) POINT(7 7)
|
||||
LINESTRING(0 0,3 3) POINT(0 0)
|
||||
LINESTRING(0 0,3 3) POINT(1 1)
|
||||
LINESTRING(0 0,3 3) POINT(2 2)
|
||||
LINESTRING(0 0,3 3) POINT(3 3)
|
||||
LINESTRING(0 0,3 3) LINESTRING(0 0,3 3)
|
||||
select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where st_contains(a.g, b.g);
|
||||
st_astext(a.g) st_astext(b.g)
|
||||
POINT(0 0) POINT(0 0)
|
||||
POINT(1 1) POINT(1 1)
|
||||
POINT(2 2) POINT(2 2)
|
||||
POINT(3 3) POINT(3 3)
|
||||
POINT(4 4) POINT(4 4)
|
||||
POINT(5 5.5) POINT(5 5.5)
|
||||
POINT(6 6) POINT(6 6)
|
||||
POINT(7 7) POINT(7 7)
|
||||
LINESTRING(0 0,3 3) POINT(1 1)
|
||||
LINESTRING(0 0,3 3) POINT(2 2)
|
||||
LINESTRING(0 0,3 3) LINESTRING(0 0,3 3)
|
||||
select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where st_within(a.g, b.g);
|
||||
st_astext(a.g) st_astext(b.g)
|
||||
POINT(0 0) POINT(0 0)
|
||||
POINT(1 1) POINT(1 1)
|
||||
POINT(1 1) LINESTRING(0 0,3 3)
|
||||
POINT(2 2) POINT(2 2)
|
||||
POINT(2 2) LINESTRING(0 0,3 3)
|
||||
POINT(3 3) POINT(3 3)
|
||||
POINT(4 4) POINT(4 4)
|
||||
POINT(5 5.5) POINT(5 5.5)
|
||||
POINT(6 6) POINT(6 6)
|
||||
POINT(7 7) POINT(7 7)
|
||||
LINESTRING(0 0,3 3) LINESTRING(0 0,3 3)
|
||||
select st_astext(a.g), st_astext(b.g) from t1 a join t1 b where _st_dwithin(a.g, b.g, 0.1);
|
||||
st_astext(a.g) st_astext(b.g)
|
||||
POINT(0 0) POINT(0 0)
|
||||
POINT(0 0) LINESTRING(0 0,3 3)
|
||||
POINT(1 1) POINT(1 1)
|
||||
POINT(1 1) LINESTRING(0 0,3 3)
|
||||
POINT(2 2) POINT(2 2)
|
||||
POINT(2 2) LINESTRING(0 0,3 3)
|
||||
POINT(3 3) POINT(3 3)
|
||||
POINT(3 3) LINESTRING(0 0,3 3)
|
||||
POINT(4 4) POINT(4 4)
|
||||
POINT(5 5.5) POINT(5 5.5)
|
||||
POINT(6 6) POINT(6 6)
|
||||
POINT(7 7) POINT(7 7)
|
||||
LINESTRING(0 0,3 3) POINT(0 0)
|
||||
LINESTRING(0 0,3 3) POINT(1 1)
|
||||
LINESTRING(0 0,3 3) POINT(2 2)
|
||||
LINESTRING(0 0,3 3) POINT(3 3)
|
||||
LINESTRING(0 0,3 3) LINESTRING(0 0,3 3)
|
||||
select st_astext(g) from t1 where st_within(ST_GeomFromText('POINT(2.5 2.5)', 3294),st_buffer(g, 0));
|
||||
st_astext(g)
|
||||
LINESTRING(0 0,3 3)
|
||||
drop table if exists FF01;
|
||||
CREATE TABLE FF01 (A INT,B GEOMETRY);
|
||||
INSERT INTO FF01 VALUES (1,NULL);
|
||||
INSERT INTO FF01 VALUES (2,POINT(1,2));
|
||||
INSERT INTO FF01 VALUES (3,POINT(-1,-2));
|
||||
SELECT ST_ASTEXT(B) FROM FF01 WHERE B NOT IN (SELECT /*+no_unnest*/B FROM FF01 WHERE B=POINT(1,2));
|
||||
ST_ASTEXT(B)
|
||||
POINT(-1 -2)
|
||||
drop table FF01;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,284 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Test of GEOMETRY filter.
|
||||
# ----------------------------------------------------------------------
|
||||
drop table if exists matrix;
|
||||
create table matrix (TinyIntType tinyint(1),SmallIntType smallint(2),MediumIntType mediumint(3),Int32Type int(4),IntType bigint(5),UTinyIntType tinyint(1) unsigned,USmallIntType smallint(2) unsigned,UMediumIntType mediumint(3) unsigned,UInt32Type int(4) unsigned,UInt64Type bigint(5) unsigned,FloatType float,DoubleType double,UFloatType float unsigned,UDoubleType double unsigned,NumberType decimal(8,2),UNumberType decimal(8,2) unsigned,DateTimeType datetime,TimestampType timestamp,DateType date,TimeType time,YearType year,VarcharType varchar(9),CharType char(10),VarbinaryType varbinary(11),BinaryType binary(12),ExtendType int(13),TinyTextType TINYTEXT, TextType TEXT,MediumTextType MEDIUMTEXT, LongTextType LONGTEXT CHARSET utf8, BitType BIT(63),EnumType ENUM('a', 'b', 'c') default 'a',SetType SET('a', 'b', 'c') default 'b',JsonType json, GeometryType geometry);
|
||||
insert into matrix values (-1, -2, -3, -4, -5, 1, 2, 3, 4, 5, -1.1, -1.2, 1.1, 1.2, -1.3, 1.3, '2014-01-01 12:12:12', '2014-01-01 12:12:12', '2014-01-01', '12:12:12', 2014, 'varchar', 'char', 'varbinary', 'binary', 0,'tinytext','text','mediumtext','longtext',b'01010101010101','a','c','"jsonstring"', ST_GeomFromText('POINT(1 1)'));
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = TinyIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = SmallIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = MediumIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = Int32Type;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = IntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UTinyIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = USmallIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UMediumIntType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UInt32Type;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UInt64Type;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = FloatType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = DoubleType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UFloatType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UDoubleType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = NumberType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = UNumberType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = DateTimeType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = TimestampType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = DateType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = TimeType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = YearType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = VarcharType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = CharType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = VarbinaryType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = BinaryType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select st_astext(GeometryType) from matrix where ST_GeomFromText('POINT(1 1)') = ExtendType;
|
||||
st_astext(GeometryType)
|
||||
POINT(1 1)
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = TinyTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = TextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = MediumTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = LongTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = BitType;
|
||||
TinyIntType SmallIntType MediumIntType Int32Type IntType UTinyIntType USmallIntType UMediumIntType UInt32Type UInt64Type FloatType DoubleType UFloatType UDoubleType NumberType UNumberType DateTimeType TimestampType DateType TimeType YearType VarcharType CharType VarbinaryType BinaryType ExtendType TinyTextType TextType MediumTextType LongTextType BitType EnumType SetType JsonType GeometryType
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = EnumType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = SetType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') = JsonType;
|
||||
ERROR 0A000: geomerty, json not supported
|
||||
select st_astext(GeometryType) from matrix where ST_GeomFromText('POINT(1 1)') = GeometryType;
|
||||
st_astext(GeometryType)
|
||||
POINT(1 1)
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > TinyIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < SmallIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > MediumIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < Int32Type;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > IntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < UTinyIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > USmallIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= UMediumIntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= UInt32Type;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= UInt64Type;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= FloatType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= DoubleType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= UFloatType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= UDoubleType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= NumberType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= UNumberType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > DateTimeType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < TimestampType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > DateType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < TimeType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= YearType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < VarcharType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= CharType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < VarbinaryType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') >= BinaryType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= ExtendType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > TinyTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= TextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > MediumTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= LongTextType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > BitType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') <= EnumType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > SetType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') < JsonType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') > GeometryType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') | IntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ST_GeomFromText('POINT(1 1)') | GeometryType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where ~GeometryType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType^IntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType&IntType;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType>>1;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType<<1;
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType like 'a';
|
||||
ERROR HY000: Invalid argument
|
||||
select * from matrix where GeometryType between ST_GeomFromText('POINT(1 1)') and ST_GeomFromText('POINT(2 2)');
|
||||
ERROR HY000: Invalid argument
|
||||
select MIN(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
select MAX(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
select LEAST(st_geomfromtext('POINT(0 0)'), st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
select GREATEST(st_geomfromtext('POINT(0 0)'), st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
select st_geomfromtext('POINT(0 0)') + st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
select st_geomfromtext('POINT(0 0)') - st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
select st_geomfromtext('POINT(0 0)') * st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
select st_geomfromtext('POINT(0 0)') / st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
select st_geomfromtext('POINT(0 0)') DIV st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
select st_geomfromtext('POINT(0 0)') % st_geomfromtext('POINT(1 1)');
|
||||
ERROR 22000: Invalid data type for the operation
|
||||
SELECT EXP(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT lOG2(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT lOG10(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT LN(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT lOG(3, st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT POW(3, st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT POW(3, GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT sqrt(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT acos(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT asin(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT atan(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT cos(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT sin(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT tan(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT cot(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT round(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT round(st_geomfromtext('POINT(1 1)'), 1);
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT round(st_geomfromtext('POINT(1 1)'), -1);
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT truncate(st_geomfromtext('POINT(1 1)'),1);
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT truncate(GeometryType ,1) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT ceiling(st_geomfromtext('POINT(1 1)'));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT ceiling(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT abs(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT abs(st_geomfromtext('POINT(1 1)')) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT -GeometryType from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT -st_geomfromtext('POINT(1 1)') from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT rand(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT rand(st_geomfromtext('POINT(1 1)')) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT sign(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT sign(st_geomfromtext('POINT(1 1)')) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT degrees(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT degrees(st_geomfromtext('POINT(1 1)')) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT radians(GeometryType) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT radians(st_geomfromtext('POINT(1 1)')) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT format(GeometryType, 2) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT format(st_geomfromtext('POINT(1 1)'), 2) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT conv(st_geomfromtext('POINT(1 1)'), 1, 2) from dual;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT conv(-1, st_geomfromtext('POINT(1 1)'), 2) from dual;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT conv(-1, 1, st_geomfromtext('POINT(1 1)')) from dual;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT conv(GeometryType, 1, 1) from matrix;
|
||||
ERROR HY000: Invalid argument
|
||||
drop table if exists FF01;
|
||||
CREATE TABLE FF01(A INT, B GEOMETRY);
|
||||
INSERT INTO FF01 VALUES (1, NULL);
|
||||
INSERT INTO FF01 VALUES (1, ST_GeomFromText('POINT(0 0)'));
|
||||
SELECT A FROM FF01 WHERE B <=> NULL;
|
||||
A
|
||||
1
|
||||
SELECT A FROM FF01 GROUP BY B HAVING AVG(B) IS NULL;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT A FROM FF01 GROUP BY B HAVING SUM(B) IS NULL;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT A FROM FF01 GROUP BY B HAVING STD(B) IS NULL;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT A FROM FF01 GROUP BY B HAVING STDDEV_POP(B) IS NULL;
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT A FROM FF01 GROUP BY B HAVING VARIANCE(B) IS NULL;
|
||||
ERROR HY000: Invalid argument
|
||||
DROP TABLE FF01;
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,494 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of geometry ddl.
|
||||
# ----------------------------------------------------------------------
|
||||
# Create a table with three columns:
|
||||
# 1) Normal POINT column without SRID specification
|
||||
# 2) Normal POINT column with SRID 0
|
||||
# 3) Normal POINT column with SRID 4326
|
||||
drop table if exists t1,tt1;
|
||||
CREATE TABLE t1 (no_srid POINT DEFAULT NULL,
|
||||
srid_0 POINT SRID 0 DEFAULT NULL,
|
||||
srid_4326 POINT SRID 4326 DEFAULT NULL);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`no_srid` point DEFAULT NULL,
|
||||
`srid_0` point /*!80003 SRID 0 */ DEFAULT NULL,
|
||||
`srid_4326` point /*!80003 SRID 4326 */ DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
# Insert some data with correct SRID into these columns
|
||||
INSERT INTO t1 (no_srid, srid_0, srid_4326)
|
||||
VALUES (ST_GeomFromText('POINT(0 0)', 0),
|
||||
ST_GeomFromText('POINT(0 0)', 0),
|
||||
ST_GeomFromText('POINT(0 0)', 4326));
|
||||
INSERT INTO t1 (no_srid, srid_0, srid_4326)
|
||||
VALUES (ST_GeomFromText('POINT(1 1)', 4326),
|
||||
ST_GeomFromText('POINT(1 1)', 0),
|
||||
ST_GeomFromText('POINT(1 1)', 4326));
|
||||
# Insert data with wrong SRID, which should fail.
|
||||
INSERT INTO t1 (srid_0) VALUES (ST_GeomFromText('POINT(1 1)', 4326));
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 4326, but the SRID of the column is 0. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
INSERT INTO t1 (srid_4326) VALUES (ST_GeomFromText('POINT(1 1)', 0));
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
INSERT INTO t1 (srid_4326) VALUES (POINT(0, 0));
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
# Try to alter the SRID of the columns, which should fail for all columns
|
||||
# now since they already contain data.
|
||||
ALTER TABLE t1 CHANGE COLUMN no_srid no_srid POINT SRID 0 DEFAULT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN srid_0 srid_0 POINT SRID 4326 DEFAULT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN srid_4326 srid_4326 POINT SRID 0 DEFAULT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
# Removing the SRID specification from a column should work just fine.
|
||||
# Setting the SRID to a non-existing SRID should not work.
|
||||
ALTER TABLE t1 CHANGE COLUMN srid_4326 srid_1 POINT SRID 1 DEFAULT NULL;
|
||||
ERROR SR001: There's no spatial reference system with SRID 1.
|
||||
DROP TABLE t1;
|
||||
# Creating a geometry column with a non-existing SRID should not work
|
||||
CREATE TABLE t1 (col1 POINT SRID 1);
|
||||
ERROR SR001: There's no spatial reference system with SRID 1.
|
||||
# Try to create a table without the SRID property, insert data with
|
||||
# different SRIDs and then add the SRID property (which should not work).
|
||||
CREATE TABLE t1 (col1 POINT);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` point DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (ST_GeomFromText('POINT(1 1)', 4326)),
|
||||
(ST_GeomFromText('POINT(2 2)', 0)),
|
||||
(ST_GeomFromText('POINT(3 3)', 4326)),
|
||||
(ST_GeomFromText('POINT(4 4)', 0)),
|
||||
(ST_GeomFromText('POINT(5 5)', 4326)),
|
||||
(ST_GeomFromText('POINT(6 6)', 0));
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT SRID 4326;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT SRID 4326;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
DROP TABLE t1;
|
||||
# Creating a column with SRID property on a MyISAM table should only
|
||||
# be supported if the SRID represents a cartesian coordinate system.
|
||||
drop table if exists t1, t2;
|
||||
CREATE TABLE t1 (col1 POINT SRID 0) ENGINE = MyISAM;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'MyISAM'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` point /*!80003 SRID 0 */ DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
CREATE TABLE t2 (col1 POINT SRID 2000) ENGINE = MyISAM;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'MyISAM'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` point /*!80003 SRID 0 */ DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
DROP TABLE t1, t2;
|
||||
# It should not be possible to use the SRID property with any other types
|
||||
# than geometric types.
|
||||
CREATE TABLE t1 (col1 DOUBLE SRID 0);
|
||||
ERROR HY000: Incorrect usage of srid.
|
||||
CREATE TABLE t1 (col1 BLOB SRID 0);
|
||||
ERROR HY000: Incorrect usage of srid.
|
||||
CREATE TABLE t1 (col1 VARCHAR(255) SRID 0);
|
||||
ERROR HY000: Incorrect usage of srid.
|
||||
# Check that any indexes on SRID-less columns are ignored by the
|
||||
# optimizer
|
||||
CREATE TABLE t1 (col1 POINT NOT NULL, SPATIAL INDEX (col1));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` point NOT NULL,
|
||||
SPATIAL KEY `col1` (`col1`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (POINT(0, 0)), (POINT(0.5, 0.5)), (POINT(1, 1));
|
||||
# The following query plan should NOT use the index on "col1", since
|
||||
# the column does not have the SRID property defined.
|
||||
SELECT ST_ASTEXT(col1) FROM t1;
|
||||
ST_ASTEXT(col1)
|
||||
POINT(0 0)
|
||||
POINT(0.5 0.5)
|
||||
POINT(1 1)
|
||||
DROP TABLE t1;
|
||||
# Check that we print error message for misuse of SRID with non-geometric
|
||||
# data type instead of "SRID not found"
|
||||
CREATE TABLE t1 (a INTEGER SRID 1);
|
||||
ERROR HY000: Incorrect usage of srid.
|
||||
CREATE TABLE t1 (a INTEGER);
|
||||
ALTER TABLE t1 MODIFY COLUMN a INTEGER SRID 1;
|
||||
ERROR HY000: Incorrect usage of srid.
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#26594499 WL#8592:ALTER TABLE ADD SPATIAL INDEX RETURNS CANNOT GET
|
||||
# GEOMETRY OBJECT ERROR
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
g1 geometry NOT NULL,
|
||||
g3 geometry SRID 2000 NOT NULL,
|
||||
g4 geometry SRID 4326 NOT NULL
|
||||
);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`g1` geometry NOT NULL,
|
||||
`g3` geometry NOT NULL /*!80003 SRID 2000 */,
|
||||
`g4` geometry NOT NULL /*!80003 SRID 4326 */
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (ST_GeomFromText('POINT(0 0)'),
|
||||
ST_GeomFromText('POINT(0 0)', 2000), ST_GeomFromText('POINT(0 0)', 4326));
|
||||
ALTER TABLE t1 add spatial index idx1(g4);
|
||||
ALTER TABLE t1 add spatial index idx3(g3);
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 POINT SRID 4294967296);
|
||||
ERROR 22003: srid value is out of range in 'UINT32_MAX'
|
||||
#
|
||||
# Check that adding, modifying and removing spatial indexes works well
|
||||
# with SRID columns
|
||||
#
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (col_no_srid POINT NOT NULL,
|
||||
col_srid_0 POINT SRID 0 NOT NULL,
|
||||
col_srid_4326 POINT SRID 4326 NOT NULL);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col_no_srid` point NOT NULL,
|
||||
`col_srid_0` point NOT NULL /*!80003 SRID 0 */,
|
||||
`col_srid_4326` point NOT NULL /*!80003 SRID 4326 */
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (
|
||||
ST_GeomFromText("POINT(0 0)", 0),
|
||||
ST_GeomFromText("POINT(0 0)", 0),
|
||||
ST_GeomFromText("POINT(0 0)", 4326));
|
||||
INSERT INTO t1 VALUES (
|
||||
ST_GeomFromText("POINT(1 1)", 4326),
|
||||
ST_GeomFromText("POINT(1 1)", 0),
|
||||
ST_GeomFromText("POINT(1 1)", 4326));
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx1 (col_no_srid);
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx2 (col_srid_0);
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx3 (col_srid_4326);
|
||||
ALTER TABLE t1 DROP INDEX idx2;
|
||||
ALTER TABLE t1 DROP INDEX idx3;
|
||||
ALTER TABLE t1 DROP INDEX idx1;
|
||||
CREATE SPATIAL INDEX idx1 ON t1 (col_srid_4326);
|
||||
CREATE SPATIAL INDEX idx2 ON t1 (col_no_srid);
|
||||
CREATE SPATIAL INDEX idx3 ON t1 (col_srid_0);
|
||||
DROP INDEX idx1 ON t1;
|
||||
DROP INDEX idx2 ON t1;
|
||||
DROP INDEX idx3 ON t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col_no_srid POINT NOT NULL,
|
||||
col_srid_0 POINT SRID 0 NOT NULL,
|
||||
col_srid_4326 POINT SRID 4326 NOT NULL,
|
||||
SPATIAL INDEX idx1 (col_no_srid),
|
||||
SPATIAL INDEX idx2 (col_srid_0),
|
||||
SPATIAL INDEX idx3 (col_srid_4326));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col_no_srid` point NOT NULL,
|
||||
`col_srid_0` point NOT NULL /*!80003 SRID 0 */,
|
||||
`col_srid_4326` point NOT NULL /*!80003 SRID 4326 */,
|
||||
SPATIAL KEY `idx1` (`col_no_srid`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx2` (`col_srid_0`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx3` (`col_srid_4326`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (
|
||||
ST_GeomFromText("POINT(0 0)", 0),
|
||||
ST_GeomFromText("POINT(0 0)", 0),
|
||||
ST_GeomFromText("POINT(0 0)", 4326));
|
||||
INSERT INTO t1 VALUES (
|
||||
ST_GeomFromText("POINT(1 1)", 4326),
|
||||
ST_GeomFromText("POINT(1 1)", 0),
|
||||
ST_GeomFromText("POINT(1 1)", 4326));
|
||||
DROP INDEX idx3 ON t1;
|
||||
DROP INDEX idx2 ON t1;
|
||||
DROP INDEX idx1 ON t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Altering the SRID specification should not be allowed if there is a
|
||||
# spatial index on the column.
|
||||
#
|
||||
CREATE TABLE t1 (col1 POINT NOT NULL SRID 4326,
|
||||
SPATIAL INDEX idx1 (col1));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` point NOT NULL /*!80003 SRID 4326 */,
|
||||
SPATIAL KEY `idx1` (`col1`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL SRID 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL SRID 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL SRID 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL SRID 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col1 POINT NOT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col2 POINT NOT NULL SRID 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
ALTER TABLE t1 CHANGE COLUMN col1 col2 POINT NOT NULL;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#26594499 WL#8592: CANNOT GET GEOMETRY OBJECT ERROR
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
g1 geometry NOT NULL,
|
||||
g3 geometry SRID 2000 NOT NULL,
|
||||
g4 geometry SRID 4326 NOT NULL
|
||||
);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`g1` geometry NOT NULL,
|
||||
`g3` geometry NOT NULL /*!80003 SRID 2000 */,
|
||||
`g4` geometry NOT NULL /*!80003 SRID 4326 */
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
INSERT INTO t1 VALUES (ST_GeomFromText('POINT(0 0)'),
|
||||
ST_GeomFromText('POINT(0 0)', 2000), ST_GeomFromText('POINT(0 0)', 4326));
|
||||
ALTER TABLE t1 add spatial index idx1(g4);
|
||||
ALTER TABLE t1 add spatial index idx3(g3);
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#27015964 USELESS SPATIAL INDEX CAN BE CREATED WITHOUT WARNING
|
||||
#
|
||||
# Creating a table with a spatial index on a SRID-less column should
|
||||
# raise a warning.
|
||||
CREATE TABLE t1 (
|
||||
g1 POINT NOT NULL
|
||||
, g2 POINT NOT NULL
|
||||
, g3 POINT NOT NULL SRID 0
|
||||
, SPATIAL INDEX idx1 (g1)
|
||||
, SPATIAL INDEX idx2 (g2)
|
||||
, SPATIAL INDEX idx3 (g3));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`g1` point NOT NULL,
|
||||
`g2` point NOT NULL,
|
||||
`g3` point NOT NULL /*!80003 SRID 0 */,
|
||||
SPATIAL KEY `idx1` (`g1`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx2` (`g2`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx3` (`g3`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
DROP INDEX idx1 ON t1;
|
||||
DROP INDEX idx2 ON t1;
|
||||
DROP INDEX idx3 ON t1;
|
||||
# Verify that we get the same warning when using CREATE INDEX syntax.
|
||||
CREATE SPATIAL INDEX idx1 ON t1 (g1);
|
||||
CREATE SPATIAL INDEX idx2 ON t1 (g2);
|
||||
CREATE SPATIAL INDEX idx3 ON t1 (g3);
|
||||
DROP INDEX idx1 ON t1;
|
||||
DROP INDEX idx2 ON t1;
|
||||
DROP INDEX idx3 ON t1;
|
||||
# Verify that we get the same warning when using ALTER TABLE syntax.
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx1 (g1);
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx2 (g2);
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX idx3 (g3);
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#27220467 SERVER HANGS WHILE CREATING A NEW SRS WHICH IS USED IN
|
||||
# ANOTHER CLIENT
|
||||
#
|
||||
# Try to create a point column using a SRID that doesn't exist
|
||||
CREATE TABLE t1 (col1 POINT SRID 4326, col2 POINT SRID 1000000000);
|
||||
ERROR SR001: There's no spatial reference system with SRID 1000000000.
|
||||
# Force the error to happen after all the columns are contextualized.
|
||||
# Verify the same behavior for ALTER TABLE as well.
|
||||
CREATE TABLE t1 (col1 INT);
|
||||
ALTER TABLE t1 ADD COLUMN col2 POINT SRID 1000000000;
|
||||
ERROR SR001: There's no spatial reference system with SRID 1000000000.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col_no_srid POINT NOT NULL,
|
||||
col_srid_0 POINT SRID 0 NOT NULL,
|
||||
col_srid_4326 POINT SRID 4326 NOT NULL,
|
||||
SPATIAL INDEX idx1 (col_no_srid),
|
||||
SPATIAL INDEX idx2 (col_srid_0),
|
||||
SPATIAL INDEX idx3 (col_srid_4326));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col_no_srid` point NOT NULL,
|
||||
`col_srid_0` point NOT NULL /*!80003 SRID 0 */,
|
||||
`col_srid_4326` point NOT NULL /*!80003 SRID 4326 */,
|
||||
SPATIAL KEY `idx1` (`col_no_srid`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx2` (`col_srid_0`) BLOCK_SIZE 16384 LOCAL,
|
||||
SPATIAL KEY `idx3` (`col_srid_4326`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
DROP TABLE t1;
|
||||
create table tt1(p POINT SRID -1);
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '-1)' at line 1
|
||||
create table tt1(p POINT SRID 'test');
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ''test')' at line 1
|
||||
create table tt1(p POINT SRID 0.7);
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '0.7)' at line 1
|
||||
create table tt1(p POINT SRID null);
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'null)' at line 1
|
||||
create table tt1(p POINT SRID '');
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ''')' at line 1
|
||||
create table tt1(p POINT SRID 4294967295);
|
||||
DROP TABLE tt1;
|
||||
create table tt1(g GEOMETRY primary key);
|
||||
ERROR HY000: Spatial indexes can't be primary or unique indexes.
|
||||
create table tt1(g geometry, primary key (g));
|
||||
ERROR HY000: Spatial indexes can't be primary or unique indexes.
|
||||
create table tt2(p point unique key);
|
||||
ERROR HY000: Spatial indexes can't be primary or unique indexes.
|
||||
create table tt2(p point, unique key (p));
|
||||
ERROR HY000: Spatial indexes can't be primary or unique indexes.
|
||||
create table child(i int primary key, g geometry not null srid 4326);
|
||||
create table parent(i int primary key, g geometry not null srid 4326, constraint g1_fk foreign key(g) references child(g));
|
||||
ERROR HY000: Cannot add foreign key constraint
|
||||
drop table child;
|
||||
drop table if exists T_GEO;
|
||||
drop view if exists V_T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key, geometry geometry not null srid 4326);
|
||||
create view V_T_GEO AS SELECT * FROM T_GEO;
|
||||
desc V_T_GEO;
|
||||
Field Type Null Key Default Extra
|
||||
gid int(11) NO NULL
|
||||
geometry geometry NO NULL
|
||||
drop view V_T_GEO;
|
||||
drop table T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key, geo geometry ,geo_c GEOMETRYCOLLECTION,poi point,lin linestring ,pol polygon,M_POI MULTIPOINT,M_LIN MULTILINESTRING ,M_POL MULTIPOLYGON );
|
||||
create view V_T_GEO AS SELECT * FROM T_GEO;
|
||||
insert into V_T_GEO(POI) VALUES (ST_GEOMFROMTEXT('POLYGON((0 0,1 1,1 0,0 1,0 0)) '));
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
SELECT ST_ASTEXT(poi) FROM V_T_GEO;
|
||||
ST_ASTEXT(poi)
|
||||
SELECT ST_ASTEXT(poi) FROM T_GEO;
|
||||
ST_ASTEXT(poi)
|
||||
drop view V_T_GEO;
|
||||
DROP TABLE T_GEO;
|
||||
create table tt4(id int, g GEOMETRY);
|
||||
alter table tt4 add g1 GEOMETRY not null;
|
||||
ERROR 22004: Invalid use of NULL value
|
||||
show create table tt4;
|
||||
Table Create Table
|
||||
tt4 CREATE TABLE `tt4` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`g` geometry DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
alter table tt4 add g2 GEOMETRY null;
|
||||
show create table tt4;
|
||||
Table Create Table
|
||||
tt4 CREATE TABLE `tt4` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`g` geometry DEFAULT NULL,
|
||||
`g2` geometry DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
|
||||
insert into tt4(id, g2) values (1, point(1,1));
|
||||
select id,st_astext(g2) from tt4 order by id;
|
||||
id st_astext(g2)
|
||||
1 POINT(1 1)
|
||||
drop table tt4;
|
||||
drop table if exists test;
|
||||
create table test(p point srid 4326);
|
||||
alter table test modify p MULTIPOINT;
|
||||
ERROR 0A000: Modify geometry type not supported
|
||||
alter table test change p p1 MULTIPOINT;
|
||||
ERROR 0A000: Change geometry type not supported
|
||||
alter table test modify p POINT SRID 0;
|
||||
ERROR 0A000: Modify geometry srid not supported
|
||||
alter table test change p p1 point srid 0;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
alter table test change p p1 point;
|
||||
ERROR 0A000: not support alter srid not supported
|
||||
alter table test change p p1 point srid 4326;
|
||||
desc test;
|
||||
Field Type Null Key Default Extra
|
||||
p1 point YES NULL
|
||||
drop table test;
|
||||
create table tt1(id int);
|
||||
insert into tt1 values(1);
|
||||
alter table tt1 add g GEOMETRY not null;
|
||||
ERROR 22004: Invalid use of NULL value
|
||||
drop table tt1;
|
||||
create table tt1(id int);
|
||||
alter table tt1 add g GEOMETRY not null;
|
||||
ERROR 22004: Invalid use of NULL value
|
||||
drop table tt1;
|
||||
create table tt1(id int);
|
||||
alter table tt1 add g GEOMETRY;
|
||||
drop table tt1;
|
||||
create table tt1(id int);
|
||||
insert into tt1 values(1);
|
||||
alter table tt1 add g GEOMETRY;
|
||||
drop table tt1;
|
||||
create table tt1(id int);
|
||||
alter table tt1 add g GEOMETRY;
|
||||
insert into tt1 values (1, point(0,0));
|
||||
alter table tt1 modify column g geometry not null;
|
||||
drop table tt1;
|
||||
create table tt1(g geometry);
|
||||
alter table tt1 modify column g geometry not null;
|
||||
drop table tt1;
|
||||
create table tt1(g geometry);
|
||||
insert into tt1(g) value (null);
|
||||
alter table tt1 modify column g geometry not null;
|
||||
ERROR 22004: Invalid use of NULL value
|
||||
drop table tt1;
|
||||
drop table if exists T_GEO;
|
||||
drop table if exists t;
|
||||
drop view if exists V_T_GEO;
|
||||
create table T_GEO (poi point);
|
||||
insert into T_GEO values (ST_GEOMFROMTEXT('POINT(0 0)', 4267));
|
||||
create view V_T_GEO AS SELECT * FROM T_GEO;
|
||||
REPLACE INTO V_T_GEO(poi) VALUES (ST_GEOMFROMTEXT('POLYGON((0 0,1 1,1 0,0 1,0 0))'));
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
insert into T_GEO values (ST_GEOMFROMTEXT('point(0 0)'));
|
||||
create table t as select st_buffer(T_GEO.poi, 1) from T_GEO;
|
||||
drop table t;
|
||||
drop table if exists T_GEO;
|
||||
drop table if exists t;
|
||||
create table T_GEO (poly polygon);
|
||||
insert into T_GEO values (ST_GEOMFROMTEXT('polygon((0 0, 0 1, 1 1,0 0))', 4267));
|
||||
create table t as select st_area(T_GEO.poly) from T_GEO;
|
||||
select * from t;
|
||||
st_area(T_GEO.poly)
|
||||
6154457959.759597
|
||||
drop table T_GEO;
|
||||
drop table t;
|
||||
drop view if exists V_T_GEO;
|
||||
create or replace view vv as select st_aswkb(x'00000000010100000000000000000034C00000000000004940') a;
|
||||
desc vv;
|
||||
Field Type Null Key Default Extra
|
||||
a longblob YES NULL
|
||||
create or replace view vv as select st_geomfromwkb(x'0106000000010000000103000000010000000500000000000000008056400000000000C0564000000000000024400000000000A066C0000000000000244000000000000024400000000000000000000000000000244000000000008056400000000000C05640');
|
||||
desc vv;
|
||||
Field Type Null Key Default Extra
|
||||
Name_exp_1 geometry YES NULL
|
||||
create or replace view vv as select Point(0,0);
|
||||
desc vv;
|
||||
Field Type Null Key Default Extra
|
||||
Point(0,0) point YES NULL
|
||||
drop table if exists geometries;
|
||||
drop table if exists t1;
|
||||
CREATE TABLE geometries ( g GEOMETRY, pt POINT, ls LINESTRING, py POLYGON, mpt MULTIPOINT, mls MULTILINESTRING, mpy MULTIPOLYGON, gc GEOMETRYCOLLECTION);
|
||||
SET @c1 = ST_GEOMFROMTEXT('POINT(10 10)');
|
||||
SET @c2 = ST_GEOMFROMTEXT('LINESTRING(10 10,20 20,30 30)');
|
||||
SET @c3 = ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))');
|
||||
SET @c4 = ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 5,10 10,20 20)');
|
||||
SET @c5 = ST_GEOMFROMTEXT('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))');
|
||||
SET @c6 = ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))');
|
||||
SET @c7 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))');
|
||||
INSERT INTO geometries VALUES (@c1, @c1, @c2, @c3, @c4, @c5, @c6, @c7);
|
||||
CREATE TABLE t1 SELECT a FROM (SELECT pt AS a FROM geometries UNION SELECT mls FROM geometries) t;
|
||||
select st_astext(a) from t1;
|
||||
st_astext(a)
|
||||
POINT(10 10)
|
||||
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
||||
drop table geometries;
|
||||
drop table t1;
|
||||
@ -0,0 +1,425 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY dml.
|
||||
# ----------------------------------------------------------------------
|
||||
alter system set _enable_defensive_check = 1;
|
||||
DROP TABLE IF EXISTS spatial_index_dml_constraint, tt1;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
SET @v1=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
SET @v2=ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)', 4326);
|
||||
SET @v3=ST_GEOMFROMTEXT('POLYGON((0 0, 0 8, 8 8, 8 10, -10 10, -10 0, 0 0))', 4326);
|
||||
SET @v4=ST_GEOMFROMTEXT('MULTIPOINT(1 1, 11 11, 11 21, 21 21)', 4326);
|
||||
SET @v5=ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))', 4326);
|
||||
SET @v6=ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))', 4326);
|
||||
SET @v7=ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(9 9),LINESTRING(1 5,0 0),POLYGON((2 2,2 8,8 8,8 2,2 2)))', 4326);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g POINT NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g LINESTRING NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g POLYGON NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g MULTIPOINT NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g MULTILINESTRING NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g MULTIPOLYGON NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i INT, g GEOMETRYCOLLECTION NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
DROP TABLE IF EXISTS spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (2, @v2);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (3, @v3);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (4, @v4);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (5, @v5);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (6, @v6);
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (7, @v7);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g POINT NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v1);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g LINESTRING NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v2);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g POLYGON NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v3);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g MULTIPOINT NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v4);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g MULTILINESTRING NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v5);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g MULTIPOLYGON NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v6);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE spatial_index_dml_constraint (i int, g GEOMETRYCOLLECTION NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
INSERT INTO spatial_index_dml_constraint VALUES (1, @v7);
|
||||
UPDATE spatial_index_dml_constraint SET g=@v1 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v2 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v3 WHERE i = 1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
UPDATE spatial_index_dml_constraint SET g=@v4 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v5 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v6 WHERE i = 1;
|
||||
UPDATE spatial_index_dml_constraint SET g=@v7 WHERE i = 1;
|
||||
DROP TABLE spatial_index_dml_constraint;
|
||||
CREATE TABLE t(p POINT);
|
||||
INSERT INTO t VALUES(1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE t;
|
||||
create table T_GEO (gid int auto_increment primary key,geo geometry );
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(90 90)'));
|
||||
select st_astext(geo) from T_GEO;
|
||||
st_astext(geo)
|
||||
POINT(90 90)
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(80 80)'));
|
||||
select st_astext(geo) from T_GEO;
|
||||
st_astext(geo)
|
||||
POINT(80 80)
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(80 80)'));
|
||||
select st_astext(geo) from T_GEO;
|
||||
st_astext(geo)
|
||||
POINT(80 80)
|
||||
drop table T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key,g point srid 4326);
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(90 90)', 0));
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('LINESTRING(90 90, 1 1)', 0));
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(90 90)', 4326));
|
||||
select st_astext(g) from T_GEO;
|
||||
st_astext(g)
|
||||
POINT(90 90)
|
||||
drop table T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key,g point);
|
||||
replace into T_GEO VALUES (1,st_geomfromtext('point(90 90)', 0));
|
||||
replace into T_GEO VALUES (2,st_geomfromtext('point(90 90)', 4326));
|
||||
replace into T_GEO VALUES (3,st_geomfromtext('LINESTRING(90 90, 1 1)', 0));
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
select st_astext(g) from T_GEO;
|
||||
st_astext(g)
|
||||
POINT(90 90)
|
||||
POINT(90 90)
|
||||
drop table T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key, geo geometry ,geo_c GEOMETRYCOLLECTION,poi point,lin linestring ,pol polygon,M_POI MULTIPOINT,M_LIN MULTILINESTRING ,M_POL MULTIPOLYGON);
|
||||
REPLACE INTO T_GEO(geo) VALUES ( st_geomfromtext('point(90 90)'));
|
||||
select st_astext(geo) from T_GEO;
|
||||
st_astext(geo)
|
||||
POINT(90 90)
|
||||
drop table T_GEO;
|
||||
create table T_GEO (gid int auto_increment primary key, geo geometry ,geo_c GEOMETRYCOLLECTION,poi point,lin linestring ,pol polygon,M_POI MULTIPOINT,M_LIN MULTILINESTRING ,M_POL MULTIPOLYGON );
|
||||
INSERT INTO T_GEO VALUES (1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||
UPDATE T_GEO SET GEO=0;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
drop table T_GEO;
|
||||
create table tt1(id int , g geometry not null srid 4236 , spatial index(g));
|
||||
insert into tt1(g) values(st_geomfromtext('POINT(0 0)', 4236));
|
||||
select id ,st_astext(g) from tt1 where ST_Intersects(ST_GeomFromText('point(10 20)',426),g);
|
||||
ERROR SR001: There's no spatial reference system with SRID 426.
|
||||
drop table tt1;
|
||||
DROP TABLE IF EXISTS gis_line;
|
||||
CREATE TABLE `gis_line` (`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`num` bigint(18) DEFAULT NULL,
|
||||
`lin` linestring NOT NULL /*!80003 SRID 4326 */,
|
||||
PRIMARY KEY (`id`), SPATIAL KEY `lin_index` (`lin`) BLOCK_SIZE 16384 LOCAL );
|
||||
insert into gis_line values(1,0, st_geomfromtext('LINESTRING(1 1, 2 2)', 4326));
|
||||
select /*+index (gis_line lin_index)*/ * from gis_line where _st_covers(lin, ST_GeomFromText('point(15.830728278409012 10.534231407596138,,,,)', 4326));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
select /*+index (gis_line lin_index)*/ st_astext(lin) from gis_line where _st_covers(lin, ST_GeomFromText('point(1 1)', 4326));
|
||||
st_astext(lin)
|
||||
LINESTRING(1 1,2 2)
|
||||
drop table gis_line;
|
||||
DROP TABLE IF EXISTS gis_point;
|
||||
CREATE TABLE `gis_point` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `x` decimal(19,16) DEFAULT NULL, `y` decimal(19,16) DEFAULT NULL, `poi` point NOT NULL /*!80003 SRID 4326 */, PRIMARY KEY (`id`), KEY `xy_index` (`x`, `y`) BLOCK_SIZE 16384 LOCAL, SPATIAL KEY `poi_index` (`poi`) BLOCK_SIZE 16384 LOCAL ) AUTO_INCREMENT = 1196000001 DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;
|
||||
select concat((select st_astext(poi) from gis_point order by id desc limit 1),(select st_astext(poi) from gis_point order by id desc limit 1)) ;
|
||||
concat((select st_astext(poi) from gis_point order by id desc limit 1),(select st_astext(poi) from gis_point order by id desc limit 1))
|
||||
NULL
|
||||
drop table gis_point;
|
||||
DROP TABLE IF EXISTS spatial_index;
|
||||
CREATE TABLE spatial_index (i INT, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i), SPATIAL KEY (g));
|
||||
INSERT INTO spatial_index VALUES (1, ST_GEOMFROMTEXT('POLYGON((1 1, 1 8, 8 8, 8 10, -10 10, -10 1, 1 1))', 4326));
|
||||
INSERT INTO spatial_index VALUES (2, ST_GEOMFROMTEXT('LINESTRING(0 0,1 1)', 4326));
|
||||
select i, st_astext(g) from spatial_index where ST_Intersects(g, ST_GEOMFROMTEXT('POINT(1 1)', 4326));
|
||||
i st_astext(g)
|
||||
1 POLYGON((1 1,1 8,8 8,8 10,-10 10,-10 1,1 1))
|
||||
2 LINESTRING(0 0,1 1)
|
||||
update spatial_index set g=ST_GEOMFROMTEXT('POINT(2 2)', 4326) where i=1;
|
||||
select i, st_astext(g) from spatial_index where ST_Intersects(g, ST_GEOMFROMTEXT('POINT(2 2)', 4326));
|
||||
i st_astext(g)
|
||||
1 POINT(2 2)
|
||||
DROP TABLE IF EXISTS t3;
|
||||
create table t3(id int, g1 geometry not null srid 2284);
|
||||
create spatial index spidx3 on t3(g1);
|
||||
insert into t3 values(13, ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284));
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where _st_covers(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_intersects(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_within(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_contains(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_intersects(ST_GeomFromText('POINT(1 1)', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where _st_covers(ST_GeomFromText('POINT(1 1)', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_within(ST_GeomFromText('POINT(1 1)', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_contains(ST_GeomFromText('POINT(1 1)', 2284), g1);
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_intersects(g1, ST_GeomFromText('POINT(1 1)', 2284));
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where _st_covers(g1, ST_GeomFromText('POINT(1 1)', 2284));
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_within(g1, ST_GeomFromText('POINT(1 1)', 2284));
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where st_contains(g1, ST_GeomFromText('POINT(1 1)', 2284));
|
||||
st_astext(g1)
|
||||
select /*+index(t3 spidx3)*/ st_astext(g1) from t3 where _st_dwithin(ST_GeomFromText('GEOMETRYCOLLECTION EMPTY', 2284), g1, 0.1);
|
||||
st_astext(g1)
|
||||
drop table t3;
|
||||
DROP TABLE IF EXISTS t_geo, cities;
|
||||
CREATE TABLE `cities` (
|
||||
`CityId` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`Name` longtext DEFAULT NULL,
|
||||
`Location` geometry DEFAULT NULL,
|
||||
PRIMARY KEY (`CityId`)
|
||||
);
|
||||
insert into cities(Name,Location) values("Berlin", 0xE61000000101000000CEC4742156CF2A407558E1968F424A40),
|
||||
("Seattle", 0xE61000000101000000387DE2A540955EC02383DC4598CD4740),
|
||||
("Warsaw", 0xE6100000010100000013109370210335408A56EE05661D4A40),
|
||||
("Shenzhen", 0xE61000000102000000020000000000000000002E400000000000002E4000000000000034400000000000003440),
|
||||
("Guangzhou", 0xE610000001030000000100000007000000000000000000F03F000000000000F03F0000000000002040000000000000F03F0000000000002040000000000000204000000000000024400000000000002040000000000000244000000000000024C0000000000000F03F00000000000024C0000000000000F03F000000000000F03F),
|
||||
("Emptycollection", 0xE6100000010700000000000000);
|
||||
select st_astext(cast(0xE61000000101000000CEC4742156CF2A407558E1968F424A40 as point));
|
||||
st_astext(cast(0xE61000000101000000CEC4742156CF2A407558E1968F424A40 as point))
|
||||
POINT(52.520007 13.404954)
|
||||
select Location from cities;
|
||||
Location
|
||||
� ��t!V�*@uXᖏBJ@
|
||||
� 8}��@�^�#��E��G@
|
||||
� �p!5@�V�fJ@
|
||||
� .@ .@ 4@ 4@
|
||||
� �? �? @ �? @ @ $@ @ $@ $� �? $� �? �?
|
||||
�
|
||||
select hex(Location) from cities;
|
||||
hex(Location)
|
||||
E61000000101000000CEC4742156CF2A407558E1968F424A40
|
||||
E61000000101000000387DE2A540955EC02383DC4598CD4740
|
||||
E6100000010100000013109370210335408A56EE05661D4A40
|
||||
E61000000102000000020000000000000000002E400000000000002E4000000000000034400000000000003440
|
||||
E610000001030000000100000007000000000000000000F03F000000000000F03F0000000000002040000000000000F03F0000000000002040000000000000204000000000000024400000000000002040000000000000244000000000000024C0000000000000F03F00000000000024C0000000000000F03F000000000000F03F
|
||||
E6100000010700000000000000
|
||||
select st_astext(Location) from cities;
|
||||
st_astext(Location)
|
||||
POINT(52.520007 13.404954)
|
||||
POINT(47.6062095 -122.3320708)
|
||||
POINT(52.229676 21.012229)
|
||||
LINESTRING(15 15,20 20)
|
||||
POLYGON((1 1,1 8,8 8,8 10,-10 10,-10 1,1 1))
|
||||
GEOMETRYCOLLECTION EMPTY
|
||||
drop table cities;
|
||||
CREATE TABLE `t_geo` (
|
||||
`geo` geometry NOT NULL,
|
||||
SPATIAL KEY `SP_GEO` (`geo`) BLOCK_SIZE 16384 LOCAL
|
||||
) DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;
|
||||
insert into t_geo values(st_geomfromtext('POINT(1.2345678987654322e24 -1.2345678998765433e25)'));
|
||||
insert into t_geo values(st_geomfromtext('GEOMETRYCOLLECTION(MULTIPOINT((2 -1),(11831.743318109031 -63273.949623278015),(0 -1)))'));
|
||||
insert into t_geo values(st_geomfromtext('GEOMETRYCOLLECTION EMPTY'));
|
||||
select st_astext(geo) from t_geo;
|
||||
st_astext(geo)
|
||||
POINT(1.2345678987654322e24 -1.2345678998765433e25)
|
||||
GEOMETRYCOLLECTION(MULTIPOINT((2 -1),(11831.743318109031 -63273.949623278015),(0 -1)))
|
||||
GEOMETRYCOLLECTION EMPTY
|
||||
UPDATE T_GEO SET GEO=ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))');
|
||||
select st_astext(geo) from t_geo;
|
||||
st_astext(geo)
|
||||
GEOMETRYCOLLECTION(POINT(10 10),POINT(30 30),LINESTRING(15 15,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),POINT(30 30),LINESTRING(15 15,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),POINT(30 30),LINESTRING(15 15,20 20))
|
||||
alter system set _enable_defensive_check = 0;
|
||||
drop table t_geo;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,215 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY function.
|
||||
# ----------------------------------------------------------------------
|
||||
SELECT ST_ASTEXT(POINT(1));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '))' at line 1
|
||||
SELECT ST_ASTEXT(POINT(1,1,1));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ',1))' at line 1
|
||||
SELECT ST_ASTEXT(POINT(1, 1));
|
||||
ST_ASTEXT(POINT(1, 1))
|
||||
POINT(1 1)
|
||||
SELECT ST_ASTEXT(POINT('1', '1'));
|
||||
ST_ASTEXT(POINT('1', '1'))
|
||||
POINT(1 1)
|
||||
SELECT ST_ASTEXT(POINT('a', 'a'));
|
||||
ST_ASTEXT(POINT('a', 'a'))
|
||||
POINT(0 0)
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'a'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'a'
|
||||
SELECT ST_ASTEXT(POINT(' ', ' '));
|
||||
ST_ASTEXT(POINT(' ', ' '))
|
||||
POINT(0 0)
|
||||
SELECT ST_ASTEXT(POINT(12345, ''));
|
||||
ST_ASTEXT(POINT(12345, ''))
|
||||
POINT(12345 0)
|
||||
SELECT ST_ASTEXT(POINT(NULL, NULL));
|
||||
ST_ASTEXT(POINT(NULL, NULL))
|
||||
NULL
|
||||
SELECT ST_ASTEXT(POINT(1, NULL));
|
||||
ST_ASTEXT(POINT(1, NULL))
|
||||
NULL
|
||||
SELECT ST_ASTEXT(POINT(NULL, 1));
|
||||
ST_ASTEXT(POINT(NULL, 1))
|
||||
NULL
|
||||
SELECT ST_ASTEXT(POINT('NULL', 1));
|
||||
ST_ASTEXT(POINT('NULL', 1))
|
||||
POINT(0 1)
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'NULL'
|
||||
SELECT ST_ASTEXT(LINESTRING(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(LINESTRING(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(LINESTRING('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(LINESTRING(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(LINESTRING('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(LINESTRING(POINT(0,0)));
|
||||
ERROR 22023: Invalid GIS data provided to function linestring.
|
||||
SELECT ST_ASTEXT(LINESTRING(LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR HY000: Incorrect arguments to linestring
|
||||
SELECT ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0)));
|
||||
ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0)))
|
||||
LINESTRING(0 0,1 0)
|
||||
SELECT ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0),POINT(0,0)));
|
||||
ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0),POINT(0,0)))
|
||||
LINESTRING(0 0,1 0,0 0)
|
||||
SELECT ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1), POINT(0,0)));
|
||||
ST_ASTEXT(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1), POINT(0,0)))
|
||||
LINESTRING(0 0,1 0,1 1,0 0)
|
||||
SELECT ST_ASTEXT(MULTIPOINT(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOINT(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOINT('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOINT(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOINT('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOINT(LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR HY000: Incorrect arguments to multipoint
|
||||
SELECT ST_ASTEXT(MULTIPOINT(POINT(0,0)));
|
||||
ST_ASTEXT(MULTIPOINT(POINT(0,0)))
|
||||
MULTIPOINT((0 0))
|
||||
SELECT ST_ASTEXT(MULTIPOINT(POINT(0,0),POINT(1,1)));
|
||||
ST_ASTEXT(MULTIPOINT(POINT(0,0),POINT(1,1)))
|
||||
MULTIPOINT((0 0),(1 1))
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTILINESTRING('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTILINESTRING('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(POINT(0,0)));
|
||||
ERROR HY000: Incorrect arguments to multilinestring
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)),POINT(1,1)));
|
||||
ERROR HY000: Incorrect arguments to multilinestring
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ST_ASTEXT(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0))))
|
||||
MULTILINESTRING((0 0,1 0))
|
||||
SELECT ST_ASTEXT(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ST_ASTEXT(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))))
|
||||
MULTILINESTRING((0 0,1 0),(0 0,1 0))
|
||||
SELECT ST_ASTEXT(POLYGON(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(POLYGON(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(POLYGON('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(POLYGON(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(POLYGON('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(POLYGON(POINT(0,0)));
|
||||
ERROR HY000: Incorrect arguments to polygon
|
||||
SELECT ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)),POINT(1,1)));
|
||||
ERROR 22023: Invalid GIS data provided to function polygon.
|
||||
SELECT ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR 22023: Invalid GIS data provided to function polygon.
|
||||
SELECT ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR 22023: Invalid GIS data provided to function polygon.
|
||||
SELECT ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)), POINT(1,1)));
|
||||
ERROR HY000: Incorrect arguments to polygon
|
||||
SELECT ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))));
|
||||
ST_ASTEXT(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))))
|
||||
POLYGON((0 0,1 0,1 1,0 1,0 0))
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(POINT(0,0)));
|
||||
ERROR HY000: Incorrect arguments to multipolygon
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR HY000: Incorrect arguments to multipolygon
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ERROR HY000: Incorrect arguments to multipolygon
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))), POINT(1,1)));
|
||||
ERROR HY000: Incorrect arguments to multipolygon
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))));
|
||||
ST_ASTEXT(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))))
|
||||
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)))
|
||||
SELECT ST_ASTEXT(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))));
|
||||
ST_ASTEXT(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))))
|
||||
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((0 0,1 0,1 1,0 1,0 0)))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION());
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION())
|
||||
GEOMETRYCOLLECTION EMPTY
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(POINT(0,0)));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(POINT(0,0)))
|
||||
GEOMETRYCOLLECTION(POINT(0 0))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))))
|
||||
GEOMETRYCOLLECTION(LINESTRING(0 0,1 0),LINESTRING(0 0,1 0))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))))
|
||||
GEOMETRYCOLLECTION(POLYGON((0 0,1 0,1 1,0 1,0 0)))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(MULTIPOINT(POINT(0,0),POINT(1,1))));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(MULTIPOINT(POINT(0,0),POINT(1,1))))
|
||||
GEOMETRYCOLLECTION(MULTIPOINT((0 0),(1 1)))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)))));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)))))
|
||||
GEOMETRYCOLLECTION(MULTILINESTRING((0 0,1 0),(0 0,1 0)))
|
||||
SELECT ST_ASTEXT(GEOMETRYCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))))));
|
||||
ST_ASTEXT(GEOMETRYCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))))))
|
||||
GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((0 0,1 0,1 1,0 1,0 0))))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(1,1,1));
|
||||
ERROR 22007: Illegal non geometric 'BIGINT' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION('1', '1'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(NULL, NULL));
|
||||
ERROR 22007: Illegal non geometric 'NULL' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION('NULL', 'NULL'));
|
||||
ERROR 22007: Illegal non geometric 'VARCHAR' value found during parsing
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION());
|
||||
ST_ASTEXT(GEOMCOLLECTION())
|
||||
GEOMETRYCOLLECTION EMPTY
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(POINT(0,0)));
|
||||
ST_ASTEXT(GEOMCOLLECTION(POINT(0,0)))
|
||||
GEOMETRYCOLLECTION(POINT(0 0))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))));
|
||||
ST_ASTEXT(GEOMCOLLECTION(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0))))
|
||||
GEOMETRYCOLLECTION(LINESTRING(0 0,1 0),LINESTRING(0 0,1 0))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))));
|
||||
ST_ASTEXT(GEOMCOLLECTION(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0)))))
|
||||
GEOMETRYCOLLECTION(POLYGON((0 0,1 0,1 1,0 1,0 0)))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(MULTIPOINT(POINT(0,0),POINT(1,1))));
|
||||
ST_ASTEXT(GEOMCOLLECTION(MULTIPOINT(POINT(0,0),POINT(1,1))))
|
||||
GEOMETRYCOLLECTION(MULTIPOINT((0 0),(1 1)))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)))));
|
||||
ST_ASTEXT(GEOMCOLLECTION(MULTILINESTRING(LINESTRING(POINT(0,0),POINT(1,0)),LINESTRING(POINT(0,0),POINT(1,0)))))
|
||||
GEOMETRYCOLLECTION(MULTILINESTRING((0 0,1 0),(0 0,1 0)))
|
||||
SELECT ST_ASTEXT(GEOMCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))))));
|
||||
ST_ASTEXT(GEOMCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
|
||||
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))))))
|
||||
GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((0 0,1 0,1 1,0 1,0 0))))
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,150 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY spatial index.
|
||||
# ----------------------------------------------------------------------
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (x INTEGER,
|
||||
y INTEGER,
|
||||
g POINT GENERATED ALWAYS AS (POINT(x, y)) NOT NULL SRID 0);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
x int(11) YES NULL
|
||||
y int(11) YES NULL
|
||||
g point NO point(`x`,`y`) VIRTUAL GENERATED
|
||||
INSERT INTO t1(x,y) VALUES (0, 0);
|
||||
INSERT INTO t1(x,y) VALUES (0.1, 0.1);
|
||||
SELECT x,y,st_astext(g) FROM t1 ORDER BY x;
|
||||
x y st_astext(g)
|
||||
0 0 POINT(0 0)
|
||||
0 0 POINT(0 0)
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (x INTEGER,
|
||||
y INTEGER,
|
||||
g POINT GENERATED ALWAYS AS (POINT(x, y)) NOT NULL SRID 4326);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
x int(11) YES NULL
|
||||
y int(11) YES NULL
|
||||
g point NO point(`x`,`y`) VIRTUAL GENERATED
|
||||
INSERT INTO t1(x,y) VALUES (0, 0);
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
INSERT INTO t1(x,y) VALUES (0.1, 0.1);
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
SELECT x,y,st_astext(g) FROM t1 ORDER BY x;
|
||||
x y st_astext(g)
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (x INTEGER,
|
||||
y INTEGER,
|
||||
g POINT GENERATED ALWAYS AS (ST_GEOMFROMTEXT('POINT(1 1)', 4326)) STORED NOT NULL SRID 4326);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
x int(11) YES NULL
|
||||
y int(11) YES NULL
|
||||
g point NO ST_GEOMFROMTEXT('POINT(1 1)',4326) STORED GENERATED
|
||||
INSERT INTO t1(x,y) VALUES (0, 0);
|
||||
INSERT INTO t1(x,y) VALUES (0.1, 0.1);
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (x INTEGER,
|
||||
y INTEGER,
|
||||
g POINT GENERATED ALWAYS AS (ST_GEOMFROMTEXT('POINT(1 1)', 0)) STORED NOT NULL SRID 4326);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
x int(11) YES NULL
|
||||
y int(11) YES NULL
|
||||
g point NO ST_GEOMFROMTEXT('POINT(1 1)',0) STORED GENERATED
|
||||
INSERT INTO t1(x,y) VALUES (0, 0);
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
INSERT INTO t1(x,y) VALUES (0.1, 0.1);
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)', 4326), g)));
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)',4326),`g`) VIRTUAL GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
1 MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)', 4326), g)));
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)',4326),`g`) VIRTUAL GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
0 MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326))));
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(`g`,ST_GEOMFROMTEXT('POINT(0 0)',4326)) VIRTUAL GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
1 MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326))));
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(`g`,ST_GEOMFROMTEXT('POINT(0 0)',4326)) VIRTUAL GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
0 MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)', 4326), g)) STORED);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)',4326),`g`) STORED GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
1 MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)', 4326), g)) STORED);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(ST_GEOMFROMTEXT('POINT(0 0)',4326),`g`) STORED GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
0 MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326))) STORED);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(`g`,ST_GEOMFROMTEXT('POINT(0 0)',4326)) STORED GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
1 MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (g GEOMETRY NOT NULL SRID 4326,
|
||||
i INT GENERATED ALWAYS AS (ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326))) STORED);
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO NULL
|
||||
i int(11) YES ST_INTERSECTS(`g`,ST_GEOMFROMTEXT('POINT(0 0)',4326)) STORED GENERATED
|
||||
INSERT INTO t1(g) VALUES (ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))', 4326));
|
||||
SELECT i,st_astext(g) FROM t1 ORDER BY i;
|
||||
i st_astext(g)
|
||||
0 MULTIPOLYGON(((1 1,10 0,10 10,0 10,1 1)))
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(id INT, p POLYGON GENERATED ALWAYS AS (ST_GeomFromText('POINT(15 20)',0)) STORED);
|
||||
INSERT INTO t1(id) VALUES (1);
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field.
|
||||
DROP TABLE t1;
|
||||
@ -0,0 +1,355 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY spatial index.
|
||||
# ----------------------------------------------------------------------
|
||||
#Creating the spatial Geometry object
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS gis_line_with_spatial_index, gis_polygon_with_spatial_index, gis_multipoint_with_spatial_index, gis_multiline_with_spatial_index,
|
||||
gis_point_with_spatial_index, gis_geometrycollection_with_spatial_index, gis_linestring_and_int_with_spatial_index;
|
||||
CREATE TABLE gis_point_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g POINT
|
||||
NOT NULL SRID 0,spatial index (g) );
|
||||
INSERT INTO gis_point_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
select count(g) from gis_point_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_point_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
ST_AsText(g)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
DROP TABLE gis_point_with_spatial_index;
|
||||
CREATE TABLE gis_line_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_line_with_spatial_index VALUES (5,ST_GeomFromText('LINESTRING(100 10,10 100)'));
|
||||
INSERT INTO gis_line_with_spatial_index VALUES (4,ST_GeomFromText('LINESTRING(100 10,10 100)'));
|
||||
INSERT INTO gis_line_with_spatial_index VALUES (3,ST_GeomFromText('LINESTRING(100 10,10 100)'));
|
||||
INSERT INTO gis_line_with_spatial_index VALUES (2,ST_GeomFromText('LINESTRING(100 10,10 100)'));
|
||||
INSERT INTO gis_line_with_spatial_index VALUES (1,ST_GeomFromText('LINESTRING(100 10,10 100)'));
|
||||
select count(g) from gis_line_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_line_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
ST_AsText(g)
|
||||
LINESTRING(100 10,10 100)
|
||||
LINESTRING(100 10,10 100)
|
||||
LINESTRING(100 10,10 100)
|
||||
LINESTRING(100 10,10 100)
|
||||
LINESTRING(100 10,10 100)
|
||||
DROP TABLE gis_line_with_spatial_index;
|
||||
CREATE TABLE gis_polygon_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_polygon_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'));
|
||||
INSERT INTO gis_polygon_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'));
|
||||
INSERT INTO gis_polygon_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'));
|
||||
INSERT INTO gis_polygon_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'));
|
||||
INSERT INTO gis_polygon_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'));
|
||||
select count(g) from gis_polygon_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_polygon_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
ST_AsText(g)
|
||||
POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
POLYGON((10 10,20 10,20 20,10 20,10 10))
|
||||
DROP TABLE gis_polygon_with_spatial_index;
|
||||
CREATE TABLE gis_multipoint_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_multipoint_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10,10 20,20 20)'));
|
||||
INSERT INTO gis_multipoint_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10,10 20,20 20)'));
|
||||
INSERT INTO gis_multipoint_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10,10 20,20 20)'));
|
||||
INSERT INTO gis_multipoint_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10,10 20,20 20)'));
|
||||
INSERT INTO gis_multipoint_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10,10 20,20 20)'));
|
||||
select count(g) from gis_multipoint_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_multipoint_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
ST_AsText(g)
|
||||
MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
||||
MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
||||
MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
||||
MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
||||
MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
||||
DROP TABLE gis_multipoint_with_spatial_index;
|
||||
CREATE TABLE gis_multiline_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_multiline_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'));
|
||||
INSERT INTO gis_multiline_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'));
|
||||
INSERT INTO gis_multiline_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'));
|
||||
INSERT INTO gis_multiline_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'));
|
||||
INSERT INTO gis_multiline_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'));
|
||||
select count(g) from gis_multiline_with_spatial_index where ST_AsText(g) like "%10 0%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_multiline_with_spatial_index where ST_AsText(g) like "%10 0%";
|
||||
ST_AsText(g)
|
||||
MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
||||
DROP TABLE gis_multiline_with_spatial_index;
|
||||
CREATE TABLE gis_multipolygon_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_multipolygon_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
|
||||
INSERT INTO gis_multipolygon_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
|
||||
INSERT INTO gis_multipolygon_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
|
||||
INSERT INTO gis_multipolygon_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
|
||||
INSERT INTO gis_multipolygon_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'));
|
||||
select count(g) from gis_multipolygon_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
0
|
||||
select ST_AsText(g) from gis_multipolygon_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
ST_AsText(g)
|
||||
select count(g) from gis_multipolygon_with_spatial_index where ST_AsText(g) like "%84 0%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_multipolygon_with_spatial_index where ST_AsText(g) like "%84 0%";
|
||||
ST_AsText(g)
|
||||
MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))
|
||||
DROP TABLE gis_multipolygon_with_spatial_index;
|
||||
CREATE TABLE gis_geometrycollection_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_geometrycollection_with_spatial_index VALUES (5,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometrycollection_with_spatial_index VALUES (4,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometrycollection_with_spatial_index VALUES (3,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometrycollection_with_spatial_index VALUES (2,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometrycollection_with_spatial_index VALUES (1,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
select count(g) from gis_geometrycollection_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_geometrycollection_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
ST_AsText(g)
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
DROP TABLE gis_geometrycollection_with_spatial_index;
|
||||
CREATE TABLE gis_geometry_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY
|
||||
NOT NULL SRID 0, spatial index (g) );
|
||||
INSERT INTO gis_geometry_with_spatial_index VALUES (5,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometry_with_spatial_index VALUES (4,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometry_with_spatial_index VALUES (3,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometry_with_spatial_index VALUES (2,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
INSERT INTO gis_geometry_with_spatial_index VALUES (1,ST_GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(10 10,20 20))'));
|
||||
select count(g) from gis_geometry_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_geometry_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
ST_AsText(g)
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))
|
||||
DROP TABLE gis_geometry_with_spatial_index;
|
||||
DROP TABLE IF EXISTS gis_point_and_int_with_spatial_index;
|
||||
CREATE TABLE gis_point_and_int_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g POINT
|
||||
NOT NULL SRID 0,spatial index (g) );
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES (5,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES (4,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES (3,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES (2,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES (1,ST_GEOMFROMTEXT('POINT(100 10)'));
|
||||
select count(g) from gis_point_and_int_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
count(g)
|
||||
5
|
||||
select ST_AsText(g) from gis_point_and_int_with_spatial_index where ST_AsText(g) like "%100 10%";
|
||||
ST_AsText(g)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
POINT(100 10)
|
||||
DROP TABLE gis_point_and_int_with_spatial_index;
|
||||
CREATE TABLE gis_point_and_int_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g POINT
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES
|
||||
(101, ST_GEOMFROMTEXT('POINT(10 10)'),1),
|
||||
(102, ST_GEOMFROMTEXT('POINT(10 20)'),21),
|
||||
(103, ST_GEOMFROMTEXT('POINT(100 20)'),3),
|
||||
(104, ST_GEOMFROMTEXT('POINT(100 20)'),3);
|
||||
SELECT COUNT(g) FROM gis_point_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%point%";
|
||||
COUNT(g)
|
||||
4
|
||||
ALTER TABLE gis_point_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE SPATIAL INDEX g ON gis_point_and_int_with_spatial_index (g);
|
||||
SELECT COUNT(g) FROM gis_point_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%point%";
|
||||
COUNT(g)
|
||||
4
|
||||
ALTER TABLE gis_point_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_point_and_int_with_spatial_index (a) ;
|
||||
select count(g) from gis_point_and_int_with_spatial_index where a like "%3%";
|
||||
count(g)
|
||||
2
|
||||
select ST_AsText(g) from gis_point_and_int_with_spatial_index where a like "%3%";
|
||||
ST_AsText(g)
|
||||
POINT(100 20)
|
||||
POINT(100 20)
|
||||
DROP TABLE gis_point_and_int_with_spatial_index;
|
||||
CREATE TABLE gis_point_and_int_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g POINT
|
||||
NOT NULL SRID 0, a int, index (a) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_point_and_int_with_spatial_index VALUES
|
||||
(101, ST_GEOMFROMTEXT('POINT(10 10)'),1),
|
||||
(102, ST_GEOMFROMTEXT('POINT(10 20)'),21),
|
||||
(103, ST_GEOMFROMTEXT('POINT(100 20)'),3),
|
||||
(104, ST_GEOMFROMTEXT('POINT(101 20)'),3);
|
||||
select count(g) from gis_point_and_int_with_spatial_index where a like "%3%";
|
||||
count(g)
|
||||
2
|
||||
SELECT COUNT(a) FROM gis_point_and_int_with_spatial_index WHERE a LIKE "%3%";
|
||||
COUNT(a)
|
||||
2
|
||||
ALTER TABLE gis_point_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE SPATIAL INDEX g ON gis_point_and_int_with_spatial_index (g);
|
||||
SELECT COUNT(g) FROM gis_point_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%point%";
|
||||
COUNT(g)
|
||||
4
|
||||
SELECT COUNT(a) FROM gis_point_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%point%";
|
||||
COUNT(a)
|
||||
4
|
||||
DROP TABLE gis_point_and_int_with_spatial_index ;
|
||||
CREATE TABLE gis_linestring_and_int_with_spatial_index (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_linestring_and_int_with_spatial_index VALUES
|
||||
(201,ST_GEOMFROMTEXT('LINESTRING(0 0,0 10,10 0)'),1),
|
||||
(202,ST_GEOMFROMTEXT('LINESTRING(1 1,1 10,10 20)'),2),
|
||||
(203,ST_GEOMFROMTEXT('LINESTRING(1 1,1 10,10 20)'),2);
|
||||
select count(g) from gis_linestring_and_int_with_spatial_index where ST_AsText(g) like "%0%";
|
||||
count(g)
|
||||
3
|
||||
select count(a) from gis_linestring_and_int_with_spatial_index where ST_AsText(g) like "%0%";
|
||||
count(a)
|
||||
3
|
||||
select count(a) from gis_linestring_and_int_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(a)
|
||||
0
|
||||
ALTER TABLE gis_linestring_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_linestring_and_int_with_spatial_index (a) ;
|
||||
SELECT COUNT(g) FROM gis_linestring_and_int_with_spatial_index WHERE a LIKE "%2%";
|
||||
COUNT(g)
|
||||
2
|
||||
ALTER TABLE gis_linestring_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE SPATIAL INDEX g ON gis_linestring_and_int_with_spatial_index (g) ;
|
||||
SELECT COUNT(g) FROM gis_linestring_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%2%";
|
||||
COUNT(g)
|
||||
2
|
||||
DROP TABLE gis_linestring_and_int_with_spatial_index ;
|
||||
CREATE TABLE gis_multilinestring_and_int_with_spatial_index (fid INTEGER PRIMARY KEY, g MULTILINESTRING
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_multilinestring_and_int_with_spatial_index VALUES
|
||||
(300,ST_GEOMFROMTEXT('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'),1),
|
||||
(301,ST_GEOMFROMTEXT('MULTILINESTRING((130 48,180 21,10 90),(916 0,516 2373223,816 48))'),1),
|
||||
(302,ST_GEOMFROMTEXT('MULTILINESTRING((180 48,10 25891,160 0),(5416 0,19096 29093,19096 498))'),1);
|
||||
select count(g) from gis_multilinestring_and_int_with_spatial_index where ST_AsText(g) like "%48%";
|
||||
count(g)
|
||||
3
|
||||
select count(a) from gis_multilinestring_and_int_with_spatial_index where ST_AsText(g) like "%48%";
|
||||
count(a)
|
||||
3
|
||||
ALTER TABLE gis_multilinestring_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_multilinestring_and_int_with_spatial_index (a) ;
|
||||
SELECT COUNT(g) FROM gis_multilinestring_and_int_with_spatial_index WHERE a LIKE "%2%";
|
||||
COUNT(g)
|
||||
0
|
||||
ALTER TABLE gis_multilinestring_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE SPATIAL INDEX g ON gis_multilinestring_and_int_with_spatial_index (g) ;
|
||||
SELECT COUNT(g) FROM gis_multilinestring_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%48%";
|
||||
COUNT(g)
|
||||
3
|
||||
DROP TABLE gis_multilinestring_and_int_with_spatial_index ;
|
||||
CREATE TABLE gis_polygon_and_int_with_spatial_index (fid INTEGER PRIMARY KEY, g POLYGON
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_polygon_and_int_with_spatial_index VALUES
|
||||
(300,ST_GEOMFROMTEXT('POLYGON((183670 10,2470 10,20 249380,10 254760,183670 10))'),12),
|
||||
(301,ST_GEOMFROMTEXT('POLYGON((10 10,20 10,20 20,10 20,10 10))'),2),
|
||||
(302,ST_GEOMFROMTEXT('POLYGON((110 10,320 310,2550 8520,1059 2590,110 10))'),2),
|
||||
(303,ST_GEOMFROMTEXT('POLYGON((180 160,55620 5610,240 206560,10 285960,180 160))'),2);
|
||||
select count(g) from gis_polygon_and_int_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(g)
|
||||
2
|
||||
select count(a) from gis_polygon_and_int_with_spatial_index where ST_AsText(g) like "%10 10%";
|
||||
count(a)
|
||||
2
|
||||
ALTER TABLE gis_polygon_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_polygon_and_int_with_spatial_index (a) ;
|
||||
SELECT COUNT(g) FROM gis_polygon_and_int_with_spatial_index WHERE a LIKE "%2%";
|
||||
COUNT(g)
|
||||
4
|
||||
ALTER TABLE gis_polygon_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE SPATIAL INDEX g ON gis_polygon_and_int_with_spatial_index (g) ;
|
||||
SELECT COUNT(g) FROM gis_polygon_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%48%";
|
||||
COUNT(g)
|
||||
0
|
||||
DROP TABLE gis_polygon_and_int_with_spatial_index ;
|
||||
DROP TABLE IF EXISTS gis_multipolygon_and_int_with_spatial_index;
|
||||
CREATE TABLE gis_multipolygon_and_int_with_spatial_index (fid INTEGER PRIMARY KEY, g multiPOLYGON
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_multipolygon_and_int_with_spatial_index VALUES
|
||||
(1,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1),
|
||||
(2,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,864 0,8984 42,28 26),(2 18,66 348345723,73 9,48 6,2 18)),((519 18,67 18,348345767 13,59 13,519 18)))'),1),
|
||||
(5,ST_GEOMFROMTEXT('MULTIPOLYGON(((254397348 26,28 0,84 0,84 42,254397348 26),(52 18,634834576 23,73 9,48 34834576,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1),
|
||||
(9,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,834834574 42,28 26),(52 18,348345766 23,73 9,434834578 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1);
|
||||
select count(g) from gis_multipolygon_and_int_with_spatial_index where ST_AsText(g) like "%59 18%";
|
||||
count(g)
|
||||
3
|
||||
select count(a) from gis_multipolygon_and_int_with_spatial_index where ST_AsText(g) like "%59 18%";
|
||||
count(a)
|
||||
3
|
||||
ALTER TABLE gis_multipolygon_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_multipolygon_and_int_with_spatial_index (a) ;
|
||||
SELECT COUNT(g) FROM gis_multipolygon_and_int_with_spatial_index WHERE a LIKE "%1%";
|
||||
COUNT(g)
|
||||
4
|
||||
ALTER TABLE gis_multipolygon_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE SPATIAL INDEX g ON gis_multipolygon_and_int_with_spatial_index (g) ;
|
||||
SELECT COUNT(g) FROM gis_multipolygon_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%18%";
|
||||
COUNT(g)
|
||||
4
|
||||
DROP TABLE gis_multipolygon_and_int_with_spatial_index ;
|
||||
CREATE TABLE gis_multipolygon_and_int_with_spatial_index (fid INTEGER PRIMARY KEY, g MULTIPOLYGON
|
||||
NOT NULL SRID 0, a int, spatial index (g) );
|
||||
#INSERT valid entries to Point class
|
||||
INSERT INTO gis_multipolygon_and_int_with_spatial_index VALUES
|
||||
(1,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1),
|
||||
(2,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,864 0,8984 42,28 26),(2 18,66 348345723,73 9,48 6,2 18)),((519 18,67 18,348345767 13,59 13,519 18)))'),1),
|
||||
(5,ST_GEOMFROMTEXT('MULTIPOLYGON(((254397348 26,28 0,84 0,84 42,254397348 26),(52 18,634834576 23,73 9,48 34834576,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1),
|
||||
(9,ST_GEOMFROMTEXT('MULTIPOLYGON(((28 26,28 0,84 0,834834574 42,28 26),(52 18,348345766 23,73 9,434834578 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'),1);
|
||||
select count(g) from gis_multipolygon_and_int_with_spatial_index where ST_AsText(g) like "%59 18%";
|
||||
count(g)
|
||||
3
|
||||
select count(a) from gis_multipolygon_and_int_with_spatial_index where ST_AsText(g) like "%59 18%";
|
||||
count(a)
|
||||
3
|
||||
ALTER TABLE gis_multipolygon_and_int_with_spatial_index DROP INDEX g;
|
||||
CREATE INDEX a ON gis_multipolygon_and_int_with_spatial_index (a) ;
|
||||
SELECT COUNT(g) FROM gis_multipolygon_and_int_with_spatial_index WHERE a LIKE "%1%";
|
||||
COUNT(g)
|
||||
4
|
||||
ALTER TABLE gis_multipolygon_and_int_with_spatial_index DROP INDEX a;
|
||||
CREATE INDEX g ON gis_multipolygon_and_int_with_spatial_index (g) ;
|
||||
DROP INDEX g ON gis_multipolygon_and_int_with_spatial_index;
|
||||
CREATE SPATIAL INDEX a ON gis_multipolygon_and_int_with_spatial_index (a) ;
|
||||
ERROR 42000: A SPATIAL index may only contain a geometrical type column.
|
||||
CREATE SPATIAL INDEX g ON gis_multipolygon_and_int_with_spatial_index (g) ;
|
||||
SELECT COUNT(g) FROM gis_multipolygon_and_int_with_spatial_index WHERE ST_AsText(g) LIKE "%18%";
|
||||
COUNT(g)
|
||||
4
|
||||
DROP TABLE gis_multipolygon_and_int_with_spatial_index ;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,222 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY spatial index.
|
||||
# ----------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, INDEX(g) LOCAL);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, INDEX(g) GLOBAL);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, INDEX(g));
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, SPATIAL INDEX(g) LOCAL);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, SPATIAL INDEX(g) GLOBAL);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326, SPATIAL INDEX(g));
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.spatial_index_syntax'
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326);
|
||||
ALTER TABLE spatial_index_syntax ADD INDEX idx(g) LOCAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
ALTER TABLE spatial_index_syntax ADD INDEX idx(g) GLOBAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
ALTER TABLE spatial_index_syntax ADD INDEX idx(g);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326);
|
||||
ALTER TABLE spatial_index_syntax ADD SPATIAL INDEX idx(g) LOCAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
ALTER TABLE spatial_index_syntax ADD SPATIAL INDEX idx(g) GLOBAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
ALTER TABLE spatial_index_syntax ADD SPATIAL INDEX idx(g);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE INDEX idx ON spatial_index_syntax (g) LOCAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
CREATE INDEX idx ON spatial_index_syntax (g) GLOBAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
CREATE INDEX idx ON spatial_index_syntax (g);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
DROP TABLE IF EXISTS spatial_index_syntax;
|
||||
CREATE TABLE spatial_index_syntax (g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE SPATIAL INDEX idx ON spatial_index_syntax (g) LOCAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
CREATE SPATIAL INDEX idx ON spatial_index_syntax (g) GLOBAL;
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
CREATE SPATIAL INDEX idx ON spatial_index_syntax (g);
|
||||
SHOW FIELDS FROM spatial_index_syntax;
|
||||
Field Type Null Key Default Extra
|
||||
g geometry NO MUL NULL
|
||||
DROP INDEX idx ON spatial_index_syntax;
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (g1 GEOMETRY NOT NULL SRID 4326, g2 GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE INDEX idx ON spatial_index_constraint (g1, g2);
|
||||
ERROR 42000: Too many key parts specified; max 64 parts allowed
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (i int, g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE INDEX idx ON spatial_index_constraint (i, g);
|
||||
ERROR 42000: Too many key parts specified; max 64 parts allowed
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (i int, g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE SPATIAL INDEX idx ON spatial_index_constraint (i);
|
||||
ERROR 42000: A SPATIAL index may only contain a geometrical type column.
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (i int, g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE UNIQUE INDEX idx ON spatial_index_constraint (g);
|
||||
ERROR HY000: Spatial indexes can't be primary or unique indexes.
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (i int, g GEOMETRY);
|
||||
CREATE INDEX idx ON spatial_index_constraint (g);
|
||||
ERROR 42000: All parts of a SPATIAL index must be NOT NULL.
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
CREATE TABLE spatial_index_constraint (g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE INDEX idx ON spatial_index_constraint (g);
|
||||
INSERT INTO spatial_index_constraint values (ST_GEOMFROMTEXT('POINT(1 1)', 0));
|
||||
ERROR HY000: The SRID of the geometry does not match the SRID of the column. The SRID of the geometry is 0, but the SRID of the column is 4326. Consider changing the SRID of the geometry or the SRID property of the column.
|
||||
DROP TABLE IF EXISTS spatial_index_constraint;
|
||||
DROP TABLE IF EXISTS spatial_index_dml;
|
||||
SET @v=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
SET @v0=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
SET @v1=ST_GEOMFROMTEXT('POINT(1 1)', 4326);
|
||||
CREATE TABLE spatial_index_dml (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
INSERT INTO spatial_index_dml VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ st_astext(g) FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
st_astext(g)
|
||||
POINT(0 0)
|
||||
DROP TABLE spatial_index_dml;
|
||||
CREATE TABLE spatial_index_dml (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
INSERT INTO spatial_index_dml VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ st_astext(g) FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
st_astext(g)
|
||||
POINT(0 0)
|
||||
DROP TABLE spatial_index_dml;
|
||||
CREATE TABLE spatial_index_dml (i1 int, i2 int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i1, i2));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
INSERT INTO spatial_index_dml VALUES (1, 2, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ st_astext(g) FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
st_astext(g)
|
||||
POINT(0 0)
|
||||
DROP TABLE spatial_index_dml;
|
||||
DROP TABLE IF EXISTS spatial_index_dml;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.spatial_index_dml'
|
||||
CREATE TABLE spatial_index_dml (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
INSERT INTO spatial_index_dml VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
UPDATE spatial_index_dml SET g=ST_GEOMFROMTEXT('POINT(1 2)', 4326) WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ g FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(1 1)', 4326));
|
||||
g
|
||||
DROP TABLE IF EXISTS spatial_index_dml;
|
||||
CREATE TABLE spatial_index_dml (i1 int, i2 int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i1, i2));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
SET @v0=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
SET @v1=ST_GEOMFROMTEXT('POINT(1 1)', 4326);
|
||||
INSERT INTO spatial_index_dml VALUES (1, 2, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
UPDATE spatial_index_dml SET g=ST_GEOMFROMTEXT('POINT(1 2)', 4326) WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ g FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(1 1)', 4326));
|
||||
g
|
||||
DROP TABLE IF EXISTS spatial_index_dml;
|
||||
CREATE TABLE spatial_index_dml (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
SET @v0=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
INSERT INTO spatial_index_dml VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
DELETE FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ g FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
g
|
||||
DROP TABLE IF EXISTS spatial_index_dml;
|
||||
CREATE TABLE spatial_index_dml (i1 int, i2 int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY (i1, i2));
|
||||
CREATE INDEX idx ON spatial_index_dml (g);
|
||||
SET @v0=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
INSERT INTO spatial_index_dml VALUES (1, 2, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
DELETE FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_dml idx)*/ g FROM spatial_index_dml WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
g
|
||||
DROP TABLE IF EXISTS spatial_index_query;
|
||||
SET @v=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
CREATE TABLE spatial_index_query (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY(i));
|
||||
CREATE INDEX idx ON spatial_index_query (g);
|
||||
INSERT INTO spatial_index_query VALUES (0, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
INSERT INTO spatial_index_query VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
INSERT INTO spatial_index_query VALUES (2, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
SELECT /*+INDEX(spatial_index_query idx)*/ st_astext(g) FROM spatial_index_query WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
st_astext(g)
|
||||
POINT(0 0)
|
||||
POINT(0 0)
|
||||
POINT(0 0)
|
||||
DROP TABLE IF EXISTS spatial_index_query;
|
||||
CREATE TABLE spatial_index_query (i int, g GEOMETRY NOT NULL SRID 4326);
|
||||
CREATE INDEX idx ON spatial_index_query (g);
|
||||
SET @v=ST_GEOMFROMTEXT('POINT(1 1)', 4326);
|
||||
INSERT INTO spatial_index_query VALUES (1, ST_GEOMFROMTEXT('POINT(1 1)', 4326));
|
||||
SET @cart_py = ST_GeomFromText('POLYGON((0 0, 10 0, 10 5, 0 5, 0 0))', 4326);
|
||||
SELECT /*+INDEX(spatial_index_query idx)*/ st_astext(g) from spatial_index_query where st_intersects(g, ST_GeomFromText('POLYGON((0 0, 10 0, 10 5, 0 5, 0 0))', 4326));
|
||||
st_astext(g)
|
||||
POINT(1 1)
|
||||
DROP TABLE IF EXISTS spatial_index_rebuild;
|
||||
CREATE TABLE spatial_index_rebuild (i int, g GEOMETRY NOT NULL SRID 4326, PRIMARY KEY(i));
|
||||
SET @v=ST_GEOMFROMTEXT('POINT(0 0)', 4326);
|
||||
INSERT INTO spatial_index_rebuild VALUES (0, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
INSERT INTO spatial_index_rebuild VALUES (1, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
INSERT INTO spatial_index_rebuild VALUES (2, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
CREATE INDEX idx ON spatial_index_rebuild (g);
|
||||
SELECT /*+INDEX(spatial_index_rebuild idx)*/ st_astext(g) FROM spatial_index_rebuild WHERE ST_INTERSECTS(g, ST_GEOMFROMTEXT('POINT(0 0)', 4326));
|
||||
st_astext(g)
|
||||
POINT(0 0)
|
||||
POINT(0 0)
|
||||
POINT(0 0)
|
||||
@ -0,0 +1,375 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY spatial index.
|
||||
# ----------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0) partition by hash(c1) partitions 2;
|
||||
create spatial index idx on t1 (g) local;
|
||||
insert into t1 (c1, g) values (0, st_geomfromtext('point(1 1)'));
|
||||
explain select /*+index(t1 idx)*/ st_astext(g) from t1 where st_intersects(g, st_geomfromtext('point(1 1)'));
|
||||
Query Plan
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |1 |291 |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10000|1 |291 |
|
||||
|2 | └─PX PARTITION ITERATOR| |1 |289 |
|
||||
|3 | └─TABLE FULL SCAN |t1(idx) |1 |289 |
|
||||
=============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(st_astext(t1.g))]), filter(nil)
|
||||
1 - output([INTERNAL_FUNCTION(st_astext(t1.g))]), filter(nil)
|
||||
dop=1
|
||||
2 - output([t1.g]), filter(nil)
|
||||
force partition granule
|
||||
3 - output([t1.g]), filter([st_intersects(t1.g, st_geomfromtext('point(1 1)'))])
|
||||
access([t1.c1], [t1.g]), partitions(p[0-1])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([t1.__cellid_17], [t1.__mbr_17], [t1.c1]), range(1152921504606846977,MIN,MIN ; 1152921504606846977,MAX,MAX), (1152921504606846980,MIN,MIN
|
||||
; 1152921504606846980,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,MAX,MAX),
|
||||
(1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,MIN,MIN
|
||||
; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,MAX,MAX),
|
||||
(1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,MIN,MIN
|
||||
; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,MAX,MAX),
|
||||
(1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,MIN,MIN
|
||||
; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,MAX,MAX),
|
||||
(1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,MIN,MIN
|
||||
; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,MAX,MAX),
|
||||
(1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,MIN,MIN
|
||||
; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,MAX,MAX),
|
||||
(1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
select /*+index(t1 idx)*/ st_astext(g) from t1 where st_intersects(g, st_geomfromtext('point(1 1)'));
|
||||
st_astext(g)
|
||||
POINT(1 1)
|
||||
drop table t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0) partition by range(c1) ( partition p0 values less than (4),
|
||||
partition p1 values less than (10));
|
||||
create spatial index idx on t1 (g) local;
|
||||
insert into t1 (c1, g) values (0, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (1, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (2, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (3, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (4, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (5, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (6, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (7, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (8, st_geomfromtext('point(1 1)'));
|
||||
insert into t1 (c1, g) values (9, st_geomfromtext('point(1 1)'));
|
||||
explain select /*+index(t1 idx)*/ st_astext(g) from t1 where st_intersects(g, st_geomfromtext('point(1 1)'));
|
||||
Query Plan
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |10 |565 |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10000|10 |558 |
|
||||
|2 | └─PX PARTITION ITERATOR| |10 |542 |
|
||||
|3 | └─TABLE FULL SCAN |t1(idx) |10 |542 |
|
||||
=============================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(st_astext(t1.g))]), filter(nil)
|
||||
1 - output([INTERNAL_FUNCTION(st_astext(t1.g))]), filter(nil)
|
||||
dop=1
|
||||
2 - output([t1.g]), filter(nil)
|
||||
force partition granule
|
||||
3 - output([t1.g]), filter([st_intersects(t1.g, st_geomfromtext('point(1 1)'))])
|
||||
access([t1.c1], [t1.g]), partitions(p[0-1])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([t1.__cellid_17], [t1.__mbr_17], [t1.c1]), range(1152921504606846977,MIN,MIN ; 1152921504606846977,MAX,MAX), (1152921504606846980,MIN,MIN
|
||||
; 1152921504606846980,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,MAX,MAX),
|
||||
(1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,MIN,MIN
|
||||
; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,MAX,MAX),
|
||||
(1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,MIN,MIN
|
||||
; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,MAX,MAX),
|
||||
(1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,MIN,MIN
|
||||
; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,MAX,MAX),
|
||||
(1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,MIN,MIN
|
||||
; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,MAX,MAX),
|
||||
(1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,MIN,MIN
|
||||
; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,MAX,MAX),
|
||||
(1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
select /*+index(t1 idx)*/ st_astext(g) from t1 where st_intersects(g, st_geomfromtext('point(1 1)'));
|
||||
st_astext(g)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
POINT(1 1)
|
||||
drop table t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0) partition by hash(c1) partitions 2;
|
||||
create spatial index idx on t1 (g) global;
|
||||
ERROR 0A000: spatial global index not supported
|
||||
create spatial index idx on t1 (g);
|
||||
drop table t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0, spatial index(g) global) partition by hash(c1) partitions 2;
|
||||
ERROR 0A000: spatial global index not supported
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0, spatial index(g)) partition by hash(c1) partitions 2;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0, index(g) global) partition by hash(c1) partitions 2;
|
||||
ERROR 0A000: spatial global index not supported
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0, index(g)) partition by hash(c1) partitions 2;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(c1 int primary key, g geometry not null srid 0) partition by hash(c1) partitions 2;
|
||||
alter table t1 add spatial index idx(g);
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
t1 1 idx 1 g A NULL NULL NULL SPATIAL available YES NULL
|
||||
drop index idx on t1;
|
||||
alter table t1 add spatial index idx(g) global;
|
||||
ERROR 0A000: spatial global index not supported
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
alter table t1 add spatial index idx(g) local;
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
t1 1 idx 1 g A NULL NULL NULL SPATIAL available YES NULL
|
||||
drop index idx on t1;
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
create index idx on t1(g);
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
t1 1 idx 1 g A NULL NULL NULL SPATIAL available YES NULL
|
||||
create index idx on t1(g) global;
|
||||
ERROR 0A000: spatial global index not supported
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
t1 1 idx 1 g A NULL NULL NULL SPATIAL available YES NULL
|
||||
drop index idx on t1;
|
||||
create index idx on t1(g) local;
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression
|
||||
t1 0 PRIMARY 1 c1 A NULL NULL NULL BTREE available YES NULL
|
||||
t1 1 idx 1 g A NULL NULL NULL SPATIAL available YES NULL
|
||||
drop table t1;
|
||||
DROP TABLE IF EXISTS geo_maxpt_coords_100y, geo_maxpt_coords_100y_2, aoi_string_limit10;
|
||||
CREATE TABLE geo_maxpt_coords_100y (
|
||||
poi_id VARCHAR(128) NOT NULL,
|
||||
pwkt VARCHAR(128) NOT NULL DEFAULT '0',
|
||||
geo_pwkt GEOMETRY NOT NULL srid 0,
|
||||
-- PRIMARY KEY (`id`, k)
|
||||
SPATIAL INDEX(geo_pwkt)
|
||||
) PARTITION BY key(poi_id) PARTITIONS 256;
|
||||
CREATE TABLE geo_maxpt_coords_100y_2 (
|
||||
poi_id VARCHAR(128) NOT NULL,
|
||||
pwkt VARCHAR(128) NOT NULL DEFAULT '0',
|
||||
geo_pwkt GEOMETRY NOT NULL /*!80003 srid 0 */,
|
||||
SPATIAL INDEX(geo_pwkt)
|
||||
);
|
||||
explain select count(*) from geo_maxpt_coords_100y where st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
========================================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |32285 |
|
||||
|1 |└─PX COORDINATOR | |1 |32285 |
|
||||
|2 | └─EXCHANGE OUT DISTR |:EX10000 |1 |32285 |
|
||||
|3 | └─MERGE GROUP BY | |1 |32285 |
|
||||
|4 | └─PX PARTITION ITERATOR| |1 |32285 |
|
||||
|5 | └─TABLE FULL SCAN |geo_maxpt_coords_100y(geo_pwkt)|1 |32285 |
|
||||
========================================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
|
||||
1 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
2 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
dop=1
|
||||
3 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
4 - output(nil), filter(nil)
|
||||
force partition granule
|
||||
5 - output(nil), filter([st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y.__pk_increment], [geo_maxpt_coords_100y.geo_pwkt]), partitions(p[0-255])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y.__cellid_18], [geo_maxpt_coords_100y.__mbr_18], [geo_maxpt_coords_100y.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
explain select /*+ parallel(1) */ count(*) from geo_maxpt_coords_100y where st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
========================================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |32285 |
|
||||
|1 |└─PX COORDINATOR | |1 |32285 |
|
||||
|2 | └─EXCHANGE OUT DISTR |:EX10000 |1 |32285 |
|
||||
|3 | └─MERGE GROUP BY | |1 |32285 |
|
||||
|4 | └─PX PARTITION ITERATOR| |1 |32285 |
|
||||
|5 | └─TABLE FULL SCAN |geo_maxpt_coords_100y(geo_pwkt)|1 |32285 |
|
||||
========================================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
|
||||
1 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
2 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
dop=1
|
||||
3 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
4 - output(nil), filter(nil)
|
||||
force partition granule
|
||||
5 - output(nil), filter([st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y.__pk_increment], [geo_maxpt_coords_100y.geo_pwkt]), partitions(p[0-255])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y.__cellid_18], [geo_maxpt_coords_100y.__mbr_18], [geo_maxpt_coords_100y.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
explain select /*+ parallel(3) */ count(*) from geo_maxpt_coords_100y where st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
========================================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |32285 |
|
||||
|1 |└─PX COORDINATOR | |1 |32285 |
|
||||
|2 | └─EXCHANGE OUT DISTR |:EX10000 |1 |32285 |
|
||||
|3 | └─MERGE GROUP BY | |1 |32285 |
|
||||
|4 | └─PX PARTITION ITERATOR| |1 |32285 |
|
||||
|5 | └─TABLE FULL SCAN |geo_maxpt_coords_100y(geo_pwkt)|1 |32285 |
|
||||
========================================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
|
||||
1 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
2 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
dop=1
|
||||
3 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
4 - output(nil), filter(nil)
|
||||
force partition granule
|
||||
5 - output(nil), filter([st_intersects(geo_maxpt_coords_100y.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y.__pk_increment], [geo_maxpt_coords_100y.geo_pwkt]), partitions(p[0-255])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y.__cellid_18], [geo_maxpt_coords_100y.__mbr_18], [geo_maxpt_coords_100y.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
explain select count(*) from geo_maxpt_coords_100y_2 where st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
==============================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |155 |
|
||||
|1 |└─TABLE FULL SCAN|geo_maxpt_coords_100y_2(geo_pwkt)|1 |155 |
|
||||
==============================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
1 - output(nil), filter([st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y_2.__pk_increment], [geo_maxpt_coords_100y_2.geo_pwkt]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y_2.__cellid_18], [geo_maxpt_coords_100y_2.__mbr_18], [geo_maxpt_coords_100y_2.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
explain select /*+ parallel(1) */ count(*) from geo_maxpt_coords_100y_2 where st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
==============================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |155 |
|
||||
|1 |└─TABLE FULL SCAN|geo_maxpt_coords_100y_2(geo_pwkt)|1 |155 |
|
||||
==============================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
1 - output(nil), filter([st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y_2.__pk_increment], [geo_maxpt_coords_100y_2.geo_pwkt]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y_2.__cellid_18], [geo_maxpt_coords_100y_2.__mbr_18], [geo_maxpt_coords_100y_2.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
explain select /*+ parallel(3) */ count(*) from geo_maxpt_coords_100y_2 where st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0));
|
||||
Query Plan
|
||||
==============================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |155 |
|
||||
|1 |└─TABLE FULL SCAN|geo_maxpt_coords_100y_2(geo_pwkt)|1 |155 |
|
||||
==============================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([T_FUN_COUNT(*)]), filter(nil)
|
||||
group(nil), agg_func([T_FUN_COUNT(*)])
|
||||
1 - output(nil), filter([st_intersects(geo_maxpt_coords_100y_2.geo_pwkt, st_geomfromtext('polygon((0 0,5 0,5 5,0 5,0 0))', 0))])
|
||||
access([geo_maxpt_coords_100y_2.__pk_increment], [geo_maxpt_coords_100y_2.geo_pwkt]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([geo_maxpt_coords_100y_2.__cellid_18], [geo_maxpt_coords_100y_2.__mbr_18], [geo_maxpt_coords_100y_2.__pk_increment]), range(1152921504606846977,
|
||||
MIN,MIN ; 1152921504606846983,MAX,MAX), (1152921504606846992,MIN,MIN ; 1152921504606846992,MAX,MAX), (1152921504606847040,MIN,MIN ; 1152921504606847040,
|
||||
MAX,MAX), (1152921504606847232,MIN,MIN ; 1152921504606847232,MAX,MAX), (1152921504606848000,MIN,MIN ; 1152921504606848000,MAX,MAX), (1152921504606851072,
|
||||
MIN,MIN ; 1152921504606851072,MAX,MAX), (1152921504606863360,MIN,MIN ; 1152921504606863360,MAX,MAX), (1152921504606912512,MIN,MIN ; 1152921504606912512,
|
||||
MAX,MAX), (1152921504607109120,MIN,MIN ; 1152921504607109120,MAX,MAX), (1152921504607895552,MIN,MIN ; 1152921504607895552,MAX,MAX), (1152921504611041280,
|
||||
MIN,MIN ; 1152921504611041280,MAX,MAX), (1152921504623624192,MIN,MIN ; 1152921504623624192,MAX,MAX), (1152921504673955840,MIN,MIN ; 1152921504673955840,
|
||||
MAX,MAX), (1152921504875282432,MIN,MIN ; 1152921504875282432,MAX,MAX), (1152921505680588800,MIN,MIN ; 1152921505680588800,MAX,MAX), (1152921508901814272,
|
||||
MIN,MIN ; 1152921508901814272,MAX,MAX), (1152921521786716160,MIN,MIN ; 1152921521786716160,MAX,MAX), (1152921573326323712,MIN,MIN ; 1152921573326323712,
|
||||
MAX,MAX), (1152921779484753920,MIN,MIN ; 1152921779484753920,MAX,MAX), (1152922604118474752,MIN,MIN ; 1152922604118474752,MAX,MAX), (1152925902653358080,
|
||||
MIN,MIN ; 1152925902653358080,MAX,MAX), (1152939096792891392,MIN,MIN ; 1152939096792891392,MAX,MAX), (1152991873351024640,MIN,MIN ; 1152991873351024640,
|
||||
MAX,MAX), (1153202979583557632,MIN,MIN ; 1153202979583557632,MAX,MAX), (1154047404513689600,MIN,MIN ; 1154047404513689600,MAX,MAX), (1157425104234217472,
|
||||
MIN,MIN ; 1157425104234217472,MAX,MAX), (1170935903116328960,MIN,MIN ; 1170935903116328960,MAX,MAX), (1224979098644774912,MIN,MIN ; 1224979098644774912,
|
||||
MAX,MAX), (1441151880758558720,MIN,MIN ; 1441151880758558720,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX)
|
||||
@ -0,0 +1,203 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Base test of GEOMETRY tyoe.
|
||||
# ----------------------------------------------------------------------
|
||||
# Creating the spatial objects
|
||||
DROP TABLE IF EXISTS gis_point,gis_linestring,gis_polygon,gis_multi_point,
|
||||
gis_multi_linestring,gis_multi_polygon,gis_geometrycollection,gis_geometry;
|
||||
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
||||
CREATE TABLE gis_linestring (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
|
||||
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
|
||||
CREATE TABLE gis_multi_point (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOINT);
|
||||
CREATE TABLE gis_multi_linestring (fid INTEGER NOT NULL PRIMARY KEY, g MULTILINESTRING);
|
||||
CREATE TABLE gis_multi_polygon (fid INTEGER NOT NULL PRIMARY KEY, g MULTIPOLYGON);
|
||||
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRYCOLLECTION);
|
||||
CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
|
||||
# Displaying the created spatial columns
|
||||
SHOW FIELDS FROM gis_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g point YES NULL
|
||||
SHOW COLUMNS FROM gis_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g point YES NULL
|
||||
SHOW FIELDS FROM gis_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g linestring YES NULL
|
||||
SHOW COLUMNS FROM gis_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g linestring YES NULL
|
||||
SHOW FIELDS FROM gis_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g polygon YES NULL
|
||||
SHOW COLUMNS FROM gis_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g polygon YES NULL
|
||||
SHOW FIELDS FROM gis_multi_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipoint YES NULL
|
||||
SHOW COLUMNS FROM gis_multi_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipoint YES NULL
|
||||
SHOW FIELDS FROM gis_multi_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multilinestring YES NULL
|
||||
SHOW COLUMNS FROM gis_multi_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multilinestring YES NULL
|
||||
SHOW FIELDS FROM gis_multi_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipolygon YES NULL
|
||||
SHOW COLUMNS FROM gis_multi_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipolygon YES NULL
|
||||
SHOW FIELDS FROM gis_geometrycollection;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geomcollection YES NULL
|
||||
SHOW COLUMNS FROM gis_geometrycollection;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geomcollection YES NULL
|
||||
SHOW FIELDS FROM gis_geometry;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geometry YES NULL
|
||||
SHOW COLUMNS FROM gis_geometry;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geometry YES NULL
|
||||
# Inserting POINT Geometry Values
|
||||
# Check the parent class hierarchy by inserting all values to the GEOMETRY parent class.
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_point;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_linestring;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_polygon;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_multi_point;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_multi_linestring;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_multi_polygon;
|
||||
INSERT INTO gis_geometry SELECT * FROM gis_geometrycollection;
|
||||
# Checking the integrity of the above insert statements
|
||||
SELECT COUNT(g) FROM gis_geometry;
|
||||
COUNT(g)
|
||||
0
|
||||
# Displaying the created spatial columns
|
||||
SHOW FIELDS FROM gis_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g point YES NULL
|
||||
SHOW FIELDS FROM gis_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g linestring YES NULL
|
||||
SHOW FIELDS FROM gis_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g polygon YES NULL
|
||||
SHOW FIELDS FROM gis_multi_point;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipoint YES NULL
|
||||
SHOW FIELDS FROM gis_multi_linestring;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multilinestring YES NULL
|
||||
SHOW FIELDS FROM gis_multi_polygon;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g multipolygon YES NULL
|
||||
SHOW FIELDS FROM gis_geometrycollection;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geomcollection YES NULL
|
||||
SHOW FIELDS FROM gis_geometry;
|
||||
Field Type Null Key Default Extra
|
||||
fid int(11) NO PRI NULL
|
||||
g geometry YES NULL
|
||||
# Analyzing the spatial objets
|
||||
# Check DDL functionality on GIS datatypes
|
||||
DROP TABLE IF EXISTS tab;
|
||||
CREATE TABLE tab(c1 POINT, c2 LINESTRING, c3 POLYGON, c4 MULTIPOINT,
|
||||
c5 MULTILINESTRING, c6 MULTIPOLYGON, c7 GEOMETRYCOLLECTION, c8 GEOMETRY);
|
||||
SELECT sc.COLUMN_NAME, sc.ORDINAL_POSITION, sc.DATA_TYPE, sc.COLUMN_TYPE
|
||||
FROM information_schema.columns sc INNER JOIN information_schema.tables st
|
||||
ON sc.TABLE_NAME=st.TABLE_NAME WHERE st.TABLE_NAME='tab' ORDER BY sc.COLUMN_NAME;
|
||||
COLUMN_NAME ORDINAL_POSITION DATA_TYPE COLUMN_TYPE
|
||||
c1 1 point point
|
||||
c2 2 linestring linestring
|
||||
c3 3 polygon polygon
|
||||
c4 4 multipoint multipoint
|
||||
c5 5 multilinestring multilinestring
|
||||
c6 6 multipolygon multipolygon
|
||||
c7 7 geomcollection geomcollection
|
||||
c8 8 geometry geometry
|
||||
SET @c1 = ST_GEOMFROMTEXT('POINT(10 10)');
|
||||
SET @c2 = ST_GEOMFROMTEXT('LINESTRING(10 10,20 20,30 30)');
|
||||
SET @c3 = ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))');
|
||||
SET @c4 = ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 5,10 10,20 20)');
|
||||
SET @c5 = ST_GEOMFROMTEXT('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))');
|
||||
SET @c6 = ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))');
|
||||
SET @c7 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))');
|
||||
SET @c8 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))');
|
||||
# Insert the spatial values
|
||||
INSERT INTO tab VALUES (@c1, @c2, @c3, @c4, @c5, @c6, @c7, @c8);
|
||||
# Check the above inserted values
|
||||
SELECT ST_ASTEXT(c1), ST_ASTEXT(c2), ST_ASTEXT(c3), ST_ASTEXT(c4), ST_ASTEXT(c5), ST_ASTEXT(c6), ST_ASTEXT(c7), ST_ASTEXT(c8) FROM tab;
|
||||
ST_ASTEXT(c1) ST_ASTEXT(c2) ST_ASTEXT(c3) ST_ASTEXT(c4) ST_ASTEXT(c5) ST_ASTEXT(c6) ST_ASTEXT(c7) ST_ASTEXT(c8)
|
||||
POINT(10 10) LINESTRING(10 10,20 20,30 30) POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)) MULTIPOINT((0 0),(5 5),(10 10),(20 20)) MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30)) MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))) GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(2 2,3 3))
|
||||
# Cleanup the table
|
||||
TRUNCATE TABLE tab;
|
||||
# Create another table same as tab
|
||||
DROP TABLE IF EXISTS tab2;
|
||||
CREATE TABLE tab2 AS SELECT * FROM tab;
|
||||
# Check the table definition
|
||||
SHOW CREATE TABLE tab2;
|
||||
Table Create Table
|
||||
tab2 CREATE TABLE `tab2` (
|
||||
`c1` point DEFAULT NULL,
|
||||
`c2` linestring DEFAULT NULL,
|
||||
`c3` polygon DEFAULT NULL,
|
||||
`c4` multipoint DEFAULT NULL,
|
||||
`c5` multilinestring DEFAULT NULL,
|
||||
`c6` multipolygon DEFAULT NULL,
|
||||
`c7` geomcollection DEFAULT NULL,
|
||||
`c8` geometry DEFAULT NULL
|
||||
) DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0
|
||||
# Create a tigger and populate the values into tab2
|
||||
CREATE TRIGGER geom_trigger AFTER INSERT ON tab
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO tab2 VALUES (@c1, @c2, @c3, @c4, @c5, @c6, @c7, @c8);
|
||||
END|
|
||||
SET @c1 = ST_GEOMFROMTEXT('POINT(10 10)');
|
||||
SET @c2 = ST_GEOMFROMTEXT('LINESTRING(10 10,20 20,30 30)');
|
||||
SET @c3 = ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))');
|
||||
SET @c4 = ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 5,10 10,20 20)');
|
||||
SET @c5 = ST_GEOMFROMTEXT('MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))');
|
||||
SET @c6 = ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))');
|
||||
SET @c7 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))');
|
||||
SET @c8 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3))');
|
||||
# Insert the spatial values
|
||||
# Check the values whether populated
|
||||
# Cleaning up the trigger
|
||||
DROP TRIGGER geom_trigger;
|
||||
# Final cleanup
|
||||
DROP TABLE gis_point;
|
||||
DROP TABLE gis_linestring;
|
||||
DROP TABLE gis_polygon;
|
||||
DROP TABLE gis_multi_point;
|
||||
DROP TABLE gis_multi_linestring;
|
||||
DROP TABLE gis_multi_polygon;
|
||||
DROP TABLE gis_geometrycollection;
|
||||
DROP TABLE gis_geometry;
|
||||
DROP TABLE tab;
|
||||
DROP TABLE tab2;
|
||||
@ -0,0 +1,328 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Test of GEOMETRY NLJ JOIN.
|
||||
# ----------------------------------------------------------------------
|
||||
drop table if exists tgnoindex1, tgnoindex2, tgeom1, tgeom2, ptgeom1, ptgeom2;
|
||||
create table tgnoindex1(g1 geometry not null srid 4326);
|
||||
create table tgnoindex2(g2 geometry not null srid 4326);
|
||||
insert into tgnoindex1 values(ST_GeomFromText('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))', 4326));
|
||||
insert into tgnoindex1 values(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326));
|
||||
insert into tgnoindex1 values(ST_GeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0))', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgnoindex2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
select st_astext(tgnoindex1.g1),st_astext(tgnoindex2.g2) from tgnoindex1, tgnoindex2 where st_intersects(tgnoindex1.g1, tgnoindex2.g2);
|
||||
st_astext(tgnoindex1.g1) st_astext(tgnoindex2.g2)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
explain extended_noaddr select * from tgnoindex1, tgnoindex2 where st_intersects(tgnoindex1.g1, tgnoindex2.g2);
|
||||
Query Plan
|
||||
=========================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |8 |582 |
|
||||
|1 |├─TABLE FULL SCAN |tgnoindex2|10 |3 |
|
||||
|2 |└─MATERIAL | |3 |3 |
|
||||
|3 | └─TABLE FULL SCAN|tgnoindex1|3 |3 |
|
||||
=========================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([tgnoindex1.g1], [tgnoindex2.g2]), filter(nil)
|
||||
conds([BOOL(st_intersects(tgnoindex1.g1, tgnoindex2.g2))]), nl_params_(nil), use_batch=false
|
||||
1 - output([tgnoindex2.g2]), filter(nil)
|
||||
access([tgnoindex2.g2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([tgnoindex2.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([tgnoindex1.g1]), filter(nil)
|
||||
3 - output([tgnoindex1.g1]), filter(nil)
|
||||
access([tgnoindex1.g1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([tgnoindex1.__pk_increment]), range(MIN ; MAX)always true
|
||||
Used Hint:
|
||||
-------------------------------------
|
||||
/*+
|
||||
|
||||
*/
|
||||
Qb name trace:
|
||||
-------------------------------------
|
||||
stmt_id:0, stmt_type:T_EXPLAIN
|
||||
stmt_id:1, SEL$1
|
||||
Outline Data:
|
||||
-------------------------------------
|
||||
/*+
|
||||
BEGIN_OUTLINE_DATA
|
||||
LEADING(@"SEL$1" ("test"."tgnoindex2"@"SEL$1" "test"."tgnoindex1"@"SEL$1"))
|
||||
USE_NL(@"SEL$1" "test"."tgnoindex1"@"SEL$1")
|
||||
USE_NL_MATERIALIZATION(@"SEL$1" "test"."tgnoindex1"@"SEL$1")
|
||||
FULL(@"SEL$1" "test"."tgnoindex2"@"SEL$1")
|
||||
FULL(@"SEL$1" "test"."tgnoindex1"@"SEL$1")
|
||||
OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
|
||||
END_OUTLINE_DATA
|
||||
*/
|
||||
Optimization Info:
|
||||
-------------------------------------
|
||||
tgnoindex2:
|
||||
table_rows:10
|
||||
physical_range_rows:10
|
||||
logical_range_rows:10
|
||||
index_back_rows:0
|
||||
output_rows:10
|
||||
table_dop:1
|
||||
dop_method:Table DOP
|
||||
avaiable_index_name:[tgnoindex2]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
tgnoindex1:
|
||||
table_rows:3
|
||||
physical_range_rows:3
|
||||
logical_range_rows:3
|
||||
index_back_rows:0
|
||||
output_rows:3
|
||||
table_dop:1
|
||||
dop_method:Table DOP
|
||||
avaiable_index_name:[tgnoindex1]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
Plan Type:
|
||||
LOCAL
|
||||
Note:
|
||||
Degree of Parallelisim is 1 because of table property
|
||||
create table tgeom1(g1 geometry not null srid 4326);
|
||||
create index gidx1 on tgeom1(g1);
|
||||
create table tgeom2(g2 geometry not null srid 4326);
|
||||
create index gidx2 on tgeom2(g2);
|
||||
insert into tgeom1 values(ST_GeomFromText('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))', 4326));
|
||||
insert into tgeom1 values(ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326));
|
||||
insert into tgeom1 values(ST_GeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0))', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into tgeom2 values(ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
select st_astext(tgeom1.g1),st_astext(tgeom2.g2) from tgeom1, tgeom2 where st_intersects(tgeom1.g1, tgeom2.g2);
|
||||
st_astext(tgeom1.g1) st_astext(tgeom2.g2)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
explain extended_noaddr select * from tgeom1, tgeom2 where st_intersects(tgeom1.g1, tgeom2.g2);
|
||||
Query Plan
|
||||
======================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |8 |108 |
|
||||
|1 |├─TABLE FULL SCAN |tgeom1 |3 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE FULL SCAN|tgeom2(gidx2)|3 |35 |
|
||||
======================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([tgeom1.g1], [tgeom2.g2]), filter(nil)
|
||||
conds(nil), nl_params_([tgeom1.g1(:0)]), use_batch=false
|
||||
1 - output([tgeom1.g1]), filter(nil)
|
||||
access([tgeom1.g1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([tgeom1.__pk_increment]), range(MIN ; MAX)always true
|
||||
2 - output([tgeom2.g2]), filter([BOOL(st_intersects(:0, tgeom2.g2))])
|
||||
access([tgeom2.__pk_increment], [tgeom2.g2]), partitions(p0)
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([tgeom2.__cellid_16], [tgeom2.__mbr_16], [tgeom2.__pk_increment]), range(MIN ; MAX)
|
||||
Used Hint:
|
||||
-------------------------------------
|
||||
/*+
|
||||
|
||||
*/
|
||||
Qb name trace:
|
||||
-------------------------------------
|
||||
stmt_id:0, stmt_type:T_EXPLAIN
|
||||
stmt_id:1, SEL$1
|
||||
Outline Data:
|
||||
-------------------------------------
|
||||
/*+
|
||||
BEGIN_OUTLINE_DATA
|
||||
LEADING(@"SEL$1" ("test"."tgeom1"@"SEL$1" "test"."tgeom2"@"SEL$1"))
|
||||
USE_NL(@"SEL$1" "test"."tgeom2"@"SEL$1")
|
||||
FULL(@"SEL$1" "test"."tgeom1"@"SEL$1")
|
||||
INDEX(@"SEL$1" "test"."tgeom2"@"SEL$1" "gidx2")
|
||||
USE_DAS(@"SEL$1" "test"."tgeom2"@"SEL$1")
|
||||
OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
|
||||
END_OUTLINE_DATA
|
||||
*/
|
||||
Optimization Info:
|
||||
-------------------------------------
|
||||
tgeom1:
|
||||
table_rows:3
|
||||
physical_range_rows:3
|
||||
logical_range_rows:3
|
||||
index_back_rows:0
|
||||
output_rows:3
|
||||
table_dop:1
|
||||
dop_method:Table DOP
|
||||
avaiable_index_name:[gidx1, tgeom1]
|
||||
pruned_index_name:[gidx1]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
tgeom2:
|
||||
table_rows:10
|
||||
physical_range_rows:2
|
||||
logical_range_rows:2
|
||||
index_back_rows:2
|
||||
output_rows:2
|
||||
table_dop:1
|
||||
dop_method:DAS DOP
|
||||
avaiable_index_name:[gidx2, tgeom2]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
Plan Type:
|
||||
LOCAL
|
||||
Note:
|
||||
Degree of Parallelisim is 1 because of table property
|
||||
create table ptgeom1(c1 int, g1 geometry not null srid 4326) partition by hash(c1) partitions 3;
|
||||
create index pgidx1 on ptgeom1(g1) local;
|
||||
create table ptgeom2(c2 int, g2 geometry not null srid 4326) partition by hash(c2) partitions 3;
|
||||
create index pgidx2 on ptgeom2(g2) local;
|
||||
insert into ptgeom1 values(1, ST_GeomFromText('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))', 4326));
|
||||
insert into ptgeom1 values(2, ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326));
|
||||
insert into ptgeom1 values(3, ST_GeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0))', 4326));
|
||||
insert into ptgeom2 values(1, ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into ptgeom2 values(2, ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into ptgeom2 values(3, ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into ptgeom2 values(4, ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into ptgeom2 values(5, ST_GEOMFROMTEXT('POINT(6 6)', 4326));
|
||||
insert into ptgeom2 values(6, ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into ptgeom2 values(7, ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into ptgeom2 values(8, ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into ptgeom2 values(9, ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
insert into ptgeom2 values(10, ST_GEOMFROMTEXT('POINT(12 12)', 4326));
|
||||
select st_astext(ptgeom1.g1),st_astext(ptgeom2.g2) from ptgeom1, ptgeom2 where st_intersects(ptgeom1.g1, ptgeom2.g2) order by c1,c2;
|
||||
st_astext(ptgeom1.g1) st_astext(ptgeom2.g2)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,10 0,10 10,0 10,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(6 6)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
POLYGON((0 0,15 0,15 15,0 15,0 0)) POINT(12 12)
|
||||
explain extended_noaddr select * from ptgeom1, ptgeom2 where st_intersects(ptgeom1.g1, ptgeom2.g2);
|
||||
Query Plan
|
||||
============================================================================
|
||||
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
|
||||
----------------------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |8 |275 |
|
||||
|1 |└─EXCHANGE OUT DISTR |:EX10000 |8 |262 |
|
||||
|2 | └─NESTED-LOOP JOIN | |8 |233 |
|
||||
|3 | ├─PX PARTITION ITERATOR | |3 |7 |
|
||||
|4 | │ └─TABLE FULL SCAN |ptgeom1 |3 |7 |
|
||||
|5 | └─DISTRIBUTED TABLE FULL SCAN|ptgeom2(pgidx2)|3 |75 |
|
||||
============================================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([INTERNAL_FUNCTION(ptgeom1.c1, ptgeom1.g1, ptgeom2.c2, ptgeom2.g2)]), filter(nil)
|
||||
1 - output([INTERNAL_FUNCTION(ptgeom1.c1, ptgeom1.g1, ptgeom2.c2, ptgeom2.g2)]), filter(nil)
|
||||
dop=1
|
||||
2 - output([ptgeom1.g1], [ptgeom1.c1], [ptgeom2.c2], [ptgeom2.g2]), filter(nil)
|
||||
conds(nil), nl_params_([ptgeom1.g1(:0)]), use_batch=false
|
||||
3 - output([ptgeom1.c1], [ptgeom1.g1]), filter(nil)
|
||||
force partition granule
|
||||
4 - output([ptgeom1.c1], [ptgeom1.g1]), filter(nil)
|
||||
access([ptgeom1.c1], [ptgeom1.g1]), partitions(p[0-2])
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([ptgeom1.__pk_increment]), range(MIN ; MAX)always true
|
||||
5 - output([ptgeom2.c2], [ptgeom2.g2]), filter([BOOL(st_intersects(:0, ptgeom2.g2))])
|
||||
access([ptgeom2.__pk_increment], [ptgeom2.c2], [ptgeom2.g2]), partitions(p[0-2])
|
||||
is_index_back=true, is_global_index=false, filter_before_indexback[false],
|
||||
range_key([ptgeom2.__cellid_17], [ptgeom2.__mbr_17], [ptgeom2.__pk_increment]), range(MIN ; MAX)
|
||||
Used Hint:
|
||||
-------------------------------------
|
||||
/*+
|
||||
|
||||
*/
|
||||
Qb name trace:
|
||||
-------------------------------------
|
||||
stmt_id:0, stmt_type:T_EXPLAIN
|
||||
stmt_id:1, SEL$1
|
||||
Outline Data:
|
||||
-------------------------------------
|
||||
/*+
|
||||
BEGIN_OUTLINE_DATA
|
||||
LEADING(@"SEL$1" ("test"."ptgeom1"@"SEL$1" "test"."ptgeom2"@"SEL$1"))
|
||||
USE_NL(@"SEL$1" "test"."ptgeom2"@"SEL$1")
|
||||
PQ_DISTRIBUTE(@"SEL$1" "test"."ptgeom2"@"SEL$1" NONE ALL)
|
||||
FULL(@"SEL$1" "test"."ptgeom1"@"SEL$1")
|
||||
INDEX(@"SEL$1" "test"."ptgeom2"@"SEL$1" "pgidx2")
|
||||
USE_DAS(@"SEL$1" "test"."ptgeom2"@"SEL$1")
|
||||
OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
|
||||
END_OUTLINE_DATA
|
||||
*/
|
||||
Optimization Info:
|
||||
-------------------------------------
|
||||
ptgeom1:
|
||||
table_rows:3
|
||||
physical_range_rows:3
|
||||
logical_range_rows:3
|
||||
index_back_rows:0
|
||||
output_rows:3
|
||||
table_dop:1
|
||||
dop_method:Table DOP
|
||||
avaiable_index_name:[pgidx1, ptgeom1]
|
||||
pruned_index_name:[pgidx1]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
ptgeom2:
|
||||
table_rows:10
|
||||
physical_range_rows:2
|
||||
logical_range_rows:2
|
||||
index_back_rows:2
|
||||
output_rows:2
|
||||
table_dop:1
|
||||
dop_method:DAS DOP
|
||||
avaiable_index_name:[pgidx2, ptgeom2]
|
||||
stats version:0
|
||||
dynamic sampling level:1
|
||||
Plan Type:
|
||||
DISTRIBUTED
|
||||
Note:
|
||||
Degree of Parallelisim is 1 because of table property
|
||||
drop table tgnoindex1, tgnoindex2, tgeom1, tgeom2, ptgeom1, ptgeom2;
|
||||
@ -0,0 +1,300 @@
|
||||
# ----------------------------------------------------------------------
|
||||
# Test of GEOMETRY ST_Area.
|
||||
# ----------------------------------------------------------------------
|
||||
SELECT ST_AREA('');
|
||||
ERROR 22023: Invalid GIS data provided to function st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT(0 0)'));
|
||||
ERROR 22S01: POLYGON/MULTIPOLYGON value is a geometry of unexpected type POINT in st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOINT(0 0)'));
|
||||
ERROR 22S01: POLYGON/MULTIPOLYGON value is a geometry of unexpected type MULTIPOINT in st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING(0 0, 1 0)'));
|
||||
ERROR 22S01: POLYGON/MULTIPOLYGON value is a geometry of unexpected type LINESTRING in st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 0))'));
|
||||
ERROR 22S01: POLYGON/MULTIPOLYGON value is a geometry of unexpected type MULTILINESTRING in st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()'));
|
||||
ERROR 22S01: POLYGON/MULTIPOLYGON value is a geometry of unexpected type GEOMETRYCOLLECTION in st_area.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1e308, 1e308 1e308, 0 0))'));
|
||||
ERROR 22003: Result value is out of range in 'st_area'
|
||||
SELECT
|
||||
ROUND(
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 0))', 0)),
|
||||
2
|
||||
) AS area;
|
||||
area
|
||||
0.50
|
||||
SELECT
|
||||
ROUND(
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 0)))', 0)),
|
||||
2
|
||||
) AS area;
|
||||
area
|
||||
0.50
|
||||
SELECT
|
||||
ROUND(
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 0 0))', 4326)),
|
||||
2
|
||||
) AS area;
|
||||
area
|
||||
6154785747.34
|
||||
SELECT
|
||||
ROUND(
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 0 1, 1 1, 0 0)))', 4326)),
|
||||
2
|
||||
) AS area;
|
||||
area
|
||||
6154785747.34
|
||||
drop table if exists gis_geometrycollection;
|
||||
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
|
||||
SET @star_elem_vertical= 'POLYGON((5 0,15 25,25 0,15 5,5 0))';
|
||||
SET @star_elem_horizontal= 'POLYGON((25 0,0 15,30 15,22 10,25 0))';
|
||||
SET @star_center= 'POINT(15 10)';
|
||||
SET @star_top= 'POINT(15 25)';
|
||||
SET @star_bottom_left= 'POINT(5 0)';
|
||||
SET @star_bottom_right= 'POINT(25 0)';
|
||||
SET @star_bottom_points= 'MULTIPOINT(5 0,25 0)';
|
||||
SET @star_all_points= 'MULTIPOINT(5 0,25 0,15 10,15 25)';
|
||||
SET @star_line_horizontal= 'LINESTRING(10 15,20 15)';
|
||||
SET @star_line_vertical= 'LINESTRING(15 5,15 25)';
|
||||
SET @star_top_to_center= 'LINESTRING(15 25,15 10)';
|
||||
SET @star_lines_near_horizontal= 'MULTILINESTRING((25 0,0 15,15 30,0 5))';
|
||||
SET @star_lines_near_vertical= 'MULTILINESTRING((0 5,15 25,0 25))';
|
||||
SET @star= 'POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))';
|
||||
SET @star_elem_vertical_val= '((5 0,15 25,25 0,15 5,5 0))';
|
||||
SET @star_elem_horizontal_val= '((25 0,0 15,30 15,22 10,25 0))';
|
||||
SET @star_of_elems='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))';
|
||||
SET @star_collection_elems='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
|
||||
SET @star_collection_multilinestr='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),MULTILINESTRING((25 0,0 15,15 30,0 5)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
|
||||
INSERT INTO gis_geometrycollection VALUES
|
||||
(100,ST_GEOMFROMTEXT(@star)),
|
||||
(101,ST_GEOMFROMTEXT(@star_elem_vertical)),
|
||||
(102,ST_GEOMFROMTEXT(@star_elem_horizontal)),
|
||||
(103,ST_GEOMFROMTEXT(@star_of_elems)),
|
||||
(104,ST_GEOMFROMTEXT(@star_top)),
|
||||
(105,ST_GEOMFROMTEXT(@star_center)),
|
||||
(106,ST_GEOMFROMTEXT(@star_bottom_left)),
|
||||
(107,ST_GEOMFROMTEXT(@star_bottom_right)),
|
||||
(108,ST_GEOMFROMTEXT(@star_bottom_points)),
|
||||
(109,ST_GEOMFROMTEXT(@star_all_points)),
|
||||
(110,ST_GEOMFROMTEXT(@star_line_horizontal)),
|
||||
(111,ST_GEOMFROMTEXT(@star_line_vertical)),
|
||||
(112,ST_GEOMFROMTEXT(@star_top_to_center)),
|
||||
(113,ST_GEOMFROMTEXT(@star_lines_near_horizontal)),
|
||||
(114,ST_GEOMFROMTEXT(@star_lines_near_vertical)),
|
||||
(115,ST_GEOMFROMTEXT(@star_collection_elems)),
|
||||
(116,ST_GEOMFROMTEXT(@star_collection_multilinestr)),
|
||||
(200,ST_GEOMFROMTEXT('POLYGON((0 0,6 7,8 8,3 9,0 0),(3 6,4 6,4 7,3 6))')),
|
||||
(201,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)), ((2 2,4 5,6 2,2 2)))'));
|
||||
#test ST_AREA POLYGON
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star));
|
||||
ST_AREA(ST_GEOMFROMTEXT(@star))
|
||||
287.5
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_elem_vertical));
|
||||
ST_AREA(ST_GEOMFROMTEXT(@star_elem_vertical))
|
||||
200
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5, 0 0))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5, 0 0))'))
|
||||
12.5
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'))
|
||||
100
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,-10 0,-10 -10,0 -10, 0 0))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,-10 0,-10 -10,0 -10, 0 0))'))
|
||||
0
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'))
|
||||
96
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0))'))
|
||||
0
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))'))
|
||||
-96
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8))'))
|
||||
0
|
||||
SELECT ST_AREA(g) FROM gis_geometrycollection WHERE fid=100;
|
||||
ST_AREA(g)
|
||||
287.5
|
||||
SELECT CRC32(ST_Area(g)) FROM gis_geometrycollection WHERE fid=200;
|
||||
CRC32(ST_Area(g))
|
||||
534598600
|
||||
SELECT CRC32(ST_Area(g)) FROM gis_geometrycollection WHERE fid=201;
|
||||
CRC32(ST_Area(g))
|
||||
3832313845
|
||||
#test ST_AREA MULTIPOLYGON
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_of_elems));
|
||||
ST_AREA(ST_GEOMFROMTEXT(@star_of_elems))
|
||||
377.5
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5, 0 0)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5, 0 0)))'))
|
||||
12.5
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 10,10 0,0 0, 0 10)),((0 0,10 10,10 0, 0 0)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 10,10 0,0 0, 0 10)),((0 0,10 10,10 0, 0 0)))'))
|
||||
100
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10, 0 0)),((10 10,10 15,15 15,10 10)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10, 0 0)),((10 10,10 15,15 15,10 10)))'))
|
||||
62.5
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((4 4,4 6,6 6,6 4, 4 4)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((4 4,4 6,6 6,6 4, 4 4)))'))
|
||||
104
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0),(4 4,4 6,6 6,6 4, 4 4)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0, 0 0),(4 4,4 6,6 6,6 4, 4 4)))'))
|
||||
96
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)))'))
|
||||
0
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0)))'))
|
||||
-96
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4),(8 8,8 10,10 10,10 8,8 8)))'))
|
||||
0
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((10 10,10 0,5 10,10 10)),((0 10,0 20,5 10,0 10)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((10 10,10 0,5 10,10 10)),((0 10,0 20,5 10,0 10)))'))
|
||||
50
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0)))'))
|
||||
100
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6, 4 4)))'));
|
||||
ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6, 4 4)))'))
|
||||
98
|
||||
SELECT ST_AREA(g) FROM gis_geometrycollection WHERE fid=103;
|
||||
ST_AREA(g)
|
||||
377.5
|
||||
#test with invalid srid
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_center,-1024));
|
||||
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_all_points,-1));
|
||||
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_of_elems,4294967296));
|
||||
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_collection_elems,4294967295000));
|
||||
ERROR 22003: SRID value is out of range in 'st_geomfromtext'
|
||||
#test ST_AREA with invalid input
|
||||
SELECT ST_AREA();
|
||||
ERROR 42000: Incorrect parameter count in the call to native function 'ST_AREA'
|
||||
SELECT ST_AREA(NULL);
|
||||
ST_AREA(NULL)
|
||||
NULL
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT()'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING()'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON(())'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOINT()'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTILINESTRING(())'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON((()))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT(a 0)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT(! 0)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT('!' 0)'));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '!' 0)'))' at line 1
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POINT(12,34 0)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING('!' 0,10 10)'));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '!' 0,10 10)'))' at line 1
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON(('!' 0,10 10,10 0,0 0))'));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '!' 0,10 10,10 0,0 0))'))' at line 1
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,5 5))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,5 5,10 10))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,10 10),(0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 10)),((10 10)))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,5 5,10 10)),((10 10))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
#test ST_AREA out of range
|
||||
# Assume SRID 10 is not defined.
|
||||
SELECT ST_AREA(x'0A000000010100000000000000000000000000000000000000');
|
||||
ERROR SR001: There's no spatial reference system with SRID 10.
|
||||
# MYSQL Bug#28301552 ASSERTION FAILED: STD::ISFINITE(*RESULT)
|
||||
SELECT ST_Area(
|
||||
POLYGON(
|
||||
LINESTRING(
|
||||
POINT(4.271317e+307,-18656),
|
||||
POINT(-29177,-15475),
|
||||
POINT(8554,3430),
|
||||
POINT(4.271317e+307,-18656)
|
||||
)
|
||||
)
|
||||
);
|
||||
ERROR 22003: Result value is out of range in 'st_area'
|
||||
SELECT ST_Area(POLYGON(
|
||||
LINESTRING(
|
||||
POINT(3006,-15963),
|
||||
POINT(-17919,-15105),
|
||||
POINT(9.466488e+307,1.280303e+308),
|
||||
POINT(3006,-15963)
|
||||
)
|
||||
)
|
||||
);
|
||||
ERROR 22003: Result value is out of range in 'st_area'
|
||||
truncate table gis_geometrycollection;
|
||||
drop table gis_geometrycollection;
|
||||
#other tests
|
||||
#error codes
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT('POLYGON((0 0,5 5, 0 0))'));
|
||||
ERROR 22023: Invalid GIS data provided to function st_geomfromtext.
|
||||
SET @star_of_elems='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))';
|
||||
SELECT ST_AREA(ST_GEOMFROMTEXT(@star_of_elems));
|
||||
ST_AREA(ST_GEOMFROMTEXT(@star_of_elems))
|
||||
377.5
|
||||
Select ST_Area(ST_GEOMFROMTEXT('POLYGON((0 0, 30 30, 30 0, 0 5, 0 0, 30 5, 30 0, 0 10, 0 0, 30 10, 30 0, 0 0))')) as Result;
|
||||
Result
|
||||
450
|
||||
Select ST_Area(ST_GEOMFROMTEXT('POLYGON((1 1, 10 1, 1 0, 10 0, 1 -1, 10 -1, 7 2, 7 -2, 4 2, 4 -2, 1 1))')) as Result;
|
||||
Result
|
||||
0
|
||||
drop table if exists tbl_polygon;
|
||||
create table tbl_polygon(id varchar(32), geom GEOMETRY);
|
||||
insert into tbl_polygon (id, geom) values ('POLY1',ST_GeomFromText('POLYGON((0 0,0 10,10 10,10 0,0 0))'));
|
||||
insert into tbl_polygon (id, geom) values ('POLY2',ST_GeomFromText('POLYGON((0 0,0 -10,10 -10,10 0,0 0))'));
|
||||
select 100, st_area(t.geom) from tbl_polygon t where t.id like 'POLY%';
|
||||
100 st_area(t.geom)
|
||||
100 100
|
||||
100 100
|
||||
drop table tbl_polygon;
|
||||
drop table if exists ponds, named_places;
|
||||
CREATE TABLE ponds (
|
||||
fid INTEGER NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64),
|
||||
type VARCHAR(64),
|
||||
shores GEOMETRY);
|
||||
INSERT INTO ponds VALUES(120, NULL, 'Stock Pond', ST_GEOMFROMTEXT(
|
||||
'MULTIPOLYGON( ( ( 24 44, 22 42, 24 40, 24 44) ), ( ( 26 44, 26 40, 28 42, 26 44) ) )', 0));
|
||||
SELECT ST_Area(shores)
|
||||
FROM ponds
|
||||
WHERE fid = 120;
|
||||
ST_Area(shores)
|
||||
8
|
||||
CREATE TABLE named_places (
|
||||
fid INTEGER NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(64),
|
||||
boundary GEOMETRY);
|
||||
INSERT INTO named_places VALUES(117, 'Ashton', ST_GEOMFROMTEXT('POLYGON( ( 62 48, 84 48, 84 30, 56 30, 56 34, 62 48) )', 0));
|
||||
INSERT INTO named_places VALUES(118, 'Goose Island', ST_GEOMFROMTEXT('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )', 0));
|
||||
SELECT ST_Area(boundary) FROM named_places WHERE name = 'Goose Island';
|
||||
ST_Area(boundary)
|
||||
40
|
||||
drop table ponds, named_places;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user