mark some file to been opensource for ce-farm
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,247 @@
|
||||
result_format: 4
|
||||
explain_protocol: 0
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5', null);
|
||||
create table t2(col_int int, col_utf8 varchar(100) charset utf8,
|
||||
col_utf16 varchar(100) charset utf16,
|
||||
col_gbk varchar(100) charset gbk);
|
||||
insert into t2 values(1, 'a', 'a', 'a');
|
||||
insert into t2 values(-1, '中国', '中文', '中文');
|
||||
insert into t2 values(256, ' 中国', ' 中文', '中文');
|
||||
|
||||
select ascii(c_null) from t1;
|
||||
+---------------+
|
||||
| ascii(c_null) |
|
||||
+---------------+
|
||||
| NULL |
|
||||
| NULL |
|
||||
+---------------+
|
||||
select ord(c_null) from t1;
|
||||
+-------------+
|
||||
| ord(c_null) |
|
||||
+-------------+
|
||||
| NULL |
|
||||
| NULL |
|
||||
+-------------+
|
||||
|
||||
select c1, ascii(c1), ord(c1) from t1;
|
||||
+------+-----------+---------+
|
||||
| c1 | ascii(c1) | ord(c1) |
|
||||
+------+-----------+---------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+-----------+---------+
|
||||
select c2, ascii(c2), ord(c2) from t1;
|
||||
+------+-----------+---------+
|
||||
| c2 | ascii(c2) | ord(c2) |
|
||||
+------+-----------+---------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+-----------+---------+
|
||||
select c3, ascii(c3), ord(c3) from t1;
|
||||
+------+-----------+---------+
|
||||
| c3 | ascii(c3) | ord(c3) |
|
||||
+------+-----------+---------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+-----------+---------+
|
||||
select c4, ascii(c4), ord(c4) from t1;
|
||||
+------+-----------+---------+
|
||||
| c4 | ascii(c4) | ord(c4) |
|
||||
+------+-----------+---------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+-----------+---------+
|
||||
select c5, ascii(c5), ord(c5) from t1;
|
||||
+------+-----------+---------+
|
||||
| c5 | ascii(c5) | ord(c5) |
|
||||
+------+-----------+---------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+-----------+---------+
|
||||
select c6, ascii(c6), ord(c6) from t1;
|
||||
+------+-----------+---------+
|
||||
| c6 | ascii(c6) | ord(c6) |
|
||||
+------+-----------+---------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+-----------+---------+
|
||||
select c7, ascii(c7), ord(c7) from t1;
|
||||
+------+-----------+---------+
|
||||
| c7 | ascii(c7) | ord(c7) |
|
||||
+------+-----------+---------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+-----------+---------+
|
||||
select c8, ascii(c8), ord(c8) from t1;
|
||||
+------+-----------+---------+
|
||||
| c8 | ascii(c8) | ord(c8) |
|
||||
+------+-----------+---------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+-----------+---------+
|
||||
select c9, ascii(c9), ord(c9) from t1;
|
||||
+------+-----------+---------+
|
||||
| c9 | ascii(c9) | ord(c9) |
|
||||
+------+-----------+---------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+-----------+---------+
|
||||
select c10, ascii(c10), ord(c10) from t1;
|
||||
+------+------------+----------+
|
||||
| c10 | ascii(c10) | ord(c10) |
|
||||
+------+------------+----------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+------------+----------+
|
||||
select c11, ascii(c11), ord(c11) from t1;
|
||||
+------+------------+----------+
|
||||
| c11 | ascii(c11) | ord(c11) |
|
||||
+------+------------+----------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
+------+------------+----------+
|
||||
select c12, ascii(c12), ord(c12) from t1;
|
||||
+------+------------+----------+
|
||||
| c12 | ascii(c12) | ord(c12) |
|
||||
+------+------------+----------+
|
||||
| 2 | 50 | 50 |
|
||||
| 2 | 50 | 50 |
|
||||
+------+------------+----------+
|
||||
select c13, ascii(c13), ord(c13) from t1;
|
||||
+------+------------+----------+
|
||||
| c13 | ascii(c13) | ord(c13) |
|
||||
+------+------------+----------+
|
||||
| 3.5 | 51 | 51 |
|
||||
| -3.5 | 45 | 45 |
|
||||
+------+------------+----------+
|
||||
select c14, ascii(c14), ord(c14) from t1;
|
||||
+------+------------+----------+
|
||||
| c14 | ascii(c14) | ord(c14) |
|
||||
+------+------------+----------+
|
||||
| 4.5 | 52 | 52 |
|
||||
| 4.5 | 52 | 52 |
|
||||
+------+------------+----------+
|
||||
select c15, ascii(c15), ord(c15) from t1;
|
||||
+------+------------+----------+
|
||||
| c15 | ascii(c15) | ord(c15) |
|
||||
+------+------------+----------+
|
||||
| 5.5 | 53 | 53 |
|
||||
| -5.5 | 45 | 45 |
|
||||
+------+------------+----------+
|
||||
select c16, ascii(c16), ord(c16) from t1;
|
||||
+------+------------+----------+
|
||||
| c16 | ascii(c16) | ord(c16) |
|
||||
+------+------------+----------+
|
||||
| 6.5 | 54 | 54 |
|
||||
| 6.5 | 54 | 54 |
|
||||
+------+------------+----------+
|
||||
select c17, ascii(c17), ord(c17) from t1;
|
||||
+------+------------+----------+
|
||||
| c17 | ascii(c17) | ord(c17) |
|
||||
+------+------------+----------+
|
||||
| 8 | 56 | 56 |
|
||||
| -8 | 45 | 45 |
|
||||
+------+------------+----------+
|
||||
select c18, ascii(c18), ord(c18) from t1;
|
||||
+------+------------+----------+
|
||||
| c18 | ascii(c18) | ord(c18) |
|
||||
+------+------------+----------+
|
||||
| 9 | 57 | 57 |
|
||||
| 9 | 57 | 57 |
|
||||
+------+------------+----------+
|
||||
select c19, ascii(c19), ord(c19) from t1;
|
||||
+---------------------+------------+----------+
|
||||
| c19 | ascii(c19) | ord(c19) |
|
||||
+---------------------+------------+----------+
|
||||
| 2019-12-01 12:00:00 | 50 | 50 |
|
||||
| 2019-12-01 12:00:00 | 50 | 50 |
|
||||
+---------------------+------------+----------+
|
||||
select c20, ascii(c20), ord(c20) from t1;
|
||||
+---------------------+------------+----------+
|
||||
| c20 | ascii(c20) | ord(c20) |
|
||||
+---------------------+------------+----------+
|
||||
| 2019-12-03 06:00:00 | 50 | 50 |
|
||||
| 2019-12-03 06:00:00 | 50 | 50 |
|
||||
+---------------------+------------+----------+
|
||||
select c21, ascii(c21), ord(c21) from t1;
|
||||
+------+------------+----------+
|
||||
| c21 | ascii(c21) | ord(c21) |
|
||||
+------+------------+----------+
|
||||
| 9.5 | 57 | 57 |
|
||||
| -9.5 | 45 | 45 |
|
||||
+------+------------+----------+
|
||||
select c22, ascii(c22), ord(c22) from t1;
|
||||
+------+------------+----------+
|
||||
| c22 | ascii(c22) | ord(c22) |
|
||||
+------+------------+----------+
|
||||
| 10.5 | 49 | 49 |
|
||||
| 10.5 | 49 | 49 |
|
||||
+------+------------+----------+
|
||||
|
||||
select col_int, ascii(col_int), ord(col_int) from t2;
|
||||
+---------+----------------+--------------+
|
||||
| col_int | ascii(col_int) | ord(col_int) |
|
||||
+---------+----------------+--------------+
|
||||
| 1 | 49 | 49 |
|
||||
| -1 | 45 | 45 |
|
||||
| 256 | 50 | 50 |
|
||||
+---------+----------------+--------------+
|
||||
select col_utf8, ascii(col_utf8), ord(col_utf8) from t2;
|
||||
+----------+-----------------+---------------+
|
||||
| col_utf8 | ascii(col_utf8) | ord(col_utf8) |
|
||||
+----------+-----------------+---------------+
|
||||
| a | 97 | 97 |
|
||||
| 中国 | 228 | 14989485 |
|
||||
| 中国 | 32 | 32 |
|
||||
+----------+-----------------+---------------+
|
||||
select col_utf16, ascii(col_utf16), ord(col_utf16) from t2;
|
||||
+-----------+------------------+----------------+
|
||||
| col_utf16 | ascii(col_utf16) | ord(col_utf16) |
|
||||
+-----------+------------------+----------------+
|
||||
| a | 0 | 97 |
|
||||
| 中文 | 78 | 20013 |
|
||||
| 中文 | 0 | 32 |
|
||||
+-----------+------------------+----------------+
|
||||
select col_gbk, ascii(col_gbk), ord(col_gbk) from t2;
|
||||
+---------+----------------+--------------+
|
||||
| col_gbk | ascii(col_gbk) | ord(col_gbk) |
|
||||
+---------+----------------+--------------+
|
||||
| a | 97 | 97 |
|
||||
| 中文 | 214 | 54992 |
|
||||
| 中文 | 214 | 54992 |
|
||||
+---------+----------------+--------------+
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,59 @@
|
||||
result_format: 4
|
||||
|
||||
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select elt(1, 2, 3, NULL);
|
||||
+--------------------+
|
||||
| elt(1, 2, 3, NULL) |
|
||||
+--------------------+
|
||||
| 2 |
|
||||
+--------------------+
|
||||
select elt(NULL, 2, 3, NULL);
|
||||
+-----------------------+
|
||||
| elt(NULL, 2, 3, NULL) |
|
||||
+-----------------------+
|
||||
| NULL |
|
||||
+-----------------------+
|
||||
select elt(2, 2, 3, NULL);
|
||||
+--------------------+
|
||||
| elt(2, 2, 3, NULL) |
|
||||
+--------------------+
|
||||
| 3 |
|
||||
+--------------------+
|
||||
select elt(3, 2, 3, NULL);
|
||||
+--------------------+
|
||||
| elt(3, 2, 3, NULL) |
|
||||
+--------------------+
|
||||
| NULL |
|
||||
+--------------------+
|
||||
select elt(4, 2, 3, NULL);
|
||||
+--------------------+
|
||||
| elt(4, 2, 3, NULL) |
|
||||
+--------------------+
|
||||
| NULL |
|
||||
+--------------------+
|
||||
select elt("4", "a", "b", NULL, "c");
|
||||
+-------------------------------+
|
||||
| elt("4", "a", "b", NULL, "c") |
|
||||
+-------------------------------+
|
||||
| c |
|
||||
+-------------------------------+
|
||||
select elt("4.1", "a", "b", NULL, "c", 'd');
|
||||
+--------------------------------------+
|
||||
| elt("4.1", "a", "b", NULL, "c", 'd') |
|
||||
+--------------------------------------+
|
||||
| c |
|
||||
+--------------------------------------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '4.1'
|
||||
select elt("4.9", "a", 2.3, NULL, "c", 'd');
|
||||
+--------------------------------------+
|
||||
| elt("4.9", "a", 2.3, NULL, "c", 'd') |
|
||||
+--------------------------------------+
|
||||
| c |
|
||||
+--------------------------------------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: '4.9'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,211 @@
|
||||
result_format: 4
|
||||
drop table if exists t;
|
||||
create table t(start int);
|
||||
insert into t values (-5);
|
||||
insert into t values (-1);
|
||||
insert into t values (0);
|
||||
insert into t values (1);
|
||||
insert into t values (2);
|
||||
insert into t values (3);
|
||||
insert into t values (4);
|
||||
insert into t values (5);
|
||||
insert into t values (6);
|
||||
insert into t values (7);
|
||||
insert into t values (8);
|
||||
insert into t values (9);
|
||||
insert into t values (10);
|
||||
insert into t values (100);
|
||||
select * from t;
|
||||
+-------+
|
||||
| start |
|
||||
+-------+
|
||||
| -5 |
|
||||
| -1 |
|
||||
| 0 |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
| 6 |
|
||||
| 7 |
|
||||
| 8 |
|
||||
| 9 |
|
||||
| 10 |
|
||||
| 100 |
|
||||
+-------+
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
select insert('Quadratic', start, -1, 'What') from t;
|
||||
+----------------------------------------+
|
||||
| insert('Quadratic', start, -1, 'What') |
|
||||
+----------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| What |
|
||||
| QWhat |
|
||||
| QuWhat |
|
||||
| QuaWhat |
|
||||
| QuadWhat |
|
||||
| QuadrWhat |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+----------------------------------------+
|
||||
select insert('Quadratic', start, 0, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 0, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| WhatQuadratic |
|
||||
| QWhatuadratic |
|
||||
| QuWhatadratic |
|
||||
| QuaWhatdratic |
|
||||
| QuadWhatratic |
|
||||
| QuadrWhatatic |
|
||||
| QuadraWhattic |
|
||||
| QuadratWhatic |
|
||||
| QuadratiWhatc |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 1, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 1, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whatuadratic |
|
||||
| QWhatadratic |
|
||||
| QuWhatdratic |
|
||||
| QuaWhatratic |
|
||||
| QuadWhatatic |
|
||||
| QuadrWhattic |
|
||||
| QuadraWhatic |
|
||||
| QuadratWhatc |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 2, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 2, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whatadratic |
|
||||
| QWhatdratic |
|
||||
| QuWhatratic |
|
||||
| QuaWhatatic |
|
||||
| QuadWhattic |
|
||||
| QuadrWhatic |
|
||||
| QuadraWhatc |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 3, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 3, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whatdratic |
|
||||
| QWhatratic |
|
||||
| QuWhatatic |
|
||||
| QuaWhattic |
|
||||
| QuadWhatic |
|
||||
| QuadrWhatc |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 4, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 4, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whatratic |
|
||||
| QWhatatic |
|
||||
| QuWhattic |
|
||||
| QuaWhatic |
|
||||
| QuadWhatc |
|
||||
| QuadrWhat |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 5, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 5, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whatatic |
|
||||
| QWhattic |
|
||||
| QuWhatic |
|
||||
| QuaWhatc |
|
||||
| QuadWhat |
|
||||
| QuadrWhat |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 6, 'What') from t;
|
||||
+---------------------------------------+
|
||||
| insert('Quadratic', start, 6, 'What') |
|
||||
+---------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Whattic |
|
||||
| QWhatic |
|
||||
| QuWhatc |
|
||||
| QuaWhat |
|
||||
| QuadWhat |
|
||||
| QuadrWhat |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+---------------------------------------+
|
||||
select insert('Quadratic', start, 100, 'What') from t;
|
||||
+-----------------------------------------+
|
||||
| insert('Quadratic', start, 100, 'What') |
|
||||
+-----------------------------------------+
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
| What |
|
||||
| QWhat |
|
||||
| QuWhat |
|
||||
| QuaWhat |
|
||||
| QuadWhat |
|
||||
| QuadrWhat |
|
||||
| QuadraWhat |
|
||||
| QuadratWhat |
|
||||
| QuadratiWhat |
|
||||
| Quadratic |
|
||||
| Quadratic |
|
||||
+-----------------------------------------+
|
||||
drop table t;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,233 @@
|
||||
result_format: 4
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 bigint, c6 bigint unsigned,
|
||||
c7 float, c8 float unsigned,
|
||||
c9 double, c10 double unsigned,
|
||||
c11 decimal, c12 decimal unsigned,
|
||||
c13 date, c14 datetime, c15 timestamp);
|
||||
create table t2 (c1 varchar(100), c2 char(100));
|
||||
select * from t1;
|
||||
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
|
||||
| c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 | c9 | c10 | c11 | c12 | c13 | c14 | c15 |
|
||||
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
|
||||
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
|
||||
select * from t2;
|
||||
+------+------+
|
||||
| c1 | c2 |
|
||||
+------+------+
|
||||
+------+------+
|
||||
insert into t1 values(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
insert into t1 values(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0000-00-00', '0000-00-00 00:00:00', '0000-00-00 00:00:00');
|
||||
insert into t1 values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, '0013-01-01', '0014-01-01', '0015-01-01');
|
||||
insert into t1 values(-1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, 12, '0013-01-01', '0014-01-01 00:00:00', '0015-01-01 00:00:00');
|
||||
insert into t1 values(1234567, 7654321, -33, 44, 555555555, 666666666, 777.777, 8888.888, 99999.999999, 10000.00000, 1111, 121212121, '0013-01-01', '0014-01-01 00:00:11', '0015-01-01 00:00:11');
|
||||
insert into t2 values(null, null);
|
||||
insert into t2 values('', '');
|
||||
insert into t2 values('a', 'a');
|
||||
insert into t2 values('A', 'A');
|
||||
insert into t2 values('0', '0');
|
||||
insert into t2 values('1', '1');
|
||||
insert into t2 values('@', '@');
|
||||
insert into t2 values('#', '#');
|
||||
insert into t2 values(' ', ' ');
|
||||
insert into t2 values('abcdefg', 'abcdefg');
|
||||
insert into t2 values('abcdefg ', 'abcdefg ');
|
||||
insert into t2 values('Good morning', 'Good morning');
|
||||
insert into t2 values('Good evening', 'Good evening');
|
||||
insert into t2 values('255.255.255.255', '255.255.255.255');
|
||||
insert into t2 values('192.168.1.100', '192.168.1.100');
|
||||
insert into t2 values('30.32.204.180', '30.32.204.180');
|
||||
insert into t2 values('emily@163.com', 'emily@163.com');
|
||||
insert into t2 values('mike@sohu.com', 'mike@sohu.com');
|
||||
insert into t2 values('joey@sina.com', 'joey@sina.com');
|
||||
insert into t2 values('阿里巴巴', '阿里巴巴');
|
||||
insert into t2 values('阿里巴巴 ', '阿里巴巴 ');
|
||||
insert into t2 values('淘宝', '淘宝');
|
||||
insert into t2 values('淘宝 ', '淘宝 ');
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select c1, md5(c1) from t1;
|
||||
+---------+----------------------------------+
|
||||
| c1 | md5(c1) |
|
||||
+---------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 1 | c4ca4238a0b923820dcc509a6f75849b |
|
||||
| -1 | 6bb61e3b7bce0931da574d19d1d82c88 |
|
||||
| 1234567 | fcea920f7412b5da7be0cf42b8c93759 |
|
||||
+---------+----------------------------------+
|
||||
select c2, md5(c2) from t1;
|
||||
+---------+----------------------------------+
|
||||
| c2 | md5(c2) |
|
||||
+---------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 2 | c81e728d9d4c2f636f067f89cc14862c |
|
||||
| 2 | c81e728d9d4c2f636f067f89cc14862c |
|
||||
| 7654321 | f0898af949a373e72a4f6a34b4de9090 |
|
||||
+---------+----------------------------------+
|
||||
select c3, md5(c3) from t1;
|
||||
+------+----------------------------------+
|
||||
| c3 | md5(c3) |
|
||||
+------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 3 | eccbc87e4b5ce2fe28308fd9f2a7baf3 |
|
||||
| -3 | b3149ecea4628efd23d2f86e5a723472 |
|
||||
| -33 | 0405bb6050e3e04f90c6bfae8ea1000e |
|
||||
+------+----------------------------------+
|
||||
select c4, md5(c4) from t1;
|
||||
+------+----------------------------------+
|
||||
| c4 | md5(c4) |
|
||||
+------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 4 | a87ff679a2f3e71d9181a67b7542122c |
|
||||
| 4 | a87ff679a2f3e71d9181a67b7542122c |
|
||||
| 44 | f7177163c833dff4b38fc8d2872f1ec6 |
|
||||
+------+----------------------------------+
|
||||
select c5, md5(c5) from t1;
|
||||
+-----------+----------------------------------+
|
||||
| c5 | md5(c5) |
|
||||
+-----------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 5 | e4da3b7fbbce2345d7772b0674a318d5 |
|
||||
| -5 | 47c1b025fa18ea96c33fbb6718688c0f |
|
||||
| 555555555 | 3665a76e271ada5a75368b99f774e404 |
|
||||
+-----------+----------------------------------+
|
||||
select c6, md5(c6) from t1;
|
||||
+-----------+----------------------------------+
|
||||
| c6 | md5(c6) |
|
||||
+-----------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 6 | 1679091c5a880faf6fb5e6087eb1b2dc |
|
||||
| 6 | 1679091c5a880faf6fb5e6087eb1b2dc |
|
||||
| 666666666 | 9f0863dd5f0256b0f586a7b523f8cfe8 |
|
||||
+-----------+----------------------------------+
|
||||
select c7, md5(c7) from t1;
|
||||
+---------+----------------------------------+
|
||||
| c7 | md5(c7) |
|
||||
+---------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 7 | 8f14e45fceea167a5a36dedd4bea2543 |
|
||||
| -7 | 74687a12d3915d3c4d83f1af7b3683d5 |
|
||||
| 777.777 | d3c35946d7f923ca16623f474237e865 |
|
||||
+---------+----------------------------------+
|
||||
select c8, md5(c8) from t1;
|
||||
+---------+----------------------------------+
|
||||
| c8 | md5(c8) |
|
||||
+---------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 8 | c9f0f895fb98ab9159f51fd0297e236d |
|
||||
| 8 | c9f0f895fb98ab9159f51fd0297e236d |
|
||||
| 8888.89 | 9e81de41fa5f570dc92f2f98e6d6d662 |
|
||||
+---------+----------------------------------+
|
||||
select c9, md5(c9) from t1;
|
||||
+--------------+----------------------------------+
|
||||
| c9 | md5(c9) |
|
||||
+--------------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 9 | 45c48cce2e2d7fbdea1afc51c7c6ad26 |
|
||||
| -9 | 252e691406782824eec43d7eadc3d256 |
|
||||
| 99999.999999 | ecea7349839513115a4cfd226947a7f3 |
|
||||
+--------------+----------------------------------+
|
||||
select c10, md5(c10) from t1;
|
||||
+-------+----------------------------------+
|
||||
| c10 | md5(c10) |
|
||||
+-------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 10 | d3d9446802a44259755d38e6d163e820 |
|
||||
| 10 | d3d9446802a44259755d38e6d163e820 |
|
||||
| 10000 | b7a782741f667201b54880c925faec4b |
|
||||
+-------+----------------------------------+
|
||||
select c11, md5(c11) from t1;
|
||||
+------+----------------------------------+
|
||||
| c11 | md5(c11) |
|
||||
+------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 11 | 6512bd43d9caa6e02c990b0a82652dca |
|
||||
| -11 | fe9bea92980bb30c7fb9cc3c33c99204 |
|
||||
| 1111 | b59c67bf196a4758191e42f76670ceba |
|
||||
+------+----------------------------------+
|
||||
select c12, md5(c12) from t1;
|
||||
+-----------+----------------------------------+
|
||||
| c12 | md5(c12) |
|
||||
+-----------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 12 | c20ad4d76fe97759aa27a0c99bff6710 |
|
||||
| 12 | c20ad4d76fe97759aa27a0c99bff6710 |
|
||||
| 121212121 | 28f673f31cdd6af50d1f0b8e2b71b9e5 |
|
||||
+-----------+----------------------------------+
|
||||
select c13, md5(c13) from t1;
|
||||
+------------+----------------------------------+
|
||||
| c13 | md5(c13) |
|
||||
+------------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0000-00-00 | 21818ea7c95e62897f2739dd05578c8d |
|
||||
| 0013-01-01 | 72782cdcbfb6d85b4293747a2b6f250b |
|
||||
| 0013-01-01 | 72782cdcbfb6d85b4293747a2b6f250b |
|
||||
| 0013-01-01 | 72782cdcbfb6d85b4293747a2b6f250b |
|
||||
+------------+----------------------------------+
|
||||
select c14, md5(c14) from t1;
|
||||
+---------------------+----------------------------------+
|
||||
| c14 | md5(c14) |
|
||||
+---------------------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0000-00-00 00:00:00 | 8e30a659c31b53017073692309ab0da1 |
|
||||
| 0014-01-01 00:00:00 | 532c4452dbb2e2ffafef1a869ff09ef2 |
|
||||
| 0014-01-01 00:00:00 | 532c4452dbb2e2ffafef1a869ff09ef2 |
|
||||
| 0014-01-01 00:00:11 | 02da86a1eeaff88dffb97a1ee3573824 |
|
||||
+---------------------+----------------------------------+
|
||||
select c15, md5(c15) from t1;
|
||||
+---------------------+----------------------------------+
|
||||
| c15 | md5(c15) |
|
||||
+---------------------+----------------------------------+
|
||||
| NULL | NULL |
|
||||
| 0000-00-00 00:00:00 | 8e30a659c31b53017073692309ab0da1 |
|
||||
| 0015-01-01 00:00:00 | 0a6c39d0a24b970b5f2b0ae1c35a2283 |
|
||||
| 0015-01-01 00:00:00 | 0a6c39d0a24b970b5f2b0ae1c35a2283 |
|
||||
| 0015-01-01 00:00:11 | 44d4719b08d9536a0dd47907fe8c75e6 |
|
||||
+---------------------+----------------------------------+
|
||||
select c1, md5(c1), c2, md5(c2) from t2;
|
||||
+-----------------+----------------------------------+-----------------+----------------------------------+
|
||||
| c1 | md5(c1) | c2 | md5(c2) |
|
||||
+-----------------+----------------------------------+-----------------+----------------------------------+
|
||||
| NULL | NULL | NULL | NULL |
|
||||
| | d41d8cd98f00b204e9800998ecf8427e | | d41d8cd98f00b204e9800998ecf8427e |
|
||||
| a | 0cc175b9c0f1b6a831c399e269772661 | a | 0cc175b9c0f1b6a831c399e269772661 |
|
||||
| A | 7fc56270e7a70fa81a5935b72eacbe29 | A | 7fc56270e7a70fa81a5935b72eacbe29 |
|
||||
| 0 | cfcd208495d565ef66e7dff9f98764da | 0 | cfcd208495d565ef66e7dff9f98764da |
|
||||
| 1 | c4ca4238a0b923820dcc509a6f75849b | 1 | c4ca4238a0b923820dcc509a6f75849b |
|
||||
| @ | 518ed29525738cebdac49c49e60ea9d3 | @ | 518ed29525738cebdac49c49e60ea9d3 |
|
||||
| # | 01abfc750a0c942167651c40d088531d | # | 01abfc750a0c942167651c40d088531d |
|
||||
| | 7215ee9c7d9dc229d2921a40e899ec5f | | d41d8cd98f00b204e9800998ecf8427e |
|
||||
| abcdefg | 7ac66c0f148de9519b8bd264312c4d64 | abcdefg | 7ac66c0f148de9519b8bd264312c4d64 |
|
||||
| abcdefg | cea1a161b6f38ac9189d204a6ff0e231 | abcdefg | 7ac66c0f148de9519b8bd264312c4d64 |
|
||||
| Good morning | 4e44298897ed12cdc10e5302fa781688 | Good morning | 4e44298897ed12cdc10e5302fa781688 |
|
||||
| Good evening | 0a28b30e5d84d83d385b6b9afd5661ae | Good evening | 0a28b30e5d84d83d385b6b9afd5661ae |
|
||||
| 255.255.255.255 | eea88cd0d9a7ba26282fc786713bbbb6 | 255.255.255.255 | eea88cd0d9a7ba26282fc786713bbbb6 |
|
||||
| 192.168.1.100 | d984a05fa268b7cc6ac052a38960aeb2 | 192.168.1.100 | d984a05fa268b7cc6ac052a38960aeb2 |
|
||||
| 30.32.204.180 | 8f70c7dd37a827875dd5e8bfb59b001e | 30.32.204.180 | 8f70c7dd37a827875dd5e8bfb59b001e |
|
||||
| emily@163.com | 3def867c78b2b87744512a6cbbc1d730 | emily@163.com | 3def867c78b2b87744512a6cbbc1d730 |
|
||||
| mike@sohu.com | 91f49bb2c81568dcc32f74d9f1cb5811 | mike@sohu.com | 91f49bb2c81568dcc32f74d9f1cb5811 |
|
||||
| joey@sina.com | 59014c527f2387d23490b78e6b973c37 | joey@sina.com | 59014c527f2387d23490b78e6b973c37 |
|
||||
| 阿里巴巴 | 49edab1cb53ba3cf77c6c3271196acbb | 阿里巴巴 | 49edab1cb53ba3cf77c6c3271196acbb |
|
||||
| 阿里巴巴 | a5ca9dd3dc1f3857eee9c2daaeba130b | 阿里巴巴 | 49edab1cb53ba3cf77c6c3271196acbb |
|
||||
| 淘宝 | 12ad5c790444f88966c2faf90e73d8c9 | 淘宝 | 12ad5c790444f88966c2faf90e73d8c9 |
|
||||
| 淘宝 | e04842fc8f74042c581063da43e6adb9 | 淘宝 | 12ad5c790444f88966c2faf90e73d8c9 |
|
||||
+-----------------+----------------------------------+-----------------+----------------------------------+
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
result_format: 4
|
||||
|
||||
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select mid('abcdef', 2);
|
||||
+------------------+
|
||||
| mid('abcdef', 2) |
|
||||
+------------------+
|
||||
| bcdef |
|
||||
+------------------+
|
||||
select mid('abcdef', 2, 2);
|
||||
+---------------------+
|
||||
| mid('abcdef', 2, 2) |
|
||||
+---------------------+
|
||||
| bc |
|
||||
+---------------------+
|
||||
select mid('abcdef', "2.9", 2);
|
||||
+-------------------------+
|
||||
| mid('abcdef', "2.9", 2) |
|
||||
+-------------------------+
|
||||
| bc |
|
||||
+-------------------------+
|
||||
select mid('abcdef', NULL, 2);
|
||||
+------------------------+
|
||||
| mid('abcdef', NULL, 2) |
|
||||
+------------------------+
|
||||
| NULL |
|
||||
+------------------------+
|
||||
select mid('abcdef', -1, 2);
|
||||
+----------------------+
|
||||
| mid('abcdef', -1, 2) |
|
||||
+----------------------+
|
||||
| f |
|
||||
+----------------------+
|
||||
select mid('abcdef', 2, 100);
|
||||
+-----------------------+
|
||||
| mid('abcdef', 2, 100) |
|
||||
+-----------------------+
|
||||
| bcdef |
|
||||
+-----------------------+
|
||||
select mid('abcdef', 2, -1);
|
||||
+----------------------+
|
||||
| mid('abcdef', 2, -1) |
|
||||
+----------------------+
|
||||
| |
|
||||
+----------------------+
|
||||
select mid('abcdef', 2, NULL);
|
||||
+------------------------+
|
||||
| mid('abcdef', 2, NULL) |
|
||||
+------------------------+
|
||||
| NULL |
|
||||
+------------------------+
|
||||
select mid('', 1);
|
||||
+------------+
|
||||
| mid('', 1) |
|
||||
+------------+
|
||||
| |
|
||||
+------------+
|
||||
select mid(NULL, 1);
|
||||
+--------------+
|
||||
| mid(NULL, 1) |
|
||||
+--------------+
|
||||
| NULL |
|
||||
+--------------+
|
||||
@ -0,0 +1,787 @@
|
||||
result_format: 4
|
||||
|
||||
alter system flush plan cache global;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select neg(1) from dual;
|
||||
+--------+
|
||||
| neg(1) |
|
||||
+--------+
|
||||
| -1 |
|
||||
+--------+
|
||||
select neg(-1) from dual;
|
||||
+---------+
|
||||
| neg(-1) |
|
||||
+---------+
|
||||
| 1 |
|
||||
+---------+
|
||||
select neg(1.2324) from dual;
|
||||
+-------------+
|
||||
| neg(1.2324) |
|
||||
+-------------+
|
||||
| -1.2324 |
|
||||
+-------------+
|
||||
select neg(-1.2324) from dual;
|
||||
+--------------+
|
||||
| neg(-1.2324) |
|
||||
+--------------+
|
||||
| 1.2324 |
|
||||
+--------------+
|
||||
select neg('-1') from dual;
|
||||
+-----------+
|
||||
| neg('-1') |
|
||||
+-----------+
|
||||
| 1 |
|
||||
+-----------+
|
||||
explain select neg('-1') from dual;
|
||||
Query Plan
|
||||
==========================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------
|
||||
|0 |EXPRESSION| |1 |1 |
|
||||
==========================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast('-1', DOUBLE(-1, -1)))]), filter(nil)
|
||||
values({neg(cast('-1', DOUBLE(-1, -1)))})
|
||||
select neg('1.234') from dual;
|
||||
+--------------+
|
||||
| neg('1.234') |
|
||||
+--------------+
|
||||
| -1.234 |
|
||||
+--------------+
|
||||
|
||||
select neg(null) from dual;
|
||||
+-----------+
|
||||
| neg(null) |
|
||||
+-----------+
|
||||
| NULL |
|
||||
+-----------+
|
||||
select neg('-abcd');
|
||||
+--------------+
|
||||
| neg('-abcd') |
|
||||
+--------------+
|
||||
| -0 |
|
||||
+--------------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: '-abcd'
|
||||
select neg('2014-10-09 10:00:00');
|
||||
+----------------------------+
|
||||
| neg('2014-10-09 10:00:00') |
|
||||
+----------------------------+
|
||||
| -2014 |
|
||||
+----------------------------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: '2014-10-09 10:00:00'
|
||||
|
||||
select neg(-9223372036854775808);
|
||||
+---------------------------+
|
||||
| neg(-9223372036854775808) |
|
||||
+---------------------------+
|
||||
| 9223372036854775808 |
|
||||
+---------------------------+
|
||||
select neg(-9999999999999999999999);
|
||||
+------------------------------+
|
||||
| neg(-9999999999999999999999) |
|
||||
+------------------------------+
|
||||
| 9999999999999999999999 |
|
||||
+------------------------------+
|
||||
select neg(10/0);
|
||||
+-----------+
|
||||
| neg(10/0) |
|
||||
+-----------+
|
||||
| NULL |
|
||||
+-----------+
|
||||
select neg(9999999999999999999999);
|
||||
+-----------------------------+
|
||||
| neg(9999999999999999999999) |
|
||||
+-----------------------------+
|
||||
| -9999999999999999999999 |
|
||||
+-----------------------------+
|
||||
select neg(true);
|
||||
+-----------+
|
||||
| neg(true) |
|
||||
+-----------+
|
||||
| -1 |
|
||||
+-----------+
|
||||
select neg(false);
|
||||
+------------+
|
||||
| neg(false) |
|
||||
+------------+
|
||||
| 0 |
|
||||
+------------+
|
||||
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
drop table if exists t;
|
||||
create table t (t1 tinyint,
|
||||
t2 smallint,
|
||||
t3 mediumint,
|
||||
t4 integer,
|
||||
t5 bigint,
|
||||
t6 tinyint unsigned,
|
||||
t7 smallint unsigned,
|
||||
t8 mediumint unsigned,
|
||||
t9 integer unsigned,
|
||||
t10 bigint unsigned,
|
||||
t11 float,
|
||||
t12 float unsigned,
|
||||
t13 double,
|
||||
t14 double unsigned,
|
||||
t15 number,
|
||||
t16 number unsigned,
|
||||
t17 datetime,
|
||||
t18 timestamp,
|
||||
t19 date,
|
||||
t20 time,
|
||||
t21 year,
|
||||
t22 varchar(255),
|
||||
t23 char(255),
|
||||
t24 tinytext,
|
||||
t25 mediumtext,
|
||||
t26 longtext,
|
||||
t27 bit,
|
||||
t28 enum('a', 'b', 'c'),
|
||||
t29 set('a', 'b', 'c'));
|
||||
|
||||
insert into t values (1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -0.2, 0.3, 0.4, 0.5, -0.6, 0.7,
|
||||
'1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1',
|
||||
'1.2', 1, 'b', 'b');
|
||||
insert into t(t1) values (null);
|
||||
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select neg(t1) from t;
|
||||
+---------+
|
||||
| neg(t1) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t1) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t1, BIGINT(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t2) from t;
|
||||
+---------+
|
||||
| neg(t2) |
|
||||
+---------+
|
||||
| 1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t2) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t2, BIGINT(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t3) from t;
|
||||
+---------+
|
||||
| neg(t3) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t3) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t3, BIGINT(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t4) from t;
|
||||
+---------+
|
||||
| neg(t4) |
|
||||
+---------+
|
||||
| 1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t4) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t4, BIGINT(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t4]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t5) from t;
|
||||
+---------+
|
||||
| neg(t5) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t5) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(t.t5)]), filter(nil), rowset=16
|
||||
access([t.t5]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t6) from t;
|
||||
+---------+
|
||||
| neg(t6) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t6) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t6, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t6]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t7) from t;
|
||||
+---------+
|
||||
| neg(t7) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t7) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t7, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t7]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t8) from t;
|
||||
+---------+
|
||||
| neg(t8) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t8) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t8, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t8]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t9) from t;
|
||||
+---------+
|
||||
| neg(t9) |
|
||||
+---------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+---------+
|
||||
explain select neg(t9) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t9, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t9]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t10) from t;
|
||||
+----------+
|
||||
| neg(t10) |
|
||||
+----------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t10) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(t.t10)]), filter(nil), rowset=16
|
||||
access([t.t10]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t11) from t;
|
||||
+---------------------+
|
||||
| neg(t11) |
|
||||
+---------------------+
|
||||
| NULL |
|
||||
| 0.20000000298023224 |
|
||||
+---------------------+
|
||||
explain select neg(t11) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t11, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t11]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t12) from t;
|
||||
+----------------------+
|
||||
| neg(t12) |
|
||||
+----------------------+
|
||||
| NULL |
|
||||
| -0.30000001192092896 |
|
||||
+----------------------+
|
||||
explain select neg(t12) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t12, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t12]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t13) from t;
|
||||
+----------+
|
||||
| neg(t13) |
|
||||
+----------+
|
||||
| -0.4 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t13) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(t.t13)]), filter(nil), rowset=16
|
||||
access([t.t13]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t14) from t;
|
||||
+----------+
|
||||
| neg(t14) |
|
||||
+----------+
|
||||
| -0.5 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t14) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t14, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t14]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t15) from t;
|
||||
+----------+
|
||||
| neg(t15) |
|
||||
+----------+
|
||||
| 1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t15) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(t.t15)]), filter(nil), rowset=16
|
||||
access([t.t15]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t16) from t;
|
||||
+----------+
|
||||
| neg(t16) |
|
||||
+----------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t16) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t16, DECIMAL(10, 0)))]), filter(nil), rowset=16
|
||||
access([t.t16]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t17) from t;
|
||||
+-----------------+
|
||||
| neg(t17) |
|
||||
+-----------------+
|
||||
| NULL |
|
||||
| -19930320000000 |
|
||||
+-----------------+
|
||||
explain select neg(t17) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t17, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t17]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t18) from t;
|
||||
+-----------------+
|
||||
| neg(t18) |
|
||||
+-----------------+
|
||||
| NULL |
|
||||
| -19930320000000 |
|
||||
+-----------------+
|
||||
explain select neg(t18) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t18, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t18]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t19) from t;
|
||||
+-----------+
|
||||
| neg(t19) |
|
||||
+-----------+
|
||||
| NULL |
|
||||
| -19930320 |
|
||||
+-----------+
|
||||
explain select neg(t19) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t19, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t19]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t20) from t;
|
||||
+----------+
|
||||
| neg(t20) |
|
||||
+----------+
|
||||
| NULL |
|
||||
| -101010 |
|
||||
+----------+
|
||||
explain select neg(t20) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t20, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t20]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t21) from t;
|
||||
+----------+
|
||||
| neg(t21) |
|
||||
+----------+
|
||||
| NULL |
|
||||
| -1993 |
|
||||
+----------+
|
||||
explain select neg(t21) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t21, BIGINT(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t21]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t22) from t;
|
||||
+----------+
|
||||
| neg(t22) |
|
||||
+----------+
|
||||
| -0.8 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t22) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t22, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t22]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t23) from t;
|
||||
+----------+
|
||||
| neg(t23) |
|
||||
+----------+
|
||||
| -0.9 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t23) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t23, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t23]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t24) from t;
|
||||
+----------+
|
||||
| neg(t24) |
|
||||
+----------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t24) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t24, DOUBLE(-1, -1)))]), filter(nil), rowset=16
|
||||
access([t.t24]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t25) from t;
|
||||
+----------+
|
||||
| neg(t25) |
|
||||
+----------+
|
||||
| -1.1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t25) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t25, DOUBLE(-1, -1)))]), filter(nil)
|
||||
access([t.t25]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t26) from t;
|
||||
+----------+
|
||||
| neg(t26) |
|
||||
+----------+
|
||||
| -1.2 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t26) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t26, DOUBLE(-1, -1)))]), filter(nil)
|
||||
access([t.t26]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t27) from t;
|
||||
+----------+
|
||||
| neg(t27) |
|
||||
+----------+
|
||||
| -1 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t27) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t27, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t27]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t28) from t;
|
||||
+----------+
|
||||
| neg(t28) |
|
||||
+----------+
|
||||
| -2 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t28) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t28, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t28]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
select neg(t29) from t;
|
||||
+----------+
|
||||
| neg(t29) |
|
||||
+----------+
|
||||
| -2 |
|
||||
| NULL |
|
||||
+----------+
|
||||
explain select neg(t29) from t;
|
||||
Query Plan
|
||||
===============================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------
|
||||
|0 |TABLE FULL SCAN|t |2 |3 |
|
||||
===============================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([neg(cast(t.t29, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
|
||||
access([t.t29]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t.__pk_increment]), range(MIN ; MAX)always true
|
||||
|
||||
set ob_enable_plan_cache = 0;
|
||||
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
| --9223372036854775808 | ---9223372036854775808 | ----9223372036854775808 |
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
| 9223372036854775808 | -9223372036854775808 | 9223372036854775808 |
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
|
||||
alter system flush plan cache global;
|
||||
set ob_enable_plan_cache = 1;
|
||||
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
| --9223372036854775808 | ---9223372036854775808 | ----9223372036854775808 |
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
| 9223372036854775808 | -9223372036854775808 | 9223372036854775808 |
|
||||
+-----------------------+------------------------+-------------------------+
|
||||
|
||||
drop view if exists v1;
|
||||
create view v1 as select --9223372036854775808 c1, ---9223372036854775808 c2, ----9223372036854775808 c3;
|
||||
// bug here: 视图的列的类型应该是decimal,应该是因为create view as路径上没有开新引擎开关
|
||||
desc v1;
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
| c1 | decimal(21,0) | NO | | | |
|
||||
| c2 | decimal(22,0) | NO | | | |
|
||||
| c3 | decimal(23,0) | NO | | | |
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
drop view v1;
|
||||
create view v1 as select -neg(-9223372036854775808) c1, --neg(-9223372036854775808) c2, ---neg(-9223372036854775808) c3;
|
||||
desc v1;
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
| c1 | decimal(22,0) | NO | | | |
|
||||
| c2 | decimal(23,0) | NO | | | |
|
||||
| c3 | decimal(24,0) | NO | | | |
|
||||
+-------+---------------+------+-----+---------+-------+
|
||||
drop view v1;
|
||||
|
||||
drop table if exists tt;
|
||||
create table tt(c1 bigint);
|
||||
insert into tt values(-9223372036854775808);
|
||||
select c1, -c1 from tt;
|
||||
ERROR 22003: value is out of range
|
||||
// MySQL will give error, OB return c1. two neg will be removed when resolve neg node
|
||||
select c1, --c1 from tt;
|
||||
ERROR 22003: value is out of range
|
||||
select c1, ---c1 from tt;
|
||||
ERROR 22003: value is out of range
|
||||
|
||||
@ -1,912 +0,0 @@
|
||||
result_format: 4
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5', null);
|
||||
|
||||
create table t2(
|
||||
a1 char(3) primary key,
|
||||
a2 int,
|
||||
a3 char(3),
|
||||
a4 float,
|
||||
a5 datetime
|
||||
);
|
||||
insert into t2 values('AME',0,'SEA',0.100,date'1942-02-19');
|
||||
insert into t2 values('HBR',1,'SEA',0.085,date'1948-03-05');
|
||||
insert into t2 values('BOT',-2,'SEA',-0.085,date'1951-11-29');
|
||||
insert into t2 values('BMC',3,'SEA',-0.085,date'1958-09-08');
|
||||
insert into t2 values('TWU',+0,'LAX',-0.080,date'1969-10-05');
|
||||
insert into t2 values('BDL',-0,'DEN',-0.080,date'1960-11-27');
|
||||
insert into t2 values('DTX',1,'NYC',0.080,date'1961-05-04');
|
||||
insert into t2 values('PLS',-1,'WDC',-0.075,date'1949-01-02');
|
||||
insert into t2 values('ZAJ',2,'CHI',-0.075,date'1960-06-15');
|
||||
insert into t2 values('VVV',-2,'MON',0.075,date'1959-06-28');
|
||||
insert into t2 values('GTM',3,'DAL',-0.070,date'1977-09-23');
|
||||
insert into t2 values('SSJ',null,'CHI',null,date'1974-03-19');
|
||||
insert into t2 values('KKK',-3,'ATL',null,null);
|
||||
insert into t2 values('XXX',null,'MIN',null,null);
|
||||
insert into t2 values('WWW',1,'LED',null,null);
|
||||
insert into t2 values('GG3',-3,'DD3',-0.051,date'1974-03-19');
|
||||
insert into t2 values('GG2',-3,'DD2',0.052,date'1974-03-19');
|
||||
insert into t2 values('GG1',3,'DD1',0.053,date'1974-03-19');
|
||||
|
||||
select sign(null) from dual;
|
||||
+------------+
|
||||
| sign(null) |
|
||||
+------------+
|
||||
| NULL |
|
||||
+------------+
|
||||
|
||||
select c1, sign(c1) from t1;
|
||||
+------+----------+
|
||||
| c1 | sign(c1) |
|
||||
+------+----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+----------+
|
||||
select c2, sign(c2) from t1;
|
||||
+------+----------+
|
||||
| c2 | sign(c2) |
|
||||
+------+----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+----------+
|
||||
select c3, sign(c3) from t1;
|
||||
+------+----------+
|
||||
| c3 | sign(c3) |
|
||||
+------+----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+----------+
|
||||
select c4, sign(c4) from t1;
|
||||
+------+----------+
|
||||
| c4 | sign(c4) |
|
||||
+------+----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+----------+
|
||||
select c5, sign(c5) from t1;
|
||||
+------+----------+
|
||||
| c5 | sign(c5) |
|
||||
+------+----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+----------+
|
||||
select c6, sign(c6) from t1;
|
||||
+------+----------+
|
||||
| c6 | sign(c6) |
|
||||
+------+----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+----------+
|
||||
select c7, sign(c7) from t1;
|
||||
+------+----------+
|
||||
| c7 | sign(c7) |
|
||||
+------+----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+----------+
|
||||
select c8, sign(c8) from t1;
|
||||
+------+----------+
|
||||
| c8 | sign(c8) |
|
||||
+------+----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+----------+
|
||||
select c9, sign(c9) from t1;
|
||||
+------+----------+
|
||||
| c9 | sign(c9) |
|
||||
+------+----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+----------+
|
||||
select c10, sign(c10) from t1;
|
||||
+------+-----------+
|
||||
| c10 | sign(c10) |
|
||||
+------+-----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+-----------+
|
||||
select c11, sign(c11) from t1;
|
||||
+------+-----------+
|
||||
| c11 | sign(c11) |
|
||||
+------+-----------+
|
||||
| 1 | 1 |
|
||||
| -1 | -1 |
|
||||
+------+-----------+
|
||||
select c12, sign(c12) from t1;
|
||||
+------+-----------+
|
||||
| c12 | sign(c12) |
|
||||
+------+-----------+
|
||||
| 2 | 1 |
|
||||
| 2 | 1 |
|
||||
+------+-----------+
|
||||
select c13, sign(c13) from t1;
|
||||
+------+-----------+
|
||||
| c13 | sign(c13) |
|
||||
+------+-----------+
|
||||
| 3.5 | 1 |
|
||||
| -3.5 | -1 |
|
||||
+------+-----------+
|
||||
select c14, sign(c14) from t1;
|
||||
+------+-----------+
|
||||
| c14 | sign(c14) |
|
||||
+------+-----------+
|
||||
| 4.5 | 1 |
|
||||
| 4.5 | 1 |
|
||||
+------+-----------+
|
||||
select c15, sign(c15) from t1;
|
||||
+------+-----------+
|
||||
| c15 | sign(c15) |
|
||||
+------+-----------+
|
||||
| 5.5 | 1 |
|
||||
| -5.5 | -1 |
|
||||
+------+-----------+
|
||||
select c16, sign(c16) from t1;
|
||||
+------+-----------+
|
||||
| c16 | sign(c16) |
|
||||
+------+-----------+
|
||||
| 6.5 | 1 |
|
||||
| 6.5 | 1 |
|
||||
+------+-----------+
|
||||
select c17, sign(c17) from t1;
|
||||
+------+-----------+
|
||||
| c17 | sign(c17) |
|
||||
+------+-----------+
|
||||
| 8 | 1 |
|
||||
| -8 | -1 |
|
||||
+------+-----------+
|
||||
select c18, sign(c18) from t1;
|
||||
+------+-----------+
|
||||
| c18 | sign(c18) |
|
||||
+------+-----------+
|
||||
| 9 | 1 |
|
||||
| 9 | 1 |
|
||||
+------+-----------+
|
||||
select c19, sign(c19) from t1;
|
||||
+---------------------+-----------+
|
||||
| c19 | sign(c19) |
|
||||
+---------------------+-----------+
|
||||
| 2019-12-01 12:00:00 | 1 |
|
||||
| 2019-12-01 12:00:00 | 1 |
|
||||
+---------------------+-----------+
|
||||
select c20, sign(c20) from t1;
|
||||
+---------------------+-----------+
|
||||
| c20 | sign(c20) |
|
||||
+---------------------+-----------+
|
||||
| 2019-12-03 06:00:00 | 1 |
|
||||
| 2019-12-03 06:00:00 | 1 |
|
||||
+---------------------+-----------+
|
||||
select c21, sign(c21) from t1;
|
||||
+------+-----------+
|
||||
| c21 | sign(c21) |
|
||||
+------+-----------+
|
||||
| 9.5 | 1 |
|
||||
| -9.5 | -1 |
|
||||
+------+-----------+
|
||||
select c22, sign(c22) from t1;
|
||||
+------+-----------+
|
||||
| c22 | sign(c22) |
|
||||
+------+-----------+
|
||||
| 10.5 | 1 |
|
||||
| 10.5 | 1 |
|
||||
+------+-----------+
|
||||
|
||||
select sign(a1) from t2;
|
||||
+----------+
|
||||
| sign(a1) |
|
||||
+----------+
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
+----------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'AME'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BDL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BMC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BOT'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DTX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG1'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG2'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG3'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GTM'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'HBR'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'KKK'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'PLS'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SSJ'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'TWU'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'VVV'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'WWW'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'XXX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'ZAJ'
|
||||
select sign(a3) from t2;
|
||||
+----------+
|
||||
| sign(a3) |
|
||||
+----------+
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
| 0 |
|
||||
+----------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DEN'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'NYC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD1'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD2'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD3'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DAL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'ATL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'WDC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'CHI'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'LAX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'MON'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'LED'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'MIN'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'CHI'
|
||||
select sign(a1),a2 from t2;
|
||||
+----------+------+
|
||||
| sign(a1) | a2 |
|
||||
+----------+------+
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 3 |
|
||||
| 0 | -2 |
|
||||
| 0 | 1 |
|
||||
| 0 | 3 |
|
||||
| 0 | -3 |
|
||||
| 0 | -3 |
|
||||
| 0 | 3 |
|
||||
| 0 | 1 |
|
||||
| 0 | -3 |
|
||||
| 0 | -1 |
|
||||
| 0 | NULL |
|
||||
| 0 | 0 |
|
||||
| 0 | -2 |
|
||||
| 0 | 1 |
|
||||
| 0 | NULL |
|
||||
| 0 | 2 |
|
||||
+----------+------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'AME'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BDL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BMC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BOT'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DTX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG1'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG2'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG3'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GTM'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'HBR'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'KKK'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'PLS'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SSJ'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'TWU'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'VVV'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'WWW'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'XXX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'ZAJ'
|
||||
select sign(a2) from t2 where sign(a4) >= 0;
|
||||
+----------+
|
||||
| sign(a2) |
|
||||
+----------+
|
||||
| 0 |
|
||||
| 1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
+----------+
|
||||
select sign(a4) from t2 where sign(a2) <=0 AND a2 < 2;
|
||||
+----------+
|
||||
| sign(a4) |
|
||||
+----------+
|
||||
| 1 |
|
||||
| -1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
| NULL |
|
||||
| -1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
+----------+
|
||||
select * from t2 group by sign(a2);
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select * from t2 order by sign(a4) ;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| XXX | NULL | MIN | NULL | timestamp |
|
||||
| KKK | -3 | ATL | NULL | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
| GG3 | -3 | DD3 | -0.051 | timestamp |
|
||||
| GTM | 3 | DAL | -0.07 | timestamp |
|
||||
| ZAJ | 2 | CHI | -0.075 | timestamp |
|
||||
| BDL | 0 | DEN | -0.08 | timestamp |
|
||||
| PLS | -1 | WDC | -0.075 | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| TWU | 0 | LAX | -0.08 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| VVV | -2 | MON | 0.075 | timestamp |
|
||||
| GG1 | 3 | DD1 | 0.053 | timestamp |
|
||||
| GG2 | -3 | DD2 | 0.052 | timestamp |
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select * from t2 order by sign(a4) , a4 ;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| XXX | NULL | MIN | NULL | timestamp |
|
||||
| KKK | -3 | ATL | NULL | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| BDL | 0 | DEN | -0.08 | timestamp |
|
||||
| TWU | 0 | LAX | -0.08 | timestamp |
|
||||
| ZAJ | 2 | CHI | -0.075 | timestamp |
|
||||
| PLS | -1 | WDC | -0.075 | timestamp |
|
||||
| GTM | 3 | DAL | -0.07 | timestamp |
|
||||
| GG3 | -3 | DD3 | -0.051 | timestamp |
|
||||
| GG2 | -3 | DD2 | 0.052 | timestamp |
|
||||
| GG1 | 3 | DD1 | 0.053 | timestamp |
|
||||
| VVV | -2 | MON | 0.075 | timestamp |
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select * from t2 order by sign(a4) , a1 ;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| KKK | -3 | ATL | NULL | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
| XXX | NULL | MIN | NULL | timestamp |
|
||||
| BDL | 0 | DEN | -0.08 | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| GG3 | -3 | DD3 | -0.051 | timestamp |
|
||||
| GTM | 3 | DAL | -0.07 | timestamp |
|
||||
| PLS | -1 | WDC | -0.075 | timestamp |
|
||||
| TWU | 0 | LAX | -0.08 | timestamp |
|
||||
| ZAJ | 2 | CHI | -0.075 | timestamp |
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| GG1 | 3 | DD1 | 0.053 | timestamp |
|
||||
| GG2 | -3 | DD2 | 0.052 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| VVV | -2 | MON | 0.075 | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select abs(a2) , sum(a4) from t2 group by abs(a2) having sum(sign(a4)) > 0;
|
||||
+---------+---------------------+
|
||||
| abs(a2) | sum(a4) |
|
||||
+---------+---------------------+
|
||||
| 1 | 0.08999999612569809 |
|
||||
+---------+---------------------+
|
||||
select * from t2 where a2 = sign ( floor(1.5) - ceil(1.5) + round(1.5) - abs(-1.5) + neg(-1) );
|
||||
+-----+------+------+-------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+-------+---------------------+
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
+-----+------+------+-------+---------------------+
|
||||
select sign( sum(a2) ) , sign( sum(a4) ) from t2;
|
||||
+-----------------+-----------------+
|
||||
| sign( sum(a2) ) | sign( sum(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 0 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign( avg(a2) ) , sign( avg(a4) ) from t2;
|
||||
+-----------------+-----------------+
|
||||
| sign( avg(a2) ) | sign( avg(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 0 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign( max(a2) ) , sign( min(a4) ) from t2;
|
||||
+-----------------+-----------------+
|
||||
| sign( max(a2) ) | sign( min(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 1 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign(count(*)) from t2;
|
||||
+----------------+
|
||||
| sign(count(*)) |
|
||||
+----------------+
|
||||
| 1 |
|
||||
+----------------+
|
||||
select * from t2 where sign( length(a1) ) = 1;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
| BDL | 0 | DEN | -0.08 | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| GG1 | 3 | DD1 | 0.053 | timestamp |
|
||||
| GG2 | -3 | DD2 | 0.052 | timestamp |
|
||||
| GG3 | -3 | DD3 | -0.051 | timestamp |
|
||||
| GTM | 3 | DAL | -0.07 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| KKK | -3 | ATL | NULL | timestamp |
|
||||
| PLS | -1 | WDC | -0.075 | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
| TWU | 0 | LAX | -0.08 | timestamp |
|
||||
| VVV | -2 | MON | 0.075 | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
| XXX | NULL | MIN | NULL | timestamp |
|
||||
| ZAJ | 2 | CHI | -0.075 | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select sign( cast(a1 as char(1024)) ) , sign( cast(a3 as char(1024)) ) from t2;
|
||||
+--------------------------------+--------------------------------+
|
||||
| sign( cast(a1 as char(1024)) ) | sign( cast(a3 as char(1024)) ) |
|
||||
+--------------------------------+--------------------------------+
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 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 sign( cast(a2 as char(1024)) ) , sign( cast(a4 as char(1024)) ) from t2;
|
||||
+--------------------------------+--------------------------------+
|
||||
| sign( cast(a2 as char(1024)) ) | sign( cast(a4 as char(1024)) ) |
|
||||
+--------------------------------+--------------------------------+
|
||||
| 0 | 1 |
|
||||
| 0 | -1 |
|
||||
| 1 | -1 |
|
||||
| -1 | -1 |
|
||||
| 1 | 1 |
|
||||
| 1 | 1 |
|
||||
| -1 | 1 |
|
||||
| -1 | -1 |
|
||||
| 1 | -1 |
|
||||
| 1 | 1 |
|
||||
| -1 | NULL |
|
||||
| -1 | -1 |
|
||||
| NULL | NULL |
|
||||
| 0 | -1 |
|
||||
| -1 | 1 |
|
||||
| 1 | NULL |
|
||||
| NULL | NULL |
|
||||
| 1 | -1 |
|
||||
+--------------------------------+--------------------------------+
|
||||
select * from t2 as t21 join t2 as t22 on sign(t21.a2) = sign(t22.a4);
|
||||
+-----+------+------+--------+---------------------+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 | a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+-----+------+------+--------+---------------------+
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| KKK | -3 | ATL | NULL | NULL | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 | ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 | VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
+-----+------+------+--------+---------------------+-----+------+------+--------+---------------------+
|
||||
select tmp.a1 , sign(tmp.a2) , tmp.a3 , sign(tmp.a4) from t2 as tmp;
|
||||
+-----+--------------+------+--------------+
|
||||
| a1 | sign(tmp.a2) | a3 | sign(tmp.a4) |
|
||||
+-----+--------------+------+--------------+
|
||||
| AME | 0 | SEA | 1 |
|
||||
| BDL | 0 | DEN | -1 |
|
||||
| BMC | 1 | SEA | -1 |
|
||||
| BOT | -1 | SEA | -1 |
|
||||
| DTX | 1 | NYC | 1 |
|
||||
| GG1 | 1 | DD1 | 1 |
|
||||
| GG2 | -1 | DD2 | 1 |
|
||||
| GG3 | -1 | DD3 | -1 |
|
||||
| GTM | 1 | DAL | -1 |
|
||||
| HBR | 1 | SEA | 1 |
|
||||
| KKK | -1 | ATL | NULL |
|
||||
| PLS | -1 | WDC | -1 |
|
||||
| SSJ | NULL | CHI | NULL |
|
||||
| TWU | 0 | LAX | -1 |
|
||||
| VVV | -1 | MON | 1 |
|
||||
| WWW | 1 | LED | NULL |
|
||||
| XXX | NULL | MIN | NULL |
|
||||
| ZAJ | 1 | CHI | -1 |
|
||||
+-----+--------------+------+--------------+
|
||||
|
||||
## select for update
|
||||
select sign(a2) from t2 where sign(a4) >= 0 for update;
|
||||
+----------+
|
||||
| sign(a2) |
|
||||
+----------+
|
||||
| 0 |
|
||||
| 1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
+----------+
|
||||
select sign(a4) from t2 where sign(a2) <=0 AND a2 < 2 for update;
|
||||
+----------+
|
||||
| sign(a4) |
|
||||
+----------+
|
||||
| 1 |
|
||||
| -1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
| -1 |
|
||||
| NULL |
|
||||
| -1 |
|
||||
| -1 |
|
||||
| 1 |
|
||||
+----------+
|
||||
select * from t2 group by sign(a2) for update;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| SSJ | NULL | CHI | NULL | 1974-03-19 00:00:00 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select * from t2 order by sign(a4) for update;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| XXX | NULL | MIN | NULL | NULL |
|
||||
| KKK | -3 | ATL | NULL | NULL |
|
||||
| SSJ | NULL | CHI | NULL | 1974-03-19 00:00:00 |
|
||||
| WWW | 1 | LED | NULL | NULL |
|
||||
| GG3 | -3 | DD3 | -0.051 | 1974-03-19 00:00:00 |
|
||||
| GTM | 3 | DAL | -0.07 | 1977-09-23 00:00:00 |
|
||||
| ZAJ | 2 | CHI | -0.075 | 1960-06-15 00:00:00 |
|
||||
| BDL | 0 | DEN | -0.08 | 1960-11-27 00:00:00 |
|
||||
| PLS | -1 | WDC | -0.075 | 1949-01-02 00:00:00 |
|
||||
| BMC | 3 | SEA | -0.085 | 1958-09-08 00:00:00 |
|
||||
| TWU | 0 | LAX | -0.08 | 1969-10-05 00:00:00 |
|
||||
| BOT | -2 | SEA | -0.085 | 1951-11-29 00:00:00 |
|
||||
| HBR | 1 | SEA | 0.085 | 1948-03-05 00:00:00 |
|
||||
| DTX | 1 | NYC | 0.08 | 1961-05-04 00:00:00 |
|
||||
| VVV | -2 | MON | 0.075 | 1959-06-28 00:00:00 |
|
||||
| GG1 | 3 | DD1 | 0.053 | 1974-03-19 00:00:00 |
|
||||
| GG2 | -3 | DD2 | 0.052 | 1974-03-19 00:00:00 |
|
||||
| AME | 0 | SEA | 0.1 | 1942-02-19 00:00:00 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select abs(a2) , sum(a4) from t2 group by abs(a2) having sum(sign(a4)) > 0 for update;
|
||||
+---------+---------------------+
|
||||
| abs(a2) | sum(a4) |
|
||||
+---------+---------------------+
|
||||
| 1 | 0.08999999612569809 |
|
||||
+---------+---------------------+
|
||||
select * from t2 where a2 = sign ( floor(1.5) - ceil(1.5) + round(1.5) - abs(-1.5) + neg(-1) ) for update;
|
||||
+-----+------+------+-------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+-------+---------------------+
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
+-----+------+------+-------+---------------------+
|
||||
select sign( sum(a2) ) , sign( sum(a4) ) from t2 for update;
|
||||
+-----------------+-----------------+
|
||||
| sign( sum(a2) ) | sign( sum(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 0 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign( avg(a2) ) , sign( avg(a4) ) from t2 for update;
|
||||
+-----------------+-----------------+
|
||||
| sign( avg(a2) ) | sign( avg(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 0 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign( max(a2) ) , sign( min(a4) ) from t2 for update;
|
||||
+-----------------+-----------------+
|
||||
| sign( max(a2) ) | sign( min(a4) ) |
|
||||
+-----------------+-----------------+
|
||||
| 1 | -1 |
|
||||
+-----------------+-----------------+
|
||||
select sign(count(*)) from t2 for update;
|
||||
+----------------+
|
||||
| sign(count(*)) |
|
||||
+----------------+
|
||||
| 1 |
|
||||
+----------------+
|
||||
select * from t2 where sign( length(a1) ) = 1 for update;
|
||||
+-----+------+------+--------+---------------------+
|
||||
| a1 | a2 | a3 | a4 | a5 |
|
||||
+-----+------+------+--------+---------------------+
|
||||
| AME | 0 | SEA | 0.1 | timestamp |
|
||||
| BDL | 0 | DEN | -0.08 | timestamp |
|
||||
| BMC | 3 | SEA | -0.085 | timestamp |
|
||||
| BOT | -2 | SEA | -0.085 | timestamp |
|
||||
| DTX | 1 | NYC | 0.08 | timestamp |
|
||||
| GG1 | 3 | DD1 | 0.053 | timestamp |
|
||||
| GG2 | -3 | DD2 | 0.052 | timestamp |
|
||||
| GG3 | -3 | DD3 | -0.051 | timestamp |
|
||||
| GTM | 3 | DAL | -0.07 | timestamp |
|
||||
| HBR | 1 | SEA | 0.085 | timestamp |
|
||||
| KKK | -3 | ATL | NULL | timestamp |
|
||||
| PLS | -1 | WDC | -0.075 | timestamp |
|
||||
| SSJ | NULL | CHI | NULL | timestamp |
|
||||
| TWU | 0 | LAX | -0.08 | timestamp |
|
||||
| VVV | -2 | MON | 0.075 | timestamp |
|
||||
| WWW | 1 | LED | NULL | timestamp |
|
||||
| XXX | NULL | MIN | NULL | timestamp |
|
||||
| ZAJ | 2 | CHI | -0.075 | timestamp |
|
||||
+-----+------+------+--------+---------------------+
|
||||
select sign( cast(a1 as char(1024)) ) , sign( cast(a3 as char(1024)) ) from t2 for update;
|
||||
+--------------------------------+--------------------------------+
|
||||
| sign( cast(a1 as char(1024)) ) | sign( cast(a3 as char(1024)) ) |
|
||||
+--------------------------------+--------------------------------+
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
| 0 | 0 |
|
||||
+--------------------------------+--------------------------------+
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'AME'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BDL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BMC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'BOT'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DTX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG1'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG2'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GG3'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'GTM'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'HBR'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'KKK'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'PLS'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SSJ'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'TWU'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'VVV'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'WWW'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'XXX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'ZAJ'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DEN'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'NYC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD1'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD2'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DD3'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'DAL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'SEA'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'ATL'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'WDC'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'CHI'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'LAX'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'MON'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'LED'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'MIN'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'CHI'
|
||||
select sign( cast(a2 as char(1024)) ) , sign( cast(a4 as char(1024)) ) from t2 for update;
|
||||
+--------------------------------+--------------------------------+
|
||||
| sign( cast(a2 as char(1024)) ) | sign( cast(a4 as char(1024)) ) |
|
||||
+--------------------------------+--------------------------------+
|
||||
| 0 | 1 |
|
||||
| 0 | -1 |
|
||||
| 1 | -1 |
|
||||
| -1 | -1 |
|
||||
| 1 | 1 |
|
||||
| 1 | 1 |
|
||||
| -1 | 1 |
|
||||
| -1 | -1 |
|
||||
| 1 | -1 |
|
||||
| 1 | 1 |
|
||||
| -1 | NULL |
|
||||
| -1 | -1 |
|
||||
| NULL | NULL |
|
||||
| 0 | -1 |
|
||||
| -1 | 1 |
|
||||
| 1 | NULL |
|
||||
| NULL | NULL |
|
||||
| 1 | -1 |
|
||||
+--------------------------------+--------------------------------+
|
||||
|
||||
#
|
||||
select sign(1E-300) from dual;
|
||||
+--------------+
|
||||
| sign(1E-300) |
|
||||
+--------------+
|
||||
| 1 |
|
||||
+--------------+
|
||||
select sign(1E-400) from dual;
|
||||
+--------------+
|
||||
| sign(1E-400) |
|
||||
+--------------+
|
||||
| 0 |
|
||||
+--------------+
|
||||
|
||||
##bug:
|
||||
drop table if exists t1;
|
||||
create table t1(c1 bit(64),c2 bit(64));
|
||||
insert into t1(c1) values(1);
|
||||
|
||||
select sign(c1) from t1;
|
||||
+----------+
|
||||
| sign(c1) |
|
||||
+----------+
|
||||
| 1 |
|
||||
+----------+
|
||||
|
||||
drop table t1;
|
||||
@ -0,0 +1,94 @@
|
||||
result_format: 4
|
||||
|
||||
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select space(NULL);
|
||||
+-------------+
|
||||
| space(NULL) |
|
||||
+-------------+
|
||||
| NULL |
|
||||
+-------------+
|
||||
select space(-1);
|
||||
+-----------+
|
||||
| space(-1) |
|
||||
+-----------+
|
||||
| |
|
||||
+-----------+
|
||||
select space(0);
|
||||
+----------+
|
||||
| space(0) |
|
||||
+----------+
|
||||
| |
|
||||
+----------+
|
||||
select space(1);
|
||||
+----------+
|
||||
| space(1) |
|
||||
+----------+
|
||||
| |
|
||||
+----------+
|
||||
select space(2);
|
||||
+----------+
|
||||
| space(2) |
|
||||
+----------+
|
||||
| |
|
||||
+----------+
|
||||
select length(space("2.1"));
|
||||
+----------------------+
|
||||
| length(space("2.1")) |
|
||||
+----------------------+
|
||||
| 2 |
|
||||
+----------------------+
|
||||
select length(space("2.9"));
|
||||
+----------------------+
|
||||
| length(space("2.9")) |
|
||||
+----------------------+
|
||||
| 2 |
|
||||
+----------------------+
|
||||
select length(space("200000000"));
|
||||
+----------------------------+
|
||||
| length(space("200000000")) |
|
||||
+----------------------------+
|
||||
| NULL |
|
||||
+----------------------------+
|
||||
|
||||
drop table t2;
|
||||
create table t2 as select space(512),space(513),space(32767),space(32768),space(65535),space(65536) from dual;
|
||||
desc t2;
|
||||
+--------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+--------------+--------------+------+-----+---------+-------+
|
||||
| space(512) | varchar(512) | YES | | NULL | |
|
||||
| space(513) | text | YES | | NULL | |
|
||||
| space(32767) | text | YES | | NULL | |
|
||||
| space(32768) | text | YES | | NULL | |
|
||||
| space(65535) | text | YES | | NULL | |
|
||||
| space(65536) | longtext | YES | | NULL | |
|
||||
+--------------+--------------+------+-----+---------+-------+
|
||||
drop table t2;
|
||||
|
||||
#bugfix
|
||||
|
||||
drop database if exists luofan;
|
||||
drop table if exists t1;
|
||||
create database luofan;
|
||||
create table t1 (c1 varchar(64));
|
||||
insert into t1 values(-1);
|
||||
insert into t1 values(-2);
|
||||
insert into t1 values(-3);
|
||||
insert into t1 values(-4);
|
||||
|
||||
select * from t1 where space(c1) = '';
|
||||
+------+
|
||||
| c1 |
|
||||
+------+
|
||||
| -1 |
|
||||
| -2 |
|
||||
| -3 |
|
||||
| -4 |
|
||||
+------+
|
||||
|
||||
drop table if exists t1;
|
||||
drop database if exists luofan;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,77 @@
|
||||
drop table t1;
|
||||
create table t1(c1 int, c2 varchar(10), c3 decimal);
|
||||
insert into t1 values(0, 'abc', '0.1');
|
||||
insert into t1 values(1, 'def', '1.1');
|
||||
insert into t1 values(2, 'ghi', '2.1');
|
||||
insert into t1 values(3, 'jkl', '3.1');
|
||||
insert into t1 values(4, 'mno', '4.1');
|
||||
insert into t1 values(5, 'pqr', '5.1');
|
||||
insert into t1 values(6, 'stu', '6.1');
|
||||
insert into t1 values(7, 'vwx', '7.1');
|
||||
insert into t1 values(8, 'yz', '8.1');
|
||||
insert into t1 values(9, null, null);
|
||||
result_format: 4
|
||||
explain_protocol: 1
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
set ob_enable_plan_cache = 0;
|
||||
EXPLAIN BASIC select /*+ tracing(0) */ * from t1;
|
||||
Query Plan
|
||||
===========================
|
||||
|ID|OPERATOR |NAME|
|
||||
---------------------------
|
||||
|0 |MONITORING DUMP | |
|
||||
|1 |└─TABLE FULL SCAN|t1 |
|
||||
===========================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
|
||||
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
|
||||
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
|
||||
select /*+ tracing(0) */ * from t1;
|
||||
+------+------+------+
|
||||
| c1 | c2 | c3 |
|
||||
+------+------+------+
|
||||
| 0 | abc | 0 |
|
||||
| 1 | def | 1 |
|
||||
| 2 | ghi | 2 |
|
||||
| 3 | jkl | 3 |
|
||||
| 4 | mno | 4 |
|
||||
| 5 | pqr | 5 |
|
||||
| 6 | stu | 6 |
|
||||
| 7 | vwx | 7 |
|
||||
| 8 | yz | 8 |
|
||||
| 9 | NULL | NULL |
|
||||
+------+------+------+
|
||||
EXPLAIN BASIC select /*+ tracing(1) */ * from t1;
|
||||
Query Plan
|
||||
=========================
|
||||
|ID|OPERATOR |NAME|
|
||||
-------------------------
|
||||
|0 |TABLE FULL SCAN|t1 |
|
||||
=========================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
|
||||
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
|
||||
select /*+ tracing(1) */ * from t1;
|
||||
+------+------+------+
|
||||
| c1 | c2 | c3 |
|
||||
+------+------+------+
|
||||
| 0 | abc | 0 |
|
||||
| 1 | def | 1 |
|
||||
| 2 | ghi | 2 |
|
||||
| 3 | jkl | 3 |
|
||||
| 4 | mno | 4 |
|
||||
| 5 | pqr | 5 |
|
||||
| 6 | stu | 6 |
|
||||
| 7 | vwx | 7 |
|
||||
| 8 | yz | 8 |
|
||||
| 9 | NULL | NULL |
|
||||
+------+------+------+
|
||||
|
||||
|
||||
drop table t1;
|
||||
@ -0,0 +1,817 @@
|
||||
result_format: 4
|
||||
explain_protocol: 2
|
||||
|
||||
|
||||
drop table if exists t1, t2;
|
||||
create table t1(c1 int, c2 int primary key);
|
||||
create table t2(c1 int primary key, c2 int);
|
||||
insert/*trace*/ into t1 values(1,1), (1, 2), (null, 3), (2, 4), (3,5);
|
||||
insert/*trace*/ into t2 values(1, 1), (3, 3), (5,5), (6, null);
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
============================== no use batch nested loop join =========
|
||||
set _nlj_batching_enabled = false;
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |4 |96 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |18 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t2 |4 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP OUTER JOIN | |5 |96 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |18 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP OUTER JOIN | |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |MERGE OUTER JOIN | |4 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─SORT | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
|
||||
merge_directions([ASC])
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
sort_keys([t1.c1, ASC])
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |HASH OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN|t2 |4 |3 |
|
||||
|2 |└─TABLE FULL SCAN|t1 |5 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c2]), other_conds(nil)
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |MERGE FULL OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─SORT | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t1 |5 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
|
||||
merge_directions([ASC])
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
sort_keys([t1.c1, ASC])
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |HASH FULL OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─TABLE FULL SCAN |t1 |5 |3 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c2]), other_conds(nil)
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |NESTED-LOOP SEMI JOIN | |4 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| 1 | 1 |
|
||||
| 1 | 2 |
|
||||
| 3 | 5 |
|
||||
+------+----+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |4 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─MATERIAL | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c1]), nl_params_(nil), use_batch=false
|
||||
1 - output([t2.c1]), filter(nil), rowset=16
|
||||
access([t2.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| 1 | 1 |
|
||||
| 1 | 2 |
|
||||
| 3 | 5 |
|
||||
+------+----+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |NESTED-LOOP ANTI JOIN | |1 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| NULL | 3 |
|
||||
| 2 | 4 |
|
||||
+------+----+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP ANTI JOIN | |1 |96 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |18 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output(nil), filter(nil), rowset=16
|
||||
access(nil), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| NULL | 3 |
|
||||
| 2 | 4 |
|
||||
+------+----+
|
||||
|
||||
============================== use batch nested loop join =========
|
||||
set _nlj_batching_enabled = true;
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |4 |83 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |16 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=true
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([GROUP_ID], [t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t2 |4 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP OUTER JOIN | |5 |83 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |16 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=true
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([GROUP_ID], [t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP OUTER JOIN | |5 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |MERGE OUTER JOIN | |4 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─SORT | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
|
||||
merge_directions([ASC])
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
sort_keys([t1.c1, ASC])
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------
|
||||
|0 |HASH OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN|t2 |4 |3 |
|
||||
|2 |└─TABLE FULL SCAN|t1 |5 |3 |
|
||||
=================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c2]), other_conds(nil)
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |MERGE FULL OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─SORT | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t1 |5 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
|
||||
merge_directions([ASC])
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
sort_keys([t1.c1, ASC])
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
+------+----+----+------+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
Query Plan
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-----------------------------------------------------
|
||||
|0 |HASH FULL OUTER JOIN | |5 |6 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─TABLE FULL SCAN |t1 |5 |3 |
|
||||
=====================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
equal_conds([t1.c1 = t2.c2]), other_conds(nil)
|
||||
1 - output([t2.c1], [t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c1], [t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
+------+----+----+------+
|
||||
| c1 | c2 | c1 | c2 |
|
||||
+------+----+----+------+
|
||||
| 1 | 1 | 1 | 1 |
|
||||
| 1 | 2 | 1 | 1 |
|
||||
| NULL | 3 | NULL | NULL |
|
||||
| 2 | 4 | NULL | NULL |
|
||||
| 3 | 5 | 3 | 3 |
|
||||
| NULL | NULL | 6 | NULL |
|
||||
| NULL | NULL | 5 | 5 |
|
||||
+------+----+----+------+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |NESTED-LOOP SEMI JOIN | |4 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| 1 | 1 |
|
||||
| 1 | 2 |
|
||||
| 3 | 5 |
|
||||
+------+----+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
Query Plan
|
||||
===================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
---------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |4 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t2 |4 |3 |
|
||||
|2 |└─MATERIAL | |5 |3 |
|
||||
|3 | └─TABLE FULL SCAN|t1 |5 |3 |
|
||||
===================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c1]), nl_params_(nil), use_batch=false
|
||||
1 - output([t2.c1]), filter(nil), rowset=16
|
||||
access([t2.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| 1 | 1 |
|
||||
| 1 | 2 |
|
||||
| 3 | 5 |
|
||||
+------+----+
|
||||
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
Query Plan
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
------------------------------------------------------
|
||||
|0 |NESTED-LOOP ANTI JOIN | |1 |3 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─MATERIAL | |4 |3 |
|
||||
|3 | └─TABLE FULL SCAN |t2 |4 |3 |
|
||||
======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds([t1.c1 = t2.c2]), nl_params_(nil), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output([t2.c2]), filter(nil), rowset=16
|
||||
3 - output([t2.c2]), filter(nil), rowset=16
|
||||
access([t2.c2]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| NULL | 3 |
|
||||
| 2 | 4 |
|
||||
+------+----+
|
||||
|
||||
EXPLAIN select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
Query Plan
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP ANTI JOIN | |1 |96 |
|
||||
|1 |├─TABLE FULL SCAN |t1 |5 |3 |
|
||||
|2 |└─DISTRIBUTED TABLE GET|t2 |1 |18 |
|
||||
=======================================================
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
|
||||
conds(nil), nl_params_([t1.c1(:0)]), use_batch=false
|
||||
1 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
|
||||
access([t1.c2], [t1.c1]), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t1.c2]), range(MIN ; MAX)always true
|
||||
2 - output(nil), filter(nil), rowset=16
|
||||
access(nil), partitions(p0)
|
||||
is_index_back=false, is_global_index=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX),
|
||||
range_cond([:0 = t2.c1])
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
+------+----+
|
||||
| c1 | c2 |
|
||||
+------+----+
|
||||
| NULL | 3 |
|
||||
| 2 | 4 |
|
||||
+------+----+
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
alter system flush plan cache global;
|
||||
sleep 2;
|
||||
|
||||
set ob_enable_plan_cache = 0;
|
||||
#basic test
|
||||
set block_encryption_mode = 0;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
--source mysql_test/test_suite/security/include/aes_two_param.inc
|
||||
set block_encryption_mode = 1;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
--source mysql_test/test_suite/security/include/aes_two_param.inc
|
||||
set block_encryption_mode = 2;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
--source mysql_test/test_suite/security/include/aes_two_param.inc
|
||||
set block_encryption_mode = 3;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 4;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 5;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 6;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 7;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 8;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 9;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 10;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 11;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 12;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 13;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 14;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
set block_encryption_mode = 15;
|
||||
show variables like '%encrypt%mode';
|
||||
--source mysql_test/test_suite/security/include/aes_three_param.inc
|
||||
|
||||
sleep 2;
|
||||
@ -0,0 +1,80 @@
|
||||
#owner: luofan.zp
|
||||
#owner group: sql2
|
||||
#tags: optimizer
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
--explain_protocol 0
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
#set @@ob_log_level='debug';
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5', null);
|
||||
create table t2(col_int int, col_utf8 varchar(100) charset utf8,
|
||||
col_utf16 varchar(100) charset utf16,
|
||||
col_gbk varchar(100) charset gbk);
|
||||
insert into t2 values(1, 'a', 'a', 'a');
|
||||
insert into t2 values(-1, '中国', '中文', '中文');
|
||||
insert into t2 values(256, ' 中国', ' 中文', '中文');
|
||||
|
||||
--sleep 2
|
||||
|
||||
#--explain_protocol 2
|
||||
select ascii(c_null) from t1;
|
||||
select ord(c_null) from t1;
|
||||
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
eval select c$left, ascii(c$left), ord(c$left) from t1;
|
||||
inc $left;
|
||||
}
|
||||
|
||||
select col_int, ascii(col_int), ord(col_int) from t2;
|
||||
select col_utf8, ascii(col_utf8), ord(col_utf8) from t2;
|
||||
select col_utf16, ascii(col_utf16), ord(col_utf16) from t2;
|
||||
select col_gbk, ascii(col_gbk), ord(col_gbk) from t2;
|
||||
|
||||
--sleep 2
|
||||
@ -0,0 +1,146 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30));
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5');
|
||||
|
||||
--echo // Case1: normal test.测试各种类型组合, 跟不开新引擎开关进行对比
|
||||
alter system flush plan cache global;
|
||||
--explain_protocol 0
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
eval select coalesce(c$left, null) from t1;
|
||||
|
||||
let $right=1;
|
||||
while ($right <= $cnt)
|
||||
{
|
||||
eval select coalesce(c$left, c$right, null) from t1;
|
||||
|
||||
eval select coalesce(c$right, c$left) from t1;
|
||||
|
||||
inc $right;
|
||||
}
|
||||
inc $left;
|
||||
}
|
||||
|
||||
--echo // Case2: 带有0的测试
|
||||
--explain_protocol 0
|
||||
delete from t1;
|
||||
insert into t1 values(1, 0,
|
||||
1, 0,
|
||||
1, 0,
|
||||
1, 0,
|
||||
1, 0,
|
||||
1, 0,
|
||||
3.5, 0.0,
|
||||
5.5, 0.0,
|
||||
7.5, 0.0,
|
||||
'2019-12-01 12:00:00', '0000-00-00 00:00:00'
|
||||
'9.5', '000000000');
|
||||
alter system flush plan cache global;
|
||||
--explain_protocol 0
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
eval select coalesce(c$left, null) from t1;
|
||||
|
||||
let $right=1;
|
||||
while ($right <= $cnt)
|
||||
{
|
||||
eval select coalesce(c$left, c$right, null) from t1;
|
||||
|
||||
|
||||
inc $right;
|
||||
}
|
||||
inc $left;
|
||||
}
|
||||
|
||||
--sleep 2
|
||||
|
||||
--echo #for
|
||||
--error 1051
|
||||
drop table t1_enum;
|
||||
create table t1_enum (a enum ('2015-09-11','2015-09-21'));
|
||||
SELECT * FROM t1_enum WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)='00:00:00';
|
||||
drop table t1_enum;
|
||||
|
||||
--explain_protocol 0
|
||||
--echo ##bugfix:
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS `table1_hash_abs_pk_parts_8_bigint`;
|
||||
--enable_warnings
|
||||
CREATE TABLE `table1_hash_abs_pk_parts_8_bigint` (
|
||||
`col_bigint` bigint(20) DEFAULT NULL,
|
||||
`col_char_20` char(20) DEFAULT NULL,
|
||||
`col_timestamp_6` timestamp(6) NULL DEFAULT NULL,
|
||||
`col_decimal_20_0` decimal(20,0) DEFAULT NULL,
|
||||
`pk` bigint(20) NOT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 2 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0
|
||||
partition by hash(abs(pk))
|
||||
(partition p0,
|
||||
partition p1,
|
||||
partition p2,
|
||||
partition p3,
|
||||
partition p4,
|
||||
partition p5,
|
||||
partition p6,
|
||||
partition p7);
|
||||
INSERT INTO `table1_hash_abs_pk_parts_8_bigint` VALUES (NULL,NULL,NULL,NULL,0),(-24595,NULL,NULL,NULL,-29386),(NULL,NULL,NULL,8,-10),(NULL,NULL,NULL,7,2),(NULL,'0000',NULL,888888888,204),(NULL,'2',NULL,3,-30937),(-68,'ybhowb','2000-04-25 15:22:58.055028',22008,1),(0,'0000',NULL,NULL,10577),(NULL,NULL,'2017-06-14 17:00:00.000003',NULL,99),(NULL,NULL,'2021-06-14 11:55:00.000003',NULL,125),(-100,NULL,NULL,NULL,-99999);
|
||||
SELECT * FROM table1_hash_abs_pk_parts_8_bigint WHERE NOT col_timestamp_6 != CONCAT( CAST( 2015 + 3 + 3 AS CHAR(20) ) , '-06-19 01:00:00.000003') AND ( ( col_decimal_20_0 <> -10622 AND ( ( col_bigint NOT IN (ROUND( SIGN( LENGTH( TRIM( SUBSTR( HEX( TRIM( SUBSTR( CONCAT( CONCAT( SUBSTR( SUBSTR( 'lvmzy' , 1, 20) , 5 ) , SUBSTR( 'hlv' , 1, 20) ) , REPEAT( TRIM( SUBSTR( CONCAT(SUBSTR( 'chl' , 1, 20) , SUBSTR( 'jchlvm' , 1, 20) ) , 1 , 20 ) ) , 6 + 1 ) ) , 1 , 20 ) ) ) , 1 , 20 ) ) ) ) ) , -10293 , 0) ) ) ) OR ( col_decimal_20_0 <> -10622 OR ( col_bigint != -10622 AND COALESCE( 10 , 99999 , 99999 ) <=> col_bigint ) AND ( col_bigint != -10622 OR ( COALESCE( col_timestamp_6 , col_timestamp_6 , col_timestamp_6 ) IS NULL ) IS NOT TRUE ) ) ) ORDER BY col_char_20 ASC , pk ASC LIMIT 5 , 1 /* RESULTSET_HAS_ZERO_OR_ONE_ROWS */;
|
||||
SELECT * FROM table1_hash_abs_pk_parts_8_bigint WHERE (COALESCE( col_timestamp_6 , col_timestamp_6 )) AND col_timestamp_6 = '2020-06-19 01:00:00.000003';
|
||||
drop table `table1_hash_abs_pk_parts_8_bigint`;
|
||||
|
||||
##bugfix:
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS `tbl_108`;
|
||||
--enable_warnings
|
||||
CREATE TABLE `tbl_108` (
|
||||
`col_1623` text NOT NULL,
|
||||
`col_1629` text DEFAULT NULL,
|
||||
`col_1631` set('Alice','Bob','Charlie','David') NOT NULL DEFAULT 'Bob'
|
||||
);
|
||||
UPDATE tbl_108 SET col_1623 = Coalesce(col_1631, col_1629) ;
|
||||
UPDATE tbl_108 SET col_1623 = Coalesce(col_1629, col_1631) ;
|
||||
drop table tbl_108;
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t, tt;
|
||||
--enable_warnings
|
||||
create table t(c1 tinytext, c2 varchar(1000));
|
||||
insert into t values(null, '01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789');
|
||||
create table tt as select coalesce(c1, c2), coalesce(c2, c1) from t;
|
||||
select * from tt;
|
||||
drop table t, tt;
|
||||
@ -0,0 +1,26 @@
|
||||
# owner: bin.lb
|
||||
# owner group: sql2
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection syscon;
|
||||
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select elt(1, 2, 3, NULL);
|
||||
select elt(NULL, 2, 3, NULL);
|
||||
select elt(2, 2, 3, NULL);
|
||||
select elt(3, 2, 3, NULL);
|
||||
select elt(4, 2, 3, NULL);
|
||||
select elt("4", "a", "b", NULL, "c");
|
||||
select elt("4.1", "a", "b", NULL, "c", 'd');
|
||||
select elt("4.9", "a", 2.3, NULL, "c", 'd');
|
||||
|
||||
connection syscon;
|
||||
--sleep 2
|
||||
@ -0,0 +1,78 @@
|
||||
#owner: luofan.zp
|
||||
#owner group: sql2
|
||||
#tags: optimizer
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
--explain_protocol 0
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
#set @@ob_log_level='debug';
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'1,2,3.5,4.5', '12,2,8.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'2019-12-03 06:00:00,2019-12-03 06:00:00', '1231,23,-1,2,3,4.5', null);
|
||||
|
||||
--sleep 2
|
||||
|
||||
#--explain_protocol 2
|
||||
eval select find_in_set(null, null) from t1;
|
||||
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
let $right=1;
|
||||
while ($right <= $cnt)
|
||||
{
|
||||
eval select c$left, find_in_set(null, c$left) from t1;
|
||||
eval select c$left, find_in_set(c$left, null) from t1;
|
||||
eval select c$left, c$right, find_in_set(c$left, c$right) from t1;
|
||||
|
||||
inc $right;
|
||||
}
|
||||
inc $left;
|
||||
}
|
||||
|
||||
|
||||
--sleep 2
|
||||
@ -0,0 +1,100 @@
|
||||
#owner: dachuan.sdc
|
||||
#tags: optimizer
|
||||
|
||||
--result_format 4
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
|
||||
alter system flush plan cache global;
|
||||
--sleep 2
|
||||
|
||||
connection default;
|
||||
set ob_enable_plan_cache = false;
|
||||
|
||||
select from_unixtime(0);
|
||||
select from_unixtime(0.0);
|
||||
select from_unixtime("0");
|
||||
select from_unixtime("0.0");
|
||||
select from_unixtime(123456789);
|
||||
select from_unixtime(123456789.123);
|
||||
select from_unixtime("123456789.123");
|
||||
select from_unixtime(-123456789);
|
||||
select from_unixtime(-123456789.123);
|
||||
select from_unixtime("-123456789.123");
|
||||
select from_unixtime(date"2020-01-15");
|
||||
select from_unixtime(time"22:10:10");
|
||||
select from_unixtime(null);
|
||||
select from_unixtime(null,null);
|
||||
select from_unixtime("123456789.123",null);
|
||||
select from_unixtime(null,"123456789.123");
|
||||
select from_unixtime("123456789.123",1234);
|
||||
select from_unixtime("123456789.123","1234");
|
||||
select from_unixtime("123456789.123","");
|
||||
select from_unixtime(1234567890, '%Y-%m-%d %H:%i:%S');
|
||||
select from_unixtime(9999999999999999999, '%Y-%m-%d %H:%i:%S');
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t;
|
||||
--enable_warnings
|
||||
|
||||
create table t (t1 tinyint,
|
||||
t2 smallint,
|
||||
t3 mediumint,
|
||||
t4 integer,
|
||||
t5 bigint,
|
||||
t6 tinyint unsigned,
|
||||
t7 smallint unsigned,
|
||||
t8 mediumint unsigned,
|
||||
t9 integer unsigned,
|
||||
t10 bigint unsigned,
|
||||
t11 float,
|
||||
t12 float unsigned,
|
||||
t13 double,
|
||||
t14 double unsigned,
|
||||
t15 number,
|
||||
t16 number unsigned,
|
||||
t17 datetime,
|
||||
t18 timestamp,
|
||||
t19 date,
|
||||
t20 time,
|
||||
t21 year,
|
||||
t22 varchar(255),
|
||||
t23 char(255),
|
||||
t24 tinytext,
|
||||
t25 mediumtext,
|
||||
t26 longtext,
|
||||
t27 bit,
|
||||
t28 enum('a', 'b', 'c', '123', '%Y-%M-%D %h:%m:%s'),
|
||||
t29 set('a', 'b', 'c'));
|
||||
|
||||
insert into t values (1, -1, 1, 1234567, 13445677888, 1, 1, 1, 14455423, 1, 123123123.13, 131231.111,
|
||||
11113211.22323, 22312312312.322, 123123222.23232, 1231232.22222,
|
||||
'1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '123123.13', '132123.24', '31231231231.222', '31231231231.22',
|
||||
'1.2', 1, 'b', 'b');
|
||||
insert into t(t28) values ('%Y-%M-%D %h:%m:%s');
|
||||
|
||||
connection conn_admin;
|
||||
|
||||
--sleep 2
|
||||
|
||||
connection default;
|
||||
|
||||
let $cnt = 1;
|
||||
while ($cnt <= 29)
|
||||
{
|
||||
# enum_set cast to number is not supported for now. @shaoge.gjt
|
||||
--error 0,1235
|
||||
eval select from_unixtime(t$cnt) from t;
|
||||
eval explain select from_unixtime(t$cnt) from t;
|
||||
|
||||
# select from_unixtime(1234567890, t27); error, bit cast to varchar is invalid. @shaoge.gjt
|
||||
--error 0,4016,1235
|
||||
eval select from_unixtime(1234567890, t$cnt) from t;
|
||||
eval explain select from_unixtime(1234567890, t$cnt) from t;
|
||||
inc $cnt;
|
||||
}
|
||||
--sleep 2
|
||||
@ -0,0 +1,49 @@
|
||||
# owner: dachuan.sdc
|
||||
# owner group: SQL2
|
||||
|
||||
--result_format 4
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
|
||||
connection default;
|
||||
--disable_warnings
|
||||
drop table if exists t;
|
||||
--enable_warnings
|
||||
create table t(start int);
|
||||
insert into t values (-5);
|
||||
insert into t values (-1);
|
||||
insert into t values (0);
|
||||
insert into t values (1);
|
||||
insert into t values (2);
|
||||
insert into t values (3);
|
||||
insert into t values (4);
|
||||
insert into t values (5);
|
||||
insert into t values (6);
|
||||
insert into t values (7);
|
||||
insert into t values (8);
|
||||
insert into t values (9);
|
||||
insert into t values (10);
|
||||
insert into t values (100);
|
||||
select * from t;
|
||||
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
select insert('Quadratic', start, -1, 'What') from t;
|
||||
select insert('Quadratic', start, 0, 'What') from t;
|
||||
select insert('Quadratic', start, 1, 'What') from t;
|
||||
select insert('Quadratic', start, 2, 'What') from t;
|
||||
select insert('Quadratic', start, 3, 'What') from t;
|
||||
select insert('Quadratic', start, 4, 'What') from t;
|
||||
select insert('Quadratic', start, 5, 'What') from t;
|
||||
select insert('Quadratic', start, 6, 'What') from t;
|
||||
select insert('Quadratic', start, 100, 'What') from t;
|
||||
drop table t;
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
@ -0,0 +1,151 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
--explain_protocol 0
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5', null);
|
||||
|
||||
create table t2 (c1 varchar(100), c2 int,
|
||||
c3 int, c4 varchar(100));
|
||||
insert into t2(c1, c2) values ('12345abcde', -1),
|
||||
('12345abcde', 0),
|
||||
('12345abcde', 1),
|
||||
('12345abcde', 2),
|
||||
('12345abcde', 3),
|
||||
('12345abcde', 4),
|
||||
('12345abcde', 5),
|
||||
('12345abcde', 6),
|
||||
('12345abcde', 7),
|
||||
('12345abcde', 8),
|
||||
('12345abcde', 9),
|
||||
('12345abcde', 10),
|
||||
('12345abcde', 11),
|
||||
('蚂蚁金服天天向上', -1),
|
||||
('蚂蚁金服天天向上', 0),
|
||||
('蚂蚁金服天天向上', 1),
|
||||
('蚂蚁金服天天向上', 2),
|
||||
('蚂蚁金服天天向上', 3),
|
||||
('蚂蚁金服天天向上', 4),
|
||||
('蚂蚁金服天天向上', 5),
|
||||
('蚂蚁金服天天向上', 6),
|
||||
('蚂蚁金服天天向上', 7),
|
||||
('蚂蚁金服天天向上', 8),
|
||||
('蚂蚁金服天天向上', 9),
|
||||
('蚂蚁1金服2天天3向上4', -1),
|
||||
('蚂蚁1金服2天天3向上4', 0),
|
||||
('蚂蚁1金服2天天3向上4', 1),
|
||||
('蚂蚁1金服2天天3向上4', 2),
|
||||
('蚂蚁1金服2天天3向上4', 3),
|
||||
('蚂蚁1金服2天天3向上4', 4),
|
||||
('蚂蚁1金服2天天3向上4', 5),
|
||||
('蚂蚁1金服2天天3向上4', 6),
|
||||
('蚂蚁1金服2天天3向上4', 7),
|
||||
('蚂蚁1金服2天天3向上4', 8),
|
||||
('蚂蚁1金服2天天3向上4', 9),
|
||||
('蚂蚁1金服2天天3向上4', 10),
|
||||
('蚂蚁1金服2天天3向上4', 11),
|
||||
('蚂蚁1金服2天天3向上4', 12),
|
||||
('蚂蚁1金服2天天3向上4', 13),
|
||||
('12345abcde', '1'),
|
||||
('12345abcde', '111');
|
||||
|
||||
insert into t2 (c3, c4) values
|
||||
(100, '12'),
|
||||
(100, '1'),
|
||||
(100, 2),
|
||||
(100, -2),
|
||||
(100, '-1'),
|
||||
(01, '1'),
|
||||
(b'01', '2'),
|
||||
(x'01', '1'),
|
||||
('01''12', 3);
|
||||
|
||||
--sleep 2
|
||||
|
||||
--explain_protocol 2
|
||||
select left(null, null) from dual;
|
||||
select left(123, null) from dual;
|
||||
select left(null, 1) from dual;
|
||||
select right(null, null) from dual;
|
||||
select right(123, null) from dual;
|
||||
select right(null, 1) from dual;
|
||||
|
||||
select left('', '') from dual;
|
||||
select left(123, '') from dual;
|
||||
select left('', 1) from dual;
|
||||
select right('', '') from dual;
|
||||
select right(123, '') from dual;
|
||||
select right('', 1) from dual;
|
||||
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
let $right=1;
|
||||
while ($right <= $cnt)
|
||||
{
|
||||
eval select c$left, c$right, left(c$left, c$right), right(c$left, c$right) from t1;
|
||||
inc $right;
|
||||
}
|
||||
inc $left;
|
||||
}
|
||||
|
||||
select c1, c2, left(c1, c2), right(c1, c2) from t2;
|
||||
select c3, c4, left(c3, c4), right(c3, c4) from t2;
|
||||
|
||||
select left('abc', '1.9');
|
||||
select left('abc', '-1.9');
|
||||
select left('abc', '1.1');
|
||||
select left('abc', '-1.1');
|
||||
select right('abc', '1.9');
|
||||
select right('abc', '-1.9');
|
||||
select right('abc', '1.1');
|
||||
select right('abc', '-1.1');
|
||||
|
||||
--sleep 2
|
||||
@ -0,0 +1,115 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
# description: log2/log10/log/ln exp/pow/power sqrt
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
alter system set enable_async_syslog = false;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
#set @@ob_log_level='debug';
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30));
|
||||
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5');
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5');
|
||||
insert into t1(c17) values(1), (-1), (10000000000000), (-10000000000000), (0.000001), (-0.000001);
|
||||
|
||||
--sleep 2
|
||||
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
eval select log2(c$left), log10(c$left), exp(c$left), sqrt(c$left) from t1;
|
||||
let $right=1;
|
||||
while ($right <= $cnt)
|
||||
{
|
||||
eval select pow(c$left, c$right), power(c$left, c$right) from t1;
|
||||
|
||||
inc $right;
|
||||
}
|
||||
inc $left;
|
||||
}
|
||||
|
||||
--echo // 'a' casted to zero
|
||||
--echo // expect 0
|
||||
select pow('a', 2);
|
||||
--echo // expect 1
|
||||
select pow(2, 'a');
|
||||
--echo // expect 1
|
||||
select pow('a', 'a');
|
||||
--echo // expect 0
|
||||
select power('a', 2);
|
||||
--echo // expect 1
|
||||
select power(2, 'a');
|
||||
--echo // expect 1
|
||||
select power('a', 'a');
|
||||
|
||||
--echo // use pow in insert stmt
|
||||
--disable_warnings
|
||||
drop table t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 double);
|
||||
insert into t1 select pow('a', 2);
|
||||
insert into t1 select pow(2, 'a');
|
||||
insert into t1 select pow('a', 'a');
|
||||
--echo // expect 0, 1, 1
|
||||
--sorted_result
|
||||
select * from t1;
|
||||
|
||||
connection conn_admin;
|
||||
sleep 3;
|
||||
|
||||
--echo // use pow in insert stmt(old engine)
|
||||
--disable_warnings
|
||||
drop table t1;
|
||||
--enable_warnings
|
||||
create table t1(c1 double);
|
||||
insert into t1 select pow('a', 2);
|
||||
insert into t1 select pow(2, 'a');
|
||||
insert into t1 select pow('a', 'a');
|
||||
--echo // expect 0, 1, 1
|
||||
--sorted_result
|
||||
select * from t1;
|
||||
|
||||
connection conn_admin;
|
||||
sleep 3;
|
||||
@ -0,0 +1,68 @@
|
||||
# owner: dachuan.sdc
|
||||
# owner group: SQL2
|
||||
--result_format 4
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
connection default;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 bigint, c6 bigint unsigned,
|
||||
c7 float, c8 float unsigned,
|
||||
c9 double, c10 double unsigned,
|
||||
c11 decimal, c12 decimal unsigned,
|
||||
c13 date, c14 datetime, c15 timestamp);
|
||||
create table t2 (c1 varchar(100), c2 char(100));
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
insert into t1 values(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
insert into t1 values(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0000-00-00', '0000-00-00 00:00:00', '0000-00-00 00:00:00');
|
||||
insert into t1 values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, '0013-01-01', '0014-01-01', '0015-01-01');
|
||||
insert into t1 values(-1, 2, -3, 4, -5, 6, -7, 8, -9, 10, -11, 12, '0013-01-01', '0014-01-01 00:00:00', '0015-01-01 00:00:00');
|
||||
insert into t1 values(1234567, 7654321, -33, 44, 555555555, 666666666, 777.777, 8888.888, 99999.999999, 10000.00000, 1111, 121212121, '0013-01-01', '0014-01-01 00:00:11', '0015-01-01 00:00:11');
|
||||
insert into t2 values(null, null);
|
||||
insert into t2 values('', '');
|
||||
insert into t2 values('a', 'a');
|
||||
insert into t2 values('A', 'A');
|
||||
insert into t2 values('0', '0');
|
||||
insert into t2 values('1', '1');
|
||||
insert into t2 values('@', '@');
|
||||
insert into t2 values('#', '#');
|
||||
insert into t2 values(' ', ' ');
|
||||
insert into t2 values('abcdefg', 'abcdefg');
|
||||
insert into t2 values('abcdefg ', 'abcdefg ');
|
||||
insert into t2 values('Good morning', 'Good morning');
|
||||
insert into t2 values('Good evening', 'Good evening');
|
||||
insert into t2 values('255.255.255.255', '255.255.255.255');
|
||||
insert into t2 values('192.168.1.100', '192.168.1.100');
|
||||
insert into t2 values('30.32.204.180', '30.32.204.180');
|
||||
insert into t2 values('emily@163.com', 'emily@163.com');
|
||||
insert into t2 values('mike@sohu.com', 'mike@sohu.com');
|
||||
insert into t2 values('joey@sina.com', 'joey@sina.com');
|
||||
insert into t2 values('阿里巴巴', '阿里巴巴');
|
||||
insert into t2 values('阿里巴巴 ', '阿里巴巴 ');
|
||||
insert into t2 values('淘宝', '淘宝');
|
||||
insert into t2 values('淘宝 ', '淘宝 ');
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
let $cnt=15;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
eval select c$left, md5(c$left) from t1;
|
||||
inc $left;
|
||||
}
|
||||
select c1, md5(c1), c2, md5(c2) from t2;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
@ -0,0 +1,30 @@
|
||||
# owner: bin.lb
|
||||
# owner group: sql2
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection syscon;
|
||||
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--disable_warnings
|
||||
select mid('abcdef', 2);
|
||||
select mid('abcdef', 2, 2);
|
||||
select mid('abcdef', "2.9", 2);
|
||||
select mid('abcdef', NULL, 2);
|
||||
select mid('abcdef', -1, 2);
|
||||
select mid('abcdef', 2, 100);
|
||||
select mid('abcdef', 2, -1);
|
||||
select mid('abcdef', 2, NULL);
|
||||
select mid('', 1);
|
||||
select mid(NULL, 1);
|
||||
--enable_warnings
|
||||
|
||||
connection syscon;
|
||||
--sleep 2
|
||||
123
tools/deploy/mysql_test/test_suite/static_engine/t/expr_neg.test
Normal file
123
tools/deploy/mysql_test/test_suite/static_engine/t/expr_neg.test
Normal file
@ -0,0 +1,123 @@
|
||||
#owner: dachuan.sdc
|
||||
#tags: optimizer
|
||||
|
||||
--result_format 4
|
||||
--enable_sorted_result
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
|
||||
alter system flush plan cache global;
|
||||
--sleep 2
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select neg(1) from dual;
|
||||
select neg(-1) from dual;
|
||||
select neg(1.2324) from dual;
|
||||
select neg(-1.2324) from dual;
|
||||
select neg('-1') from dual;
|
||||
explain select neg('-1') from dual;
|
||||
select neg('1.234') from dual;
|
||||
|
||||
select neg(null) from dual;
|
||||
select neg('-abcd');
|
||||
select neg('2014-10-09 10:00:00');
|
||||
|
||||
select neg(-9223372036854775808);
|
||||
select neg(-9999999999999999999999);
|
||||
select neg(10/0);
|
||||
select neg(9999999999999999999999);
|
||||
select neg(true);
|
||||
select neg(false);
|
||||
|
||||
|
||||
connection conn_admin;
|
||||
|
||||
--sleep 2
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t;
|
||||
--enable_warnings
|
||||
|
||||
create table t (t1 tinyint,
|
||||
t2 smallint,
|
||||
t3 mediumint,
|
||||
t4 integer,
|
||||
t5 bigint,
|
||||
t6 tinyint unsigned,
|
||||
t7 smallint unsigned,
|
||||
t8 mediumint unsigned,
|
||||
t9 integer unsigned,
|
||||
t10 bigint unsigned,
|
||||
t11 float,
|
||||
t12 float unsigned,
|
||||
t13 double,
|
||||
t14 double unsigned,
|
||||
t15 number,
|
||||
t16 number unsigned,
|
||||
t17 datetime,
|
||||
t18 timestamp,
|
||||
t19 date,
|
||||
t20 time,
|
||||
t21 year,
|
||||
t22 varchar(255),
|
||||
t23 char(255),
|
||||
t24 tinytext,
|
||||
t25 mediumtext,
|
||||
t26 longtext,
|
||||
t27 bit,
|
||||
t28 enum('a', 'b', 'c'),
|
||||
t29 set('a', 'b', 'c'));
|
||||
|
||||
insert into t values (1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -0.2, 0.3, 0.4, 0.5, -0.6, 0.7,
|
||||
'1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1',
|
||||
'1.2', 1, 'b', 'b');
|
||||
insert into t(t1) values (null);
|
||||
|
||||
connection conn_admin;
|
||||
|
||||
--sleep 2
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
let $cnt = 1;
|
||||
--disable_abort_on_error
|
||||
while ($cnt <= 29)
|
||||
{
|
||||
eval select neg(t$cnt) from t;
|
||||
eval explain select neg(t$cnt) from t;
|
||||
inc $cnt;
|
||||
}
|
||||
|
||||
connection conn_admin;
|
||||
set ob_enable_plan_cache = 0;
|
||||
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||
|
||||
alter system flush plan cache global;
|
||||
set ob_enable_plan_cache = 1;
|
||||
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||
|
||||
--disable_warnings
|
||||
drop view if exists v1;
|
||||
--enable_warnings
|
||||
create view v1 as select --9223372036854775808 c1, ---9223372036854775808 c2, ----9223372036854775808 c3;
|
||||
--echo // bug here: 视图的列的类型应该是decimal,应该是因为create view as路径上没有开新引擎开关
|
||||
desc v1;
|
||||
drop view v1;
|
||||
create view v1 as select -neg(-9223372036854775808) c1, --neg(-9223372036854775808) c2, ---neg(-9223372036854775808) c3;
|
||||
desc v1;
|
||||
drop view v1;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tt;
|
||||
--enable_warnings
|
||||
create table tt(c1 bigint);
|
||||
insert into tt values(-9223372036854775808);
|
||||
select c1, -c1 from tt;
|
||||
--echo // MySQL will give error, OB return c1. two neg will be removed when resolve neg node
|
||||
select c1, --c1 from tt;
|
||||
select c1, ---c1 from tt;
|
||||
|
||||
--sleep 2
|
||||
@ -1,162 +0,0 @@
|
||||
# owner: dachuan.sdc
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,oceanbase,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
create table t1 (c1 int, c2 int unsigned,
|
||||
c3 tinyint, c4 tinyint unsigned,
|
||||
c5 smallint, c6 smallint unsigned,
|
||||
c7 mediumint, c8 mediumint unsigned,
|
||||
c9 integer, c10 integer unsigned,
|
||||
c11 bigint, c12 bigint unsigned,
|
||||
c13 float, c14 float unsigned,
|
||||
c15 double, c16 double unsigned,
|
||||
c17 decimal, c18 decimal unsigned,
|
||||
c19 datetime, c20 timestamp,
|
||||
c21 varchar(30), c22 char(30), c_null int);
|
||||
|
||||
insert into t1 values(1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
1, 2,
|
||||
3.5, 4.5,
|
||||
5.5, 6.5,
|
||||
7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'9.5', '10.5', null);
|
||||
insert into t1 values(-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-1, 2,
|
||||
-3.5, 4.5,
|
||||
-5.5, 6.5,
|
||||
-7.5, 8.5,
|
||||
'2019-12-01 12:00:00', '2019-12-03 06:00:00',
|
||||
'-9.5', '10.5', null);
|
||||
|
||||
create table t2(
|
||||
a1 char(3) primary key,
|
||||
a2 int,
|
||||
a3 char(3),
|
||||
a4 float,
|
||||
a5 datetime
|
||||
);
|
||||
insert into t2 values('AME',0,'SEA',0.100,date'1942-02-19');
|
||||
insert into t2 values('HBR',1,'SEA',0.085,date'1948-03-05');
|
||||
insert into t2 values('BOT',-2,'SEA',-0.085,date'1951-11-29');
|
||||
insert into t2 values('BMC',3,'SEA',-0.085,date'1958-09-08');
|
||||
insert into t2 values('TWU',+0,'LAX',-0.080,date'1969-10-05');
|
||||
insert into t2 values('BDL',-0,'DEN',-0.080,date'1960-11-27');
|
||||
insert into t2 values('DTX',1,'NYC',0.080,date'1961-05-04');
|
||||
insert into t2 values('PLS',-1,'WDC',-0.075,date'1949-01-02');
|
||||
insert into t2 values('ZAJ',2,'CHI',-0.075,date'1960-06-15');
|
||||
insert into t2 values('VVV',-2,'MON',0.075,date'1959-06-28');
|
||||
insert into t2 values('GTM',3,'DAL',-0.070,date'1977-09-23');
|
||||
insert into t2 values('SSJ',null,'CHI',null,date'1974-03-19');
|
||||
insert into t2 values('KKK',-3,'ATL',null,null);
|
||||
insert into t2 values('XXX',null,'MIN',null,null);
|
||||
insert into t2 values('WWW',1,'LED',null,null);
|
||||
insert into t2 values('GG3',-3,'DD3',-0.051,date'1974-03-19');
|
||||
insert into t2 values('GG2',-3,'DD2',0.052,date'1974-03-19');
|
||||
insert into t2 values('GG1',3,'DD1',0.053,date'1974-03-19');
|
||||
|
||||
--sleep 1
|
||||
|
||||
select sign(null) from dual;
|
||||
|
||||
let $cnt=22;
|
||||
let $left=1;
|
||||
while ($left <= $cnt)
|
||||
{
|
||||
let $right=1;
|
||||
eval select c$left, sign(c$left) from t1;
|
||||
inc $left;
|
||||
}
|
||||
|
||||
select sign(a1) from t2;
|
||||
select sign(a3) from t2;
|
||||
select sign(a1),a2 from t2;
|
||||
select sign(a2) from t2 where sign(a4) >= 0;
|
||||
select sign(a4) from t2 where sign(a2) <=0 AND a2 < 2;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 group by sign(a2);
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 order by sign(a4) ;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 order by sign(a4) , a4 ;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 order by sign(a4) , a1 ;
|
||||
--sorted_result
|
||||
select abs(a2) , sum(a4) from t2 group by abs(a2) having sum(sign(a4)) > 0;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 where a2 = sign ( floor(1.5) - ceil(1.5) + round(1.5) - abs(-1.5) + neg(-1) );
|
||||
select sign( sum(a2) ) , sign( sum(a4) ) from t2;
|
||||
select sign( avg(a2) ) , sign( avg(a4) ) from t2;
|
||||
select sign( max(a2) ) , sign( min(a4) ) from t2;
|
||||
select sign(count(*)) from t2;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 where sign( length(a1) ) = 1;
|
||||
#cast
|
||||
--disable_warnings
|
||||
select sign( cast(a1 as char(1024)) ) , sign( cast(a3 as char(1024)) ) from t2;
|
||||
select sign( cast(a2 as char(1024)) ) , sign( cast(a4 as char(1024)) ) from t2;
|
||||
--enable_warnings
|
||||
# sign in join
|
||||
--sorted_result
|
||||
select * from t2 as t21 join t2 as t22 on sign(t21.a2) = sign(t22.a4);
|
||||
#col alias
|
||||
select tmp.a1 , sign(tmp.a2) , tmp.a3 , sign(tmp.a4) from t2 as tmp;
|
||||
|
||||
## select for update
|
||||
select sign(a2) from t2 where sign(a4) >= 0 for update;
|
||||
select sign(a4) from t2 where sign(a2) <=0 AND a2 < 2 for update;
|
||||
select * from t2 group by sign(a2) for update;
|
||||
select * from t2 order by sign(a4) for update;
|
||||
--sorted_result
|
||||
select abs(a2) , sum(a4) from t2 group by abs(a2) having sum(sign(a4)) > 0 for update;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 where a2 = sign ( floor(1.5) - ceil(1.5) + round(1.5) - abs(-1.5) + neg(-1) ) for update;
|
||||
select sign( sum(a2) ) , sign( sum(a4) ) from t2 for update;
|
||||
select sign( avg(a2) ) , sign( avg(a4) ) from t2 for update;
|
||||
select sign( max(a2) ) , sign( min(a4) ) from t2 for update;
|
||||
select sign(count(*)) from t2 for update;
|
||||
--replace_column 5 timestamp
|
||||
select * from t2 where sign( length(a1) ) = 1 for update;
|
||||
--replace_column 5 timestamp
|
||||
select sign( cast(a1 as char(1024)) ) , sign( cast(a3 as char(1024)) ) from t2 for update;
|
||||
select sign( cast(a2 as char(1024)) ) , sign( cast(a4 as char(1024)) ) from t2 for update;
|
||||
|
||||
|
||||
--sleep 2
|
||||
|
||||
--echo #
|
||||
select sign(1E-300) from dual;
|
||||
select sign(1E-400) from dual;
|
||||
|
||||
##bug:
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(c1 bit(64),c2 bit(64));
|
||||
insert into t1(c1) values(1);
|
||||
|
||||
select sign(c1) from t1;
|
||||
|
||||
drop table t1;
|
||||
@ -0,0 +1,66 @@
|
||||
# owner: bin.lb
|
||||
# owner group: sql2
|
||||
|
||||
--disable_abort_on_error
|
||||
--result_format 4
|
||||
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
connection syscon;
|
||||
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--disable_warnings
|
||||
|
||||
select space(NULL);
|
||||
select space(-1);
|
||||
select space(0);
|
||||
select space(1);
|
||||
select space(2);
|
||||
select length(space("2.1"));
|
||||
select length(space("2.9"));
|
||||
select length(space("200000000"));
|
||||
|
||||
--error 0,1051
|
||||
drop table t2;
|
||||
create table t2 as select space(512),space(513),space(32767),space(32768),space(65535),space(65536) from dual;
|
||||
desc t2;
|
||||
drop table t2;
|
||||
|
||||
--enable_warnings
|
||||
|
||||
connection syscon;
|
||||
--sleep 2
|
||||
|
||||
--echo #bugfix
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
--error 0, 942
|
||||
drop database if exists luofan;
|
||||
--error 0, 942
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
create database luofan;
|
||||
create table t1 (c1 varchar(64));
|
||||
insert into t1 values(-1);
|
||||
insert into t1 values(-2);
|
||||
insert into t1 values(-3);
|
||||
insert into t1 values(-4);
|
||||
|
||||
select * from t1 where space(c1) = '';
|
||||
|
||||
--disable_warnings
|
||||
--error 0, 942
|
||||
drop table if exists t1;
|
||||
--error 0, 942
|
||||
drop database if exists luofan;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
@ -0,0 +1,443 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
--error 0,1051
|
||||
drop table t0;
|
||||
--error 0,1051
|
||||
drop table t1;
|
||||
--error 0,1051
|
||||
drop table t2;
|
||||
--error 0,1051
|
||||
drop table t111_var;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
create table t1(c1 int,c2 int,c3 int);
|
||||
create table t2(c1 int,c2 int,c3 int);
|
||||
|
||||
insert into t1 values(1,2,3);
|
||||
insert into t1 values(1,2,3);
|
||||
insert into t1 values(0,2,3);
|
||||
insert into t1 values(2,2,3);
|
||||
insert into t1 values(3,2,3);
|
||||
|
||||
insert into t2 values(2,2,3);
|
||||
insert into t2 values(2,0,3);
|
||||
insert into t2 values(0,2,3);
|
||||
insert into t2 values(1,2,3);
|
||||
insert into t2 values(null,2,3);
|
||||
insert into t2 values(1,2,3);
|
||||
insert into t2 values(0,2,1);
|
||||
insert into t2 values(2,2,3);
|
||||
commit;
|
||||
|
||||
|
||||
create table t111_var(c0 bigint,c1 varchar(4000), c2 varchar(4000), c3 varchar(4000), c4 varchar(4000), c5 varchar(4000),c6 varchar(4000), c7 longtext);
|
||||
insert into t111_var values(1,repeat('ab',2000),repeat('ab',2000),repeat('ab',2000),repeat('ab',2000),repeat('ab',2000),repeat('ab',2000),repeat('abcdefghij',4000));
|
||||
set ob_query_timeout = 30000000;
|
||||
insert into t111_var select c0+1,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+10,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+100,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+1000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+10000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+100000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+1000000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+10000000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var select c0+100000000,c1,c2,c3,c4,c5,c6,c7 from t111_var;
|
||||
insert into t111_var values(null,null,null,null,null,null,null,null);
|
||||
insert into t111_var select * from t111_var;
|
||||
commit;
|
||||
|
||||
connection syscon;
|
||||
sleep 2;
|
||||
|
||||
|
||||
--result_format 4
|
||||
--explain_protocol 1
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
select /*+ USE_HASH_DISTINCT */distinct c1,c2 from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct c2,c1 from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct c2,c1,c1+c2 from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct c1+c2,abs(c1) from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct c1+c2 from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct c2,c1,c3 from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct 1,2,3,5,'ab' from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct 1,c2,2,3,c1,5,'ab' from t2;
|
||||
select /*+ USE_HASH_DISTINCT */distinct 1,c2,2,3,c1,5,'ab' from t2 where c2=0;
|
||||
|
||||
## dump
|
||||
set ob_query_timeout=90000000;
|
||||
select /*+ use_merge(a b) */SQL_CALC_FOUND_ROWS sum(c0),sum(length(c1)),count(c2),count(c3),count(c4),count(c5),count(c6),count(c7)
|
||||
from (select /*+ USE_HASH_DISTINCT */ distinct * from t111_var) order by c1 limit 1;
|
||||
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t0(c0 VARCHAR(500) NULL, c1 BIGINT UNIQUE ) PARTITION BY HASH(c1) partitions 15;
|
||||
CREATE TABLE IF NOT EXISTS t1(c0 VARCHAR(500) COMMENT 'asdf' NULL) PARTITION BY KEY (c0) partitions 3;
|
||||
CREATE TABLE t2(c0 BIGINT(174) ZEROFILL ) PARTITION BY KEY (c0) partitions 7;
|
||||
--disable_abort_on_error
|
||||
REPLACE INTO t2(c0) VALUES(1623564365);
|
||||
REPLACE INTO t1(c0) VALUES("{8oe6A<\\kkTz '");
|
||||
TRUNCATE TABLE t1;
|
||||
INSERT INTO t0(c1, c0) VALUES(-183816722, "<.g"), (-684755701, 'Q?lk#!XmzjCpH]EiNM*so');
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t2(c0) VALUES(-1245021015) ON DUPLICATE KEY UPDATE c0=-1810276342;
|
||||
REPLACE INTO t1(c0) VALUES('2');
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t0(c1) VALUES(-183816722), (1623564365) ON DUPLICATE KEY UPDATE c1=-1245021015;
|
||||
REPLACE INTO t0(c0) VALUES("-684755701");
|
||||
REPLACE INTO t2(c0) VALUES(1047809412);
|
||||
REPLACE INTO t1(c0) VALUES("F!kJuYIEkY}r^U?f|s\\.j5gc"), ('6');
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t0(c0) VALUES("{8oe6A<\\kkTz '"), ("<.g");
|
||||
REPLACE INTO t2(c0) VALUES(-684755701);
|
||||
REPLACE INTO t1(c0) VALUES('[4/dbA*1X<!k*V#9');
|
||||
INSERT INTO t2(c0) VALUES(-684755701);
|
||||
REPLACE INTO t1(c0) VALUES('-RV\\!dH1M''gtK+CS-t#xli');
|
||||
INSERT INTO t0(c1, c0) VALUES(-1810276342, "-1245021015") ON DUPLICATE KEY UPDATE c1=-1810276342;
|
||||
INSERT INTO t0(c1, c0) VALUES(1047809412, "*"), (-1971421495, ""), (417065122, "!"), (834933091, 'W,}kPz)VwU[*.8Az38ag4aJqY'), (1534499616, "-183816722"), (834933091, '#g');
|
||||
INSERT INTO t1(c0) VALUES('');
|
||||
INSERT INTO t0(c0, c1) VALUES("#g", -222390328);
|
||||
REPLACE INTO t1(c0) VALUES('''l*] 6X2!MN'), ('^'), ("1047809412"), ("");
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t2(c0) VALUES(-1971421495);
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t1(c0) VALUES(''), ('834933091') ON DUPLICATE KEY UPDATE c0="";
|
||||
INSERT INTO t2(c0) VALUES(79355437), (-1810276342) ON DUPLICATE KEY UPDATE c0=1489403758;
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t2(c0) VALUES(-1319874701) ON DUPLICATE KEY UPDATE c0=-1260108762;
|
||||
REPLACE INTO t2(c0) VALUES(-294659499), (1047809412), (-183816722), (1047809412);
|
||||
REPLACE INTO t0(c1, c0) VALUES(-104530260, "-294659499");
|
||||
REPLACE INTO t1(c0) VALUES("!6v!iRzM,]aq1");
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t2(c0) VALUES(-1750125326) ON DUPLICATE KEY UPDATE c0=-190239276;
|
||||
REPLACE INTO t2(c0) VALUES(58271544);
|
||||
REPLACE INTO t1(c0) VALUES('%tS*_s!&Y~}');
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t1(c0) VALUES('');
|
||||
INSERT INTO t2(c0) VALUES(667802359) ON DUPLICATE KEY UPDATE c0=1797578838;
|
||||
REPLACE INTO t2(c0) VALUES(1534499616), (710325654);
|
||||
REPLACE INTO t0(c0) VALUES('A&7'), ("v");
|
||||
INSERT INTO t0(c0, c1) VALUES('%u#1Go9+jI!_]uOGv|O!', -294659499) ON DUPLICATE KEY UPDATE c1=50774738;
|
||||
INSERT INTO t0(c0) VALUES("C");
|
||||
REPLACE INTO t0(c0, c1) VALUES("", 1202431853);
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t2(c0) VALUES(1541216475) ON DUPLICATE KEY UPDATE c0=79355437;
|
||||
INSERT INTO t1(c0) VALUES('hHtipgfUcllsz');
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(-775404381) ON DUPLICATE KEY UPDATE c0=50774738;
|
||||
INSERT INTO t1(c0) VALUES("-1810276342") ON DUPLICATE KEY UPDATE c0='-294659499';
|
||||
REPLACE INTO t2(c0) VALUES(1128771098), (1489403758);
|
||||
INSERT INTO t1(c0) VALUES('UZ!VMyXOZeyECPZ?A*vGHtEwN)~j') ON DUPLICATE KEY UPDATE c0='cb,Ot/f8<0L{IY_ -~{qPm';
|
||||
REPLACE INTO t1(c0) VALUES("C");
|
||||
INSERT INTO t2(c0) VALUES(1202431853) ON DUPLICATE KEY UPDATE c0=512850030;
|
||||
REPLACE INTO t1(c0) VALUES('');
|
||||
REPLACE INTO t1(c0) VALUES("GXe!Isi-*w/");
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t1(c0) VALUES('834933091') ON DUPLICATE KEY UPDATE c0="F{";
|
||||
REPLACE INTO t0(c1, c0) VALUES(512850030, "^");
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t0(c0, c1) VALUES('9I,TA{.)^oHgx+,J~p7t', 520051546) ON DUPLICATE KEY UPDATE c1=-1260108762;
|
||||
INSERT INTO t0(c0) VALUES('!') ON DUPLICATE KEY UPDATE c0=">7";
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t2(c0) VALUES(1541216475), (1186933746), (559766851);
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t0(c0, c1) VALUES("58271544", 1489403758);
|
||||
REPLACE INTO t2(c0) VALUES(-692090307), (487694549);
|
||||
INSERT /*+parallel(2) enable_parallel_dml*/ INTO t1(c0) VALUES("[4/dbA*1X<!k*V#9") ON DUPLICATE KEY UPDATE c0="\\";
|
||||
REPLACE INTO t0(c1, c0) VALUES(710325654, '0');
|
||||
REPLACE INTO t2(c0) VALUES(50774738);
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t0(c0, c1) VALUES("4l5{SQ_n8YqKXdlVAjpgvZ%EQ]<^", -992574900) ON DUPLICATE KEY UPDATE c1=-2042045427;
|
||||
REPLACE INTO t2(c0) VALUES(512850030);
|
||||
REPLACE INTO t2(c0) VALUES(450933628), (-1120407263), (487694549), (2128576969);
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t1(c0) VALUES("XmbEf~[mUG5_"), ('417065122') ON DUPLICATE KEY UPDATE c0="^}\\Uk41V]";
|
||||
INSERT /*+parallel(2) enable_parallel_dml*/ INTO t0(c1, c0) VALUES(-898088197, '') ON DUPLICATE KEY UPDATE c1=-519247255;
|
||||
REPLACE INTO t1(c0) VALUES("bh#^J0%dT\\o,R.\\B>f[~j");
|
||||
REPLACE INTO t0(c0) VALUES('XyD*%aQ+MXT9w80p#F');
|
||||
REPLACE INTO t1(c0) VALUES("-1810276342");
|
||||
INSERT INTO t1(c0) VALUES('>j');
|
||||
REPLACE INTO t1(c0) VALUES('G');
|
||||
INSERT INTO t1(c0) VALUES("lrzyLtiPj*IrdBu9%-O*Ih<>3") ON DUPLICATE KEY UPDATE c0='#g';
|
||||
REPLACE INTO t1(c0) VALUES(""), ('6MQXB)Er');
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t2(c0) VALUES(-518787001) ON DUPLICATE KEY UPDATE c0=1977657970;
|
||||
INSERT INTO t1(c0) VALUES('4*1xLR38DAa9lGB1-2Q');
|
||||
INSERT INTO t2(c0) VALUES(-30984391) ON DUPLICATE KEY UPDATE c0=1489403758;
|
||||
INSERT /*+parallel(9) enable_parallel_dml*/ INTO t0(c1, c0) VALUES(141916557, '');
|
||||
REPLACE INTO t0(c0, c1) VALUES('Wz?&>+', 512850030);
|
||||
REPLACE INTO t0(c0) VALUES(""), ("-1750125326");
|
||||
INSERT INTO t0(c1, c0) VALUES(559766851, 'XMBEF~[MUG5_') ON DUPLICATE KEY UPDATE c0='1977657970';
|
||||
REPLACE INTO t1(c0) VALUES('1489403758');
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t2(c0) VALUES(-2025228192) ON DUPLICATE KEY UPDATE c0=2128576969;
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t1(c0) VALUES("I|yJ") ON DUPLICATE KEY UPDATE c0='1541216475';
|
||||
REPLACE INTO t1(c0) VALUES('2128576969'), ("B5a\\i4g8.PN>l^2");
|
||||
REPLACE INTO t2(c0) VALUES(266043513);
|
||||
REPLACE INTO t1(c0) VALUES('4*1xlr38daa9lgb1-2q');
|
||||
REPLACE INTO t1(c0) VALUES(''), ('hHtipgfUcllsz');
|
||||
INSERT INTO t0(c1, c0) VALUES(710325654, 'Gv9U<^N^qLa(}') ON DUPLICATE KEY UPDATE c0='3/qIdE^Iz';
|
||||
INSERT INTO t0(c0) VALUES('~mn+|.fzXJLKStd**TtwF(oICz_'), ('_');
|
||||
REPLACE INTO t1(c0) VALUES('-1810276342');
|
||||
REPLACE INTO t2(c0) VALUES(-342988771);
|
||||
REPLACE INTO t0(c0, c1) VALUES("I|yJ", 1541216475);
|
||||
INSERT /*+parallel(9) enable_parallel_dml*/ INTO t0(c1) VALUES(38814790) ON DUPLICATE KEY UPDATE c0='16lW,ub';
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(383434325);
|
||||
REPLACE INTO t0(c1, c0) VALUES(-222390328, '-898088197'), (-47944970, 't!#%mSfY{Jmv}N');
|
||||
REPLACE INTO t2(c0) VALUES(383434325);
|
||||
REPLACE INTO t0(c0) VALUES("w6?YiI7D\\0\\ZpM8NP>R,d{*");
|
||||
REPLACE INTO t1(c0) VALUES('*'), ('');
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t2(c0) VALUES(1074912575);
|
||||
REPLACE INTO t2(c0) VALUES(-1059804694);
|
||||
INSERT INTO t1(c0) VALUES('(Ct0#v') ON DUPLICATE KEY UPDATE c0="^.mC2C(*5bcTF^_QuvE+gIH)E";
|
||||
ALTER TABLE t2 ;
|
||||
REPLACE INTO t1(c0) VALUES('90'), ('s'), ("XOG)!uY#&7E-5VdYQt1}cv");
|
||||
REPLACE INTO t2(c0) VALUES(1921869132);
|
||||
REPLACE INTO t1(c0) VALUES('');
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t0(c1) VALUES(1546588654);
|
||||
REPLACE INTO t0(c0) VALUES('[d78a[xFm1J{/jh*i!_&Rh7/'), ('266043513'), ("c/qIdE^Iz");
|
||||
INSERT /*+parallel(9) enable_parallel_dml*/ INTO t2(c0) VALUES(1608276723) ON DUPLICATE KEY UPDATE c0=-1120407263;
|
||||
REPLACE INTO t2(c0) VALUES(-1791001932), (-1751730295), (-992574900);
|
||||
INSERT INTO t0(c0) VALUES("-684755701") ON DUPLICATE KEY UPDATE c0='r<Kv';
|
||||
REPLACE INTO t1(c0) VALUES('Rr&p5if|pArY^1.lSvkG');
|
||||
INSERT INTO t2(c0) VALUES(398204275);
|
||||
REPLACE INTO t0(c0, c1) VALUES('D', 277389578);
|
||||
INSERT INTO t2(c0) VALUES(-611875472) ON DUPLICATE KEY UPDATE c0=-1075618189;
|
||||
REPLACE INTO t1(c0) VALUES('-104530260');
|
||||
INSERT INTO t0(c0, c1) VALUES('CB,OT/F8<0L{IY_ -~{QPM', -684755701) ON DUPLICATE KEY UPDATE c0=' Fs7%c-SDW!jM';
|
||||
REPLACE INTO t0(c1, c0) VALUES(-863400574, "y1p3qByYNx.bym)/q4c");
|
||||
REPLACE INTO t1(c0) VALUES("w6?yii7d\\0\\zpm8np>r,d{*"), ('834933091'), ('hHtipgfUcllsz'), ('');
|
||||
REPLACE INTO t2(c0) VALUES(-1120407263);
|
||||
INSERT INTO t2(c0) VALUES(-1943761954);
|
||||
INSERT INTO t2(c0) VALUES(-374675935), (-1664313740), (503345056) ON DUPLICATE KEY UPDATE c0=-1245021015;
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t2(c0) VALUES(-1490343411), (1030190317), (1782144585);
|
||||
REPLACE INTO t1(c0) VALUES("w^");
|
||||
REPLACE INTO t0(c1, c0) VALUES(58271544, 'Y');
|
||||
INSERT INTO t0(c1, c0) VALUES(-1773558993, 'T>d.K7');
|
||||
REPLACE INTO t1(c0) VALUES('R4^HYn'), ('c');
|
||||
REPLACE INTO t0(c0, c1) VALUES("3l~<*E3le", 1546588654);
|
||||
CREATE INDEX i430 ON t1(c0(1)) global;
|
||||
REPLACE INTO t2(c0) VALUES(1489403758);
|
||||
INSERT INTO t1(c0) VALUES("W"), ('u|Qxg6*bV 8Xcx!HQo*VO') ON DUPLICATE KEY UPDATE c0='06';
|
||||
INSERT INTO t1(c0) VALUES("5jr");
|
||||
REPLACE INTO t2(c0) VALUES(1796091423);
|
||||
INSERT INTO t2(c0) VALUES(1047809412) ON DUPLICATE KEY UPDATE c0=1608276723;
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t2(c0) VALUES(666893151);
|
||||
INSERT INTO t1(c0) VALUES("");
|
||||
REPLACE INTO t0(c1, c0) VALUES(-1810276342, 'Y');
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t1(c0) VALUES('b.6,RL-c[<.ScG<');
|
||||
INSERT INTO t1(c0) VALUES('-1773558993');
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t0(c0) VALUES('A&7');
|
||||
INSERT INTO t1(c0) VALUES('-j&7LN&bUm*drF?') ON DUPLICATE KEY UPDATE c0="u>|!T4e/?W";
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t2(c0) VALUES(1489403758), (450933628), (-1012219707) ON DUPLICATE KEY UPDATE c0=1608276723;
|
||||
REPLACE INTO t0(c1, c0) VALUES(-532544134, "5&6|8\\X'45j[yR{]");
|
||||
REPLACE INTO t0(c0) VALUES('666893151');
|
||||
INSERT INTO t1(c0) VALUES("38814790") ON DUPLICATE KEY UPDATE c0='AS';
|
||||
INSERT INTO t2(c0) VALUES(-1751730295), (-818062927);
|
||||
REPLACE INTO t1(c0) VALUES("1623564365");
|
||||
REPLACE INTO t2(c0) VALUES(-519247255);
|
||||
REPLACE INTO t2(c0) VALUES(-532544134);
|
||||
INSERT INTO t1(c0) VALUES("#"), ('-2025228192') ON DUPLICATE KEY UPDATE c0='4W[^L2o';
|
||||
REPLACE INTO t0(c0) VALUES("-684755701");
|
||||
REPLACE INTO t2(c0) VALUES(1329380798);
|
||||
REPLACE INTO t0(c0) VALUES('450933628'), ('H>hf#sf.7Dd6nxcH');
|
||||
#select TABLE_NAME, 'InnoDB' from information_schema.TABLES where table_schema = 'database0';
|
||||
INSERT INTO t2(c0) VALUES(-1245021015) ON DUPLICATE KEY UPDATE c0=1090711076;
|
||||
REPLACE INTO t1(c0) VALUES("W");
|
||||
INSERT INTO t1(c0) VALUES('6Hk') ON DUPLICATE KEY UPDATE c0='79355437';
|
||||
INSERT INTO t1(c0) VALUES("-532544134"), ("666893151");
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t1(c0) VALUES("eX ad2g") ON DUPLICATE KEY UPDATE c0='~qpBxh2{~O4VOlX]>}';
|
||||
REPLACE INTO t1(c0) VALUES("1030190317"), ("KU^)");
|
||||
REPLACE INTO t0(c0, c1) VALUES('8', 1030190317);
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t2(c0) VALUES(1094103626), (-1394402382);
|
||||
REPLACE INTO t2(c0) VALUES(326647090);
|
||||
REPLACE INTO t1(c0) VALUES(''''), ("-1490343411"), ('[4/dbA*1X<!k*V#9'), ("-1e50");
|
||||
INSERT /*+parallel(9) enable_parallel_dml*/ INTO t2(c0) VALUES(177198859);
|
||||
REPLACE INTO t1(c0) VALUES("");
|
||||
REPLACE INTO t0(c0) VALUES("559766851");
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t1(c0) VALUES('U{/') ON DUPLICATE KEY UPDATE c0='HZ#?tYU!jSQG8O}8r*m*i-B4g';
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t1(c0) VALUES('_W>nY~7') ON DUPLICATE KEY UPDATE c0='ZNTH|';
|
||||
INSERT INTO t1(c0) VALUES('wv^wo}]0Ye]0._'), ("B}F?kb10lgWz"), ('TRUE'), ('lrzyLtiPj*IrdBu9%-O*Ih<>3') ON DUPLICATE KEY UPDATE c0="1mdf";
|
||||
REPLACE INTO t1(c0) VALUES('06'), ("i.3");
|
||||
INSERT INTO t0(c1, c0) VALUES(922106747, "Y9{X.*gCBXnh~8&.-m&F"), (-518787001, "/"), (752753855, 'k3yS(^S0.,''[]UGqUtd/u7eySSQjo') ON DUPLICATE KEY UPDATE c0='I|yJ';
|
||||
CREATE INDEX i950 USING HASH ON t2(c0) PARTITION BY HASH(c0) partitions 3;
|
||||
INSERT INTO t0(c0) VALUES("0w49hQ|&qK,~ (O]Dp");
|
||||
REPLACE INTO t0(c1, c0) VALUES(383434325, 'F{');
|
||||
INSERT INTO t1(c0) VALUES("F<THOTAy{\\Nko|<_HJF^L?"), ("1977657970"), ('k');
|
||||
REPLACE INTO t1(c0) VALUES('vh5XVc7J/)H');
|
||||
INSERT INTO t2(c0) VALUES(141186181), (1623564365) ON DUPLICATE KEY UPDATE c0=-1664313740;
|
||||
INSERT INTO t0(c1, c0) VALUES(118491464, '91AaljT*MNKDlQ1 lz8DR,k#[)'), (657040223, "-1943761954"), (1047809412, 'A?!1>)Ms/^s''{|L~5-m6?&Vt/');
|
||||
REPLACE INTO t0(c1, c0) VALUES(118491464, "-1245021015");
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t0(c0) VALUES('d'), ("") ON DUPLICATE KEY UPDATE c1=-760588103;
|
||||
REPLACE INTO t2(c0) VALUES(-288124332), (555552610), (559766851);
|
||||
REPLACE INTO t2(c0) VALUES(-1750125326);
|
||||
REPLACE INTO t0(c0, c1) VALUES('(Z%,', -692090307);
|
||||
INSERT INTO t0(c0, c1) VALUES(')h', 512850030);
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(-222390328) ON DUPLICATE KEY UPDATE c0=-288124332;
|
||||
REPLACE INTO t0(c1, c0) VALUES(260264234, "zb1S,4T9p{*P*b"), (-190239276, 'g');
|
||||
INSERT INTO t0(c1) VALUES(1526935571) ON DUPLICATE KEY UPDATE c0="3M";
|
||||
INSERT INTO t1(c0) VALUES('~6'), ('') ON DUPLICATE KEY UPDATE c0="}]rz7kf]8o(LZ)*2Z/*Cer[t";
|
||||
INSERT /*+parallel(9) enable_parallel_dml*/ INTO t1(c0) VALUES("");
|
||||
REPLACE INTO t1(c0) VALUES("u~!v\\OJtA7t}[Z "), ("]3#rkm");
|
||||
REPLACE INTO t0(c0, c1) VALUES("Rr&p5if|pArY^1.lSvkG", 417065122);
|
||||
REPLACE INTO t0(c0) VALUES('1B3s-|{i3R');
|
||||
INSERT INTO t1(c0) VALUES('['), ("pt^O(_6NrLQkdgSNYV3") ON DUPLICATE KEY UPDATE c0="38814790";
|
||||
REPLACE INTO t0(c0, c1) VALUES("38814790", -182939180);
|
||||
REPLACE INTO t0(c1, c0) VALUES(-308089097, 'Nq%Uv!QBU');
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t1(c0) VALUES("1782144585");
|
||||
REPLACE INTO t0(c0) VALUES("");
|
||||
REPLACE INTO t0(c0, c1) VALUES('277389578', -1120407263), ('FALSE', 84553879), ("u(l3Z", -1864228286), ('wv^wo}]0ye]0._', -2007349734);
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t2(c0) VALUES(1796091423), (-1796698850) ON DUPLICATE KEY UPDATE c0=1549773963;
|
||||
REPLACE INTO t0(c0) VALUES('H');
|
||||
INSERT INTO t2(c0) VALUES(-1292595305), (-518787001) ON DUPLICATE KEY UPDATE c0=-50086899;
|
||||
REPLACE INTO t1(c0) VALUES('[d78a[xFm1J{/jh*i!_&Rh7/');
|
||||
REPLACE INTO t2(c0) VALUES(266043513);
|
||||
INSERT INTO t1(c0) VALUES('|');
|
||||
INSERT INTO t2(c0) VALUES(-60671572) ON DUPLICATE KEY UPDATE c0=-1484960474;
|
||||
INSERT INTO t1(c0) VALUES('B+|1zv5XulF,23fY8ax'), ("\\#Sj}vEKk}[}HvhDtbQJ70nU "), ("RGE");
|
||||
#select TABLE_NAME, 'InnoDB' from information_schema.TABLES where table_schema = 'database0';
|
||||
INSERT INTO t1(c0) VALUES('_w>ny~7');
|
||||
REPLACE INTO t2(c0) VALUES(-167779305);
|
||||
REPLACE INTO t1(c0) VALUES('PO');
|
||||
INSERT INTO t1(c0) VALUES('-j&7ln&bum*drf?'), (""), ('1090711076'), ('4*1xlr38daa9lgb1-2q');
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t2(c0) VALUES(-1654859912) ON DUPLICATE KEY UPDATE c0=1921869132;
|
||||
INSERT INTO t0(c0, c1) VALUES("qDQ", -271708509) ON DUPLICATE KEY UPDATE c1=989068660;
|
||||
INSERT INTO t1(c0) VALUES("") ON DUPLICATE KEY UPDATE c0='5JR';
|
||||
REPLACE INTO t2(c0) VALUES(326647090);
|
||||
INSERT INTO t1(c0) VALUES('xkwDL3io6,T!') ON DUPLICATE KEY UPDATE c0='-rv\\!dh1m''gtk+cs-t#xli';
|
||||
INSERT INTO t0(c0) VALUES("A") ON DUPLICATE KEY UPDATE c0='*,';
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t2(c0) VALUES(-1263839793);
|
||||
REPLACE INTO t1(c0) VALUES('398204275');
|
||||
REPLACE INTO t1(c0) VALUES(']a');
|
||||
REPLACE INTO t2(c0) VALUES(141186181), (1117292413);
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t0(c1) VALUES(1235043174), (634617016), (-820154399) ON DUPLICATE KEY UPDATE c0="1546588654";
|
||||
INSERT INTO t2(c0) VALUES(-1810276342) ON DUPLICATE KEY UPDATE c0=1621699534;
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t1(c0) VALUES("Hg 4QF9^yYv(|n0aC") ON DUPLICATE KEY UPDATE c0="w,}kpz)vwu[*.8az38ag4ajqy";
|
||||
REPLACE INTO t1(c0) VALUES('h*9X7!SX95R?Xh'), ('xog)!uy#&7e-5vdyqt1}cv'), ('e\\ DN?Y');
|
||||
REPLACE INTO t0(c0) VALUES("{"), ('');
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t0(c1) VALUES(-106041801);
|
||||
REPLACE INTO t1(c0) VALUES("ZxJ|lh\\%UKIy]/x&C?Q-+vweYo&");
|
||||
REPLACE INTO t1(c0) VALUES("o");
|
||||
REPLACE INTO t1(c0) VALUES('6MQXB)Er');
|
||||
REPLACE INTO t1(c0) VALUES("[4/DBA*1X<!K*V#9");
|
||||
REPLACE INTO t2(c0) VALUES(-1038445869);
|
||||
INSERT /*+parallel(2) enable_parallel_dml*/ INTO t2(c0) VALUES(698536726) ON DUPLICATE KEY UPDATE c0=459591044;
|
||||
INSERT INTO t2(c0) VALUES(-288124332);
|
||||
INSERT INTO t0(c1, c0) VALUES(260264234, 'E}''');
|
||||
INSERT INTO t2(c0) VALUES(68007585) ON DUPLICATE KEY UPDATE c0=-1142355879;
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t2(c0) VALUES(-818062927), (-541455226), (-143282765) ON DUPLICATE KEY UPDATE c0=1603599002;
|
||||
REPLACE INTO t1(c0) VALUES('');
|
||||
#select TABLE_NAME, 'InnoDB' from information_schema.TABLES where table_schema = 'database0';
|
||||
INSERT INTO t0(c0, c1) VALUES("h", -289348621), ("(AL}*f&>y+f^11(LDl}3+\\ _vzv", -1810276342) ON DUPLICATE KEY UPDATE c0="";
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t0(c1, c0) VALUES(-1826957836, 'qZG+') ON DUPLICATE KEY UPDATE c1=398204275;
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t0(c0, c1) VALUES('[)', -544121435) ON DUPLICATE KEY UPDATE c0='uvz{';
|
||||
INSERT INTO t0(c0, c1) VALUES('pZ p2hX{C{*X4F99~%', -995081015) ON DUPLICATE KEY UPDATE c1=1155123982;
|
||||
INSERT INTO t0(c0, c1) VALUES("DnNyk#QM}Cy%<rDUchOMz", -1943761954) ON DUPLICATE KEY UPDATE c1=1055882632;
|
||||
REPLACE INTO t0(c1, c0) VALUES(392658544, 'P');
|
||||
INSERT INTO t0(c0, c1) VALUES('8', 6661643);
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(1329380798) ON DUPLICATE KEY UPDATE c0=-519247255;
|
||||
REPLACE INTO t2(c0) VALUES(-30984391), (-1380389374), (-104530260);
|
||||
REPLACE INTO t1(c0) VALUES("-692090307"), ("2/}8nAnJ0"), ("");
|
||||
INSERT INTO t0(c0) VALUES('1782144585') ON DUPLICATE KEY UPDATE c0='5jr';
|
||||
REPLACE INTO t0(c0) VALUES("");
|
||||
REPLACE INTO t2(c0) VALUES(-832890617);
|
||||
REPLACE INTO t0(c1, c0) VALUES(-2069014372, "i~2]4~|#D s{Y"), (-765292737, 'z'), (-1664313740, "s3Ep8+");
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t1(c0) VALUES('') ON DUPLICATE KEY UPDATE c0="-_s";
|
||||
REPLACE INTO t0(c0) VALUES("487694549"), ("?");
|
||||
REPLACE INTO t0(c1, c0) VALUES(1245367531, '');
|
||||
REPLACE INTO t1(c0) VALUES("R'");
|
||||
INSERT INTO t0(c0, c1) VALUES("", 1022005211);
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t1(c0) VALUES('') ON DUPLICATE KEY UPDATE c0='';
|
||||
REPLACE INTO t1(c0) VALUES('');
|
||||
REPLACE INTO t2(c0) VALUES(559766851);
|
||||
INSERT INTO t0(c1) VALUES(438947685) ON DUPLICATE KEY UPDATE c0="-183816722";
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t2(c0) VALUES(1097763330);
|
||||
REPLACE INTO t2(c0) VALUES(1921869132);
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t1(c0) VALUES("nZmnPezW*p'1F_A9"), (""), ('1623564365'), ("bGb ,(gNvYBJ&h[w835\\JUA7!C");
|
||||
REPLACE INTO t0(c1) VALUES(-1153904014);
|
||||
INSERT INTO t2(c0) VALUES(520051546), (2128576969);
|
||||
REPLACE INTO t0(c1, c0) VALUES(-730569861, "cb,ot/f8<0l{iy_ -~{qpm");
|
||||
REPLACE INTO t2(c0) VALUES(-1394402382);
|
||||
REPLACE INTO t0(c0, c1) VALUES("", 1030190317);
|
||||
INSERT INTO t0(c1, c0) VALUES(-1277048949, '''#*R)1mdBeOtM[');
|
||||
REPLACE INTO t1(c0) VALUES('%tS*_s!&Y~}'), ("38814790");
|
||||
REPLACE INTO t2(c0) VALUES(503345056);
|
||||
INSERT INTO t0(c1, c0) VALUES(1931894424, '-518787001'), (-500510214, "\\"), (1504571057, "2");
|
||||
INSERT INTO t2(c0) VALUES(-342988771), (118491464) ON DUPLICATE KEY UPDATE c0=84553879;
|
||||
REPLACE INTO t0(c0) VALUES('W'), ("l%V4?zb0Q^HBNv59]");
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t1(c0) VALUES("c");
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t0(c1) VALUES(398204275);
|
||||
REPLACE INTO t0(c0) VALUES('#g');
|
||||
REPLACE INTO t1(c0) VALUES("HHX_hf[^");
|
||||
REPLACE INTO t2(c0) VALUES(555552610), (-1359896317), (-1922956388);
|
||||
REPLACE INTO t1(c0) VALUES("Qw9");
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t1(c0) VALUES("") ON DUPLICATE KEY UPDATE c0="h";
|
||||
INSERT /*+parallel(7) enable_parallel_dml*/ INTO t2(c0) VALUES(-1416892404) ON DUPLICATE KEY UPDATE c0=-850566294;
|
||||
REPLACE INTO t2(c0) VALUES(-294659499);
|
||||
INSERT INTO t1(c0) VALUES("") ON DUPLICATE KEY UPDATE c0="v>";
|
||||
REPLACE INTO t0(c0, c1) VALUES("1074912575", -1111240956);
|
||||
REPLACE INTO t1(c0) VALUES('q6h]zjLt)|[?S*C'), ("");
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t0(c1, c0) VALUES(499424592, "1526935571"), (-1949597880, 'I|yJ');
|
||||
REPLACE INTO t0(c1, c0) VALUES(-1059804694, "d*%^(Lcrq<|JmNyjM38B+2");
|
||||
INSERT INTO t2(c0) VALUES(2074113033);
|
||||
REPLACE INTO t1(c0) VALUES('t');
|
||||
REPLACE INTO t2(c0) VALUES(-1059804694);
|
||||
REPLACE INTO t2(c0) VALUES(1660984477);
|
||||
REPLACE INTO t2(c0) VALUES(-2025228192), (-943802207), (273159703);
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t1(c0) VALUES("&a>a"), ('}8Z'), ('d|ze^fJh(Y|tof0-w#FVF[{pTf 1Z') ON DUPLICATE KEY UPDATE c0='%*5?JXe5x''--N*w|NM#+~''yj}w';
|
||||
REPLACE INTO t0(c1, c0) VALUES(-182939180, '1549773963');
|
||||
REPLACE INTO t0(c1) VALUES(-1119894901), (84553879);
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t1(c0) VALUES('1796091423');
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(443129399) ON DUPLICATE KEY UPDATE c0=520051546;
|
||||
REPLACE INTO t2(c0) VALUES(-593968021), (-518787001), (1588767598), (-423953906), (-1749738322);
|
||||
REPLACE INTO t1(c0) VALUES(""), ("u[");
|
||||
REPLACE INTO t0(c0) VALUES("Oo2C");
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t1(c0) VALUES(''''), ('ehOqju3G72*M'), ('E.p1qkG'), ("%P%_5\\+1J}\\cjXWYbcD\\Y(]qX8+z]"), ("") ON DUPLICATE KEY UPDATE c0="upb,KpUrE8ZdvnzOe";
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t0(c1) VALUES(1623564365);
|
||||
INSERT /*+parallel(3) enable_parallel_dml*/ INTO t0(c1, c0) VALUES(1526718257, "U<0*0") ON DUPLICATE KEY UPDATE c1=-621014573;
|
||||
REPLACE INTO t2(c0) VALUES(-554964227);
|
||||
REPLACE INTO t0(c1, c0) VALUES(1790436495, "V/7NHRW^%3^b[h>'Q");
|
||||
INSERT INTO t0(c1, c0) VALUES(79355437, 'oVh5l');
|
||||
INSERT INTO t2(c0) VALUES(-255112077);
|
||||
INSERT INTO t2(c0) VALUES(666893151) ON DUPLICATE KEY UPDATE c0=1089965791;
|
||||
INSERT /*+parallel(5) enable_parallel_dml*/ INTO t2(c0) VALUES(359479526) ON DUPLICATE KEY UPDATE c0=1990806843;
|
||||
INSERT /*+parallel(1) enable_parallel_dml*/ INTO t0(c0, c1) VALUES('-222390328', 1921869132), ('9lyjAk#p#xG&<\\9!', -701977576) ON DUPLICATE KEY UPDATE c0="xyd*%aq+mxt9w80p#f";
|
||||
INSERT INTO t0(c0, c1) VALUES("[>Y2K>h.5", 560088349);
|
||||
REPLACE INTO t0(c1) VALUES(908791520);
|
||||
REPLACE INTO t0(c0, c1) VALUES('hh', 1455480061), ('2]~\\{F{I5mj~~%l]O|', -1664313740);
|
||||
INSERT /*+parallel(8) enable_parallel_dml*/ INTO t0(c0, c1) VALUES("M**sk]{Cht3'J2", -2042045427);
|
||||
REPLACE INTO t1(c0) VALUES('L0');
|
||||
REPLACE INTO t2(c0) VALUES(484725598), (-1150330143), (-2066290446);
|
||||
INSERT /*+parallel(10) enable_parallel_dml*/ INTO t2(c0) VALUES(-1575710347), (1308540841) ON DUPLICATE KEY UPDATE c0=1772972035;
|
||||
REPLACE INTO t1(c0) VALUES('417065122');
|
||||
INSERT INTO t1(c0) VALUES("+"), ("V5Bd"), ('mo)!qHyHCC5l''K');
|
||||
REPLACE INTO t1(c0) VALUES('G%Dy&j6yjSU{Kk#Szx0Z#S_i4pkLq'), ("");
|
||||
REPLACE INTO t1(c0) VALUES("gNy.{w^bliF#ob4w8Bgg)");
|
||||
REPLACE INTO t1(c0) VALUES("N");
|
||||
INSERT INTO t2(c0) VALUES(-1849251169) ON DUPLICATE KEY UPDATE c0=752753855;
|
||||
REPLACE INTO t0(c0, c1) VALUES("FP!", 1921869132);
|
||||
INSERT INTO t2(c0) VALUES(1094103626);
|
||||
REPLACE INTO t0(c1) VALUES(944751702), (-1178854287), (-2060215925), (1541216475);
|
||||
REPLACE INTO t0(c1, c0) VALUES(1086836408, 'W');
|
||||
INSERT INTO t2(c0) VALUES(443788724) ON DUPLICATE KEY UPDATE c0=1546588654;
|
||||
REPLACE INTO t1(c0) VALUES("C]");
|
||||
INSERT /*+parallel(6) enable_parallel_dml*/ INTO t1(c0) VALUES("-1971421495") ON DUPLICATE KEY UPDATE c0='';
|
||||
INSERT INTO t2(c0) VALUES(-392421974), (-2012768933);
|
||||
REPLACE INTO t1(c0) VALUES("FtK<%7j6kT2|206T4OaoRlx,]mNN/"), ("eOtb0c_zm'a*U%{6g0/%l7BpQmY "), (""), (""), ("xa");
|
||||
REPLACE INTO t1(c0) VALUES('^.MC2C(*5BCTF^_QUVE+GIH)E');
|
||||
CREATE INDEX i260 USING HASH ON t1(c0(1)) global;
|
||||
INSERT INTO t2(c0) VALUES(269160292);
|
||||
REPLACE INTO t0(c0, c1) VALUES('''\\J^y9RwAo', 118491464), ('141916557', -381060933), ('6', 487694549), ('4|yJ', 1489403758), ("K", -1260108762), ("50774738", 791886485), ("iZYKo|<a^", 917882623);
|
||||
REPLACE INTO t0(c1, c0) VALUES(1090711076, ""), (-1557729036, "0"), (-1986474355, ']06B[]');
|
||||
REPLACE INTO t1(c0) VALUES('lXpUQ'), ('xbo'), ('W'), ('y1p3qByYNx.bym)/q4c'), ("-1750125326"), ('y');
|
||||
REPLACE INTO t1(c0) VALUES("s");
|
||||
INSERT /*+parallel(4) enable_parallel_dml*/ INTO t2(c0) VALUES(1600588072), (-2042045427), (-532544134), (-1174702315);
|
||||
REPLACE INTO t1(c0) VALUES('rF0Lll5');
|
||||
--enable_abort_on_error
|
||||
explain basic SELECT count(*) as rowCount FROM (SELECT /*+ USE_HASH (t1) */ DISTINCT t0.c0 AS t0c0, t0.c1 AS t0c1, t2.c0 AS t2c0, t1.c0 AS t1c0 FROM t0, t2, t1 WHERE t0.c1 ORDER BY t0.c0 DESC, t1.c0 DESC LIMIT 2147483647 OFFSET 0) as result WHERE concat(result.t0c0,'') IS NULL AND result.t0c1 = 398204275 AND result.t2c0 = 1489403758 AND concat(result.t1c0,'') = "q6h]zjLt)|[?S*C";
|
||||
SELECT count(*) as rowCount FROM (SELECT /*+ USE_HASH (t1) */ DISTINCT t0.c0 AS t0c0, t0.c1 AS t0c1, t2.c0 AS t2c0, t1.c0 AS t1c0 FROM t0, t2, t1 WHERE t0.c1 ORDER BY t0.c0 DESC, t1.c0 DESC LIMIT 2147483647 OFFSET 0) as result WHERE concat(result.t0c0,'') IS NULL AND result.t0c1 = 398204275 AND result.t2c0 = 1489403758 AND concat(result.t1c0,'') = "q6h]zjLt)|[?S*C";
|
||||
|
||||
connection syscon;
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
drop table t0;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t111_var;
|
||||
--sleep 2
|
||||
@ -0,0 +1,106 @@
|
||||
# owner: xiaoyi.xy
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
--result_format 4
|
||||
--explain_protocol 2
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists pk_t, t1, t2, t3, t4;
|
||||
--enable_warnings
|
||||
|
||||
create table pk_t(pk int primary key, c2 int);
|
||||
create table t1(c1 int, c2 int);
|
||||
create table t2(c1 int, c2 int);
|
||||
create table t3(c1 int, c2 int);
|
||||
create table t4(c1 int, c2 int);
|
||||
insert/*trace*/ into pk_t values(2,2),(3,3), (6,6), (7, 7);
|
||||
insert/*trace*/ into t1 values(NULL, 8), (NULL, 8), (2,2),(2,2), (3,3), (3,3), (4,4), (4,4),(7,7),(7, 7);
|
||||
insert/*trace*/ into t2 values(NULL, 3),(1, 1), (1,1), (2,2), (3,3), (6,6),(6,6),(9,9), (10,10);
|
||||
insert/*trace*/ into t3 values(1,3), (2,2);
|
||||
insert/*trace*/ into t4 values(1,2), (1,2), (2,3);
|
||||
|
||||
connection conn_admin;
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--echo
|
||||
--echo ********* basic merge join
|
||||
select /*+use_merge(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where exists(select 1 from t2 where t1.c1 = t2.c1);
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where not exists(select 1 from t2 where t1.c1 = t2.c1);
|
||||
|
||||
|
||||
--echo
|
||||
--echo ********* nullsafe equal condition
|
||||
select /*+use_merge(t1 t2)*/ * from t1, t2 where t1.c1 <=> t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 left join t2 on t1.c1 <=> t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 right join t2 on t1.c1 <=> t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 full join t2 on t1.c1 <=> t2.c1;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where exists(select 1 from t2 where t1.c1 <=> t2.c1);
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where not exists(select 1 from t2 where t1.c1 <=> t2.c1);
|
||||
|
||||
--echo
|
||||
--echo ******** contain other condition
|
||||
select /*+use_merge(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where exists(select 1 from t2 where t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10) ;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2)*/ * from t1 where not exists(select 1 from t2 where t1.c1 = t2.c1 and t1.c2 * t2.c2 < 10) ;
|
||||
|
||||
--echo
|
||||
--echo ************ equel condition表达式左右子表达式分别来自join operator的右边和左边
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1, t2 where t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1 where exists(select 1 from t2 where t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10) ;
|
||||
--echo
|
||||
select /*+use_merge(t1 t2) leading(t1 t2)*/ * from t1 where not exists(select 1 from t2 where t2.c1 = t1.c1 and t1.c2 * t2.c2 < 10) ;
|
||||
|
||||
|
||||
--echo
|
||||
--echo ******* 测试左表为唯一键时不需要进cache的场景, 仅支持inner join
|
||||
select /*+use_merge(pk_t t2) leading(pk_t t2)*/ * from pk_t, t2 where pk_t.pk = t2.c1 and pk_t.c2 * t2.c2 < 10;
|
||||
|
||||
--echo ******* 测试不进cache, 且左边最后一行与右边最后一行匹配的场景
|
||||
select /*+use_merge(pk_t t1) leading(pk_t t1)*/ * from pk_t, t1 where pk_t.pk = t1.c1;
|
||||
|
||||
--echo
|
||||
select/*+use_merge(t3 t4) leading(t3 t4)*/ * from t3 left join t4 on t3.c1 = t4.c1 and t3.c2 < t4.c2;
|
||||
|
||||
drop table pk_t;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
|
||||
connection conn_admin;
|
||||
--sleep 2
|
||||
@ -0,0 +1,49 @@
|
||||
# owner: peihan.dph
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
|
||||
connect (syscon, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
--error 0,1051
|
||||
drop table t1;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(c1 int, c2 varchar(10), c3 decimal);
|
||||
|
||||
insert into t1 values(0, 'abc', '0.1');
|
||||
insert into t1 values(1, 'def', '1.1');
|
||||
insert into t1 values(2, 'ghi', '2.1');
|
||||
insert into t1 values(3, 'jkl', '3.1');
|
||||
insert into t1 values(4, 'mno', '4.1');
|
||||
insert into t1 values(5, 'pqr', '5.1');
|
||||
insert into t1 values(6, 'stu', '6.1');
|
||||
insert into t1 values(7, 'vwx', '7.1');
|
||||
insert into t1 values(8, 'yz', '8.1');
|
||||
insert into t1 values(9, null, null);
|
||||
|
||||
connection syscon;
|
||||
sleep 2;
|
||||
|
||||
|
||||
--result_format 4
|
||||
--explain_protocol 1
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
#set @@ob_enable_trace_log=1;
|
||||
#set @@ob_log_level='trace';
|
||||
|
||||
set ob_enable_plan_cache = 0;
|
||||
select /*+ tracing(0) */ * from t1;
|
||||
select /*+ tracing(1) */ * from t1;
|
||||
|
||||
connection syscon;
|
||||
sleep 2;
|
||||
|
||||
connection default;
|
||||
drop table t1;
|
||||
--sleep 2
|
||||
@ -0,0 +1,95 @@
|
||||
# owner: xiaoyi.xy
|
||||
# owner group: sql2
|
||||
# tags: optimizer
|
||||
--result_format 4
|
||||
--explain_protocol 2
|
||||
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
create table t1(c1 int, c2 int primary key);
|
||||
create table t2(c1 int primary key, c2 int);
|
||||
insert/*trace*/ into t1 values(1,1), (1, 2), (null, 3), (2, 4), (3,5);
|
||||
insert/*trace*/ into t2 values(1, 1), (3, 3), (5,5), (6, null);
|
||||
|
||||
connection conn_admin;
|
||||
connection default;
|
||||
set @@ob_enable_plan_cache = 0;
|
||||
|
||||
--echo ============================== no use batch nested loop join =========
|
||||
set _nlj_batching_enabled = false;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
|
||||
--echo ============================== use batch nested loop join =========
|
||||
set _nlj_batching_enabled = true;
|
||||
# batch nested loop 场景存储层迭代器的迭代器在吐行时逻辑还需处理下,本周修改后打开
|
||||
|
||||
#--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c1;
|
||||
#--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1, t2 where t1.c1 = t2.c2;
|
||||
|
||||
#--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c1;
|
||||
#--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 left join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 right join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c1;
|
||||
--echo
|
||||
select /*+use_nl(t1 t2) leading(t1 t2)*/ * from t1 full join t2 on t1.c1 = t2.c2;
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c2);
|
||||
--echo
|
||||
select /*+use_nl(t1, t2)*/ * from t1 where not exists (select 1 from t2 where t1.c1 = t2.c1);
|
||||
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
connection conn_admin;
|
||||
|
||||
--sleep 2
|
||||
Reference in New Issue
Block a user