Skip to content

Commit 25dec10

Browse files
committed
wl#9048: Add "ORDER BY" and "--sorted_result" in suite/gcol as needed for tests have repeatable results in NDB.
1 parent 04e8791 commit 25dec10

15 files changed

+355
-323
lines changed

mysql-test/suite/gcol/inc/gcol_column_def_options.inc

+12-11
Original file line numberDiff line numberDiff line change
@@ -246,15 +246,15 @@ CREATE TABLE t1(a int, b int as (a + 1),
246246
c varchar(12) as ("aaaabb") stored, d blob as (c));
247247
INSERT INTO t1(a) VALUES(1),(3);
248248
SHOW CREATE TABLE t1;
249-
SELECT * FROM t1;
249+
SELECT * FROM t1 order by a;
250250
CREATE TABLE t2 LIKE t1;
251251
SHOW CREATE TABLE t2;
252252
CREATE TABLE t3 AS SELECT * FROM t1;
253253
SHOW CREATE TABLE t3;
254-
SELECT * FROM t3;
254+
SELECT * FROM t3 order by a;
255255
CREATE TABLE t4 AS SELECT b,c,d FROM t1;
256256
SHOW CREATE TABLE t4;
257-
SELECT * FROM t4;
257+
SELECT * FROM t4 order by b;
258258
DROP TABLE t1,t2,t3,t4;
259259

260260
--echo # Bug#21025003:WL8149:ASSERTION `CTX->NUM_TO_DROP_FK
@@ -378,12 +378,13 @@ CREATE TABLE t1 (c CHAR(10) CHARSET latin1 COLLATE latin1_bin,
378378
c_ci CHAR(10) CHARSET latin1 COLLATE latin1_general_ci GENERATED ALWAYS AS (c),
379379
c_cs CHAR(10) CHARSET latin1 COLLATE latin1_general_cs GENERATED ALWAYS AS (c));
380380

381-
INSERT INTO t1 (c) VALUES ('a'), ('A');
381+
INSERT INTO t1 (c) VALUES ('a'), ('A'), ('b');
382382

383383
SELECT * FROM t1 ORDER BY c;
384-
SELECT * FROM t1 ORDER BY c_ci;
384+
SELECT * FROM t1 ORDER BY c_ci, c;
385385
SELECT * FROM t1 ORDER BY c_cs;
386386

387+
--sorted_result
387388
SELECT c, c_ci REGEXP 'A', c_cs REGEXP 'A' FROM t1;
388389

389390
DROP TABLE t1;
@@ -472,15 +473,15 @@ CREATE TABLE t1(
472473
INSERT INTO t1(col1, col2, col3) VALUES
473474
(1, 10, 100), (2, 20, 200);
474475

475-
SELECT * FROM t1;
476+
SELECT * FROM t1 order by col1;
476477

477478
# Change expression of a virtual generated column
478479
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 * col3) VIRTUAL;
479-
SELECT * FROM t1;
480+
SELECT * FROM t1 order by col1;
480481

481482
# Change expression of a stored generated column
482483
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 / col3) STORED;
483-
SELECT * FROM t1;
484+
SELECT * FROM t1 order by col1;
484485

485486
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 + col3) VIRTUAL;
486487
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 - col3) STORED;
@@ -495,13 +496,13 @@ if ($support_virtual_index)
495496
{
496497
# Change expression of a virtual generated column, with index
497498
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 * col3) VIRTUAL;
498-
SELECT * FROM t1;
499-
SELECT vgc1 FROM t1;
499+
SELECT * FROM t1 order by col1;
500+
SELECT vgc1 FROM t1 order by vgc1;
500501
}
501502

502503
# Change expression of a stored generated column, with index
503504
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 / col3) STORED;
504-
SELECT * FROM t1;
505+
SELECT * FROM t1 order by col1;
505506
SELECT sgc1 FROM t1 order by sgc1;
506507

507508
if ($support_virtual_index)

mysql-test/suite/gcol/inc/gcol_keys.inc

+9
Original file line numberDiff line numberDiff line change
@@ -386,14 +386,17 @@ CREATE TABLE t1 (f1 int, gc int AS (f1 + 1) STORED PRIMARY KEY);
386386
INSERT INTO t1(f1) VALUES (1),(2),(0),(9),(3),(4),(8),(7),(5),(6);
387387
ANALYZE TABLE t1;
388388
--echo # Should use index
389+
--sorted_result
389390
SELECT * FROM t1 WHERE f1 + 1 > 7;
390391
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 > 7;
391392
SELECT * FROM information_schema.OPTIMIZER_TRACE;
392393

393394
SELECT * FROM t1 WHERE f1 + 1 = 7;
394395
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 = 7;
396+
--sorted_result
395397
SELECT * FROM t1 WHERE f1 + 1 IN (7,5);
396398
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 IN(7,5);
399+
--sorted_result
397400
SELECT * FROM t1 WHERE f1 + 1 BETWEEN 5 AND 7;
398401
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 BETWEEN 5 AND 7;
399402

@@ -415,6 +418,7 @@ EXPLAIN SELECT f1 + 1, MAX(GC)
415418
FROM t1 IGNORE KEY FOR GROUP BY(PRIMARY) GROUP BY f1 + 1;
416419

417420
--echo # Shouldn't use index
421+
--sorted_result
418422
SELECT * FROM t1 WHERE f1 + 1 > 7.0;
419423
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 > 7.0;
420424

@@ -437,9 +441,11 @@ INSERT INTO t1(f1) VALUES
437441
(070707),(080808);
438442
ANALYZE TABLE t1;
439443

444+
--sorted_result
440445
SELECT * FROM t1 WHERE f1 + 1 > 070707;
441446
--echo # INT column & index should be picked
442447
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 > 070707;
448+
--sorted_result
443449
SELECT * FROM t1 WHERE f1 + 1 > CAST(070707 AS DATE);
444450
--echo # DATE column & index should be picked
445451
EXPLAIN SELECT * FROM t1 WHERE f1 + 1 > CAST(070707 AS DATE);
@@ -755,18 +761,21 @@ INSERT INTO employees (data) VALUES('{"id": 2, "name": "Joe"}');
755761
let $query= SELECT * FROM employees WHERE JSON_EXTRACT(data, '\$.name') = 'Jane';
756762
ANALYZE TABLE employees;
757763
--eval EXPLAIN $query
764+
--sorted_result
758765
--eval $query
759766
# The index on name1 should not be used, since it contains
760767
# double-quoted values which don't match the string literal in the
761768
# predicate. The query used to return zero rows.
762769
ALTER TABLE employees ADD INDEX name_idx1(name1);
763770
ANALYZE TABLE employees;
764771
--eval EXPLAIN $query
772+
--sorted_result
765773
--eval $query
766774
# The index on name2 contains unquoted strings and can be used.
767775
ALTER TABLE employees ADD INDEX name_idx2(name2);
768776
ANALYZE TABLE employees;
769777
--eval EXPLAIN $query
778+
--sorted_result
770779
--eval $query
771780
DROP TABLE employees;
772781
--echo #

mysql-test/suite/gcol/inc/gcol_select.inc

+21-3
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ eval explain $s;
6969

7070
--echo # select_type=PRIMARY, type=index,ALL
7171
let $s = select * from t1 where b in (select c from t3);
72+
--sorted_result
7273
eval $s;
7374
eval explain $s;
7475

@@ -80,11 +81,13 @@ eval explain $s;
8081
--echo # select_type=UNION, type=system
8182
--echo # select_type=UNION RESULT, type=<union1,2>
8283
let $s = select * from t1 union select * from t2;
84+
--sorted_result
8385
eval $s;
8486
eval explain $s;
8587

8688
--echo # select_type=DERIVED, type=system
8789
let $s = select * from (select a,b,c from t1) as t11;
90+
--sorted_result
8891
eval $s;
8992
eval explain $s;
9093

@@ -116,21 +119,25 @@ eval explain $s;
116119
--echo ###
117120
--echo # SELECT * FROM tbl_name WHERE <gcol expr>
118121
let $s = select * from t3 where c >= -2;
122+
--sorted_result
119123
eval $s;
120124
eval explain $s;
121125

122126
--echo # SELECT * FROM tbl_name WHERE <non-gcol expr>
123127
let $s = select * from t3 where a between 1 and 2;
128+
--sorted_result
124129
eval $s;
125130
eval explain $s;
126131

127132
--echo # SELECT * FROM tbl_name WHERE <non-indexed gcol expr>
128133
let $s = select * from t3 where b between -2 and -1;
134+
--sorted_result
129135
eval $s;
130136
eval explain $s;
131137

132138
--echo # SELECT * FROM tbl_name WHERE <indexed gcol expr>
133139
let $s = select * from t3 where c between -2 and -1;
140+
--sorted_result
134141
eval $s;
135142
eval explain $s;
136143

@@ -769,6 +776,7 @@ INSERT INTO cc (
769776
(1, '2008-01-23', '11:14:24.032949', '2004-10-02 20:31:15.022553', 't');
770777
SET @save_old_sql_mode= @@sql_mode;
771778
SET sql_mode="";
779+
--disable_warnings
772780
SELECT DISTINCT alias1.col_varchar_key AS field1
773781
FROM ( cc AS alias1 STRAIGHT_JOIN
774782
(( cc AS alias2 STRAIGHT_JOIN cc AS alias3 ON
@@ -781,6 +789,7 @@ ORDER BY field1, alias1.col_date_key, field1 ASC, field1 DESC,
781789
alias1.col_time_key ASC, field1;
782790
DROP TABLE cc;
783791
SET sql_mode=@save_old_sql_mode;
792+
--enable_warnings
784793

785794
--echo #
786795
--echo # Bug#20797941: WL8149:ASSERTION !TABLE ||
@@ -833,12 +842,14 @@ DROP TABLE t2, t3;
833842
--echo #
834843
--echo # Bug#21317507:GC: STORED COLUMN REJECTED, BUT VIRTUAL IS ACCEPTED
835844
--echo #
845+
# TODO: Figure out appropriate NDB tests here
836846
let $innodb_engine = `SELECT @@session.default_storage_engine='innodb'`;
847+
let $myisam_engine = `SELECT @@session.default_storage_engine='MyISAM'`;
837848
CREATE TABLE t1(a INT);
838849
INSERT INTO t1 VALUES(2147483647);
839850
--error 1221
840851
ALTER TABLE t1 ADD INDEX idx(a), WITH VALIDATION;
841-
if (!$innodb_engine)
852+
if ($myisam_engine)
842853
{
843854
--echo Should fail and column shouldn't be added
844855
--error 1264
@@ -890,7 +901,7 @@ if ($innodb_engine)
890901
ALTER TABLE t1 CHANGE h i INT AS (a) VIRTUAL, WITHOUT VALIDATION,
891902
ALGORITHM=INPLACE;
892903
}
893-
if (!$innodb_engine)
904+
if ($myisam_engine)
894905
{
895906
--error 1845, 1846
896907
ALTER TABLE t1 CHANGE h i INT AS (a) VIRTUAL, WITHOUT VALIDATION,
@@ -906,7 +917,7 @@ ALTER TABLE t1 ADD COLUMN c SMALLINT AS (a) VIRTUAL, WITH VALIDATION,
906917
ALTER TABLE t1 ADD COLUMN d SMALLINT AS (a) VIRTUAL, WITH VALIDATION,
907918
ALGORITHM=INPLACE, LOCK=EXCLUSIVE;
908919
--echo Shouldn't fail on Innodb
909-
if (!$innodb_engine)
920+
if ($myisam_engine)
910921
{
911922
--error 1845, 1846
912923
ALTER TABLE t1 ADD COLUMN e SMALLINT AS (a) VIRTUAL, WITHOUT VALIDATION,
@@ -988,6 +999,7 @@ SELECT * FROM t1
988999
WHERE i1 > 41 AND i1 <= 43;
9891000

9901001
eval EXPLAIN $query1;
1002+
--sorted_result
9911003
eval $query1;
9921004

9931005
if ($support_virtual_index)
@@ -1002,6 +1014,7 @@ SELECT * FROM t1
10021014
WHERE v1 > 41 AND v1 <= 43;
10031015

10041016
eval EXPLAIN $query2;
1017+
--sorted_result
10051018
eval $query2;
10061019

10071020
DROP TABLE t0, t1;
@@ -1083,6 +1096,7 @@ WHERE ( t3.pk IN
10831096
AND t1.i1 <= t3.i2_key;
10841097

10851098
eval EXPLAIN $query;
1099+
--sorted_result
10861100
eval $query;
10871101

10881102
--echo #
@@ -1109,6 +1123,7 @@ WHERE ( t3.pk IN
11091123
AND t1.i1 <= t3.i2_key;
11101124

11111125
eval EXPLAIN $query;
1126+
--sorted_result
11121127
eval $query;
11131128

11141129
--echo #
@@ -1136,6 +1151,7 @@ WHERE ( t3.pk IN
11361151
AND t1.i1 <= t3.i2_key;
11371152

11381153
eval EXPLAIN $query;
1154+
--sorted_result
11391155
eval $query;
11401156

11411157
--echo #
@@ -1173,6 +1189,7 @@ WHERE ( t3.pk IN
11731189
AND t1.i1 <= t3.i2_key;
11741190

11751191
eval EXPLAIN $query;
1192+
--sorted_result
11761193
eval $query;
11771194

11781195
--echo #
@@ -1209,6 +1226,7 @@ WHERE ( t3.pk IN
12091226
AND t1.i1 <= t3.i2_key;
12101227

12111228
eval EXPLAIN $query;
1229+
--sorted_result
12121230
eval $query;
12131231

12141232
DROP TABLE t1, t2, t3, t4;

mysql-test/suite/gcol/inc/gcol_trigger_sp.inc

+4
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ select * from t1;
6363
select * from t2;
6464

6565
insert into t1 (a) values (10);
66+
--sorted_result
6667
select * from t1;
6768
select * from t2;
6869

6970
insert into t1 (a) values (600);
71+
--sorted_result
7072
select * from t1;
7173
--replace_column 1 <timestamp>
7274
select * from t2;
@@ -103,7 +105,9 @@ delete from t1;
103105

104106
call p1();
105107

108+
--sorted_result
106109
select * from t2;
110+
--sorted_result
107111
select * from t1;
108112

109113
drop table t1,t2;

mysql-test/suite/gcol/inc/gcol_view.inc

+12-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ analyze table t1;
2424

2525
# simple view
2626
create view v1 (d,e) as select abs(b), abs(c) from t1;
27+
--sorted_result
2728
select d,e from v1;
2829
select is_updatable from information_schema.views where table_name='v1';
2930

@@ -65,6 +66,7 @@ create view v1 as select distinct c from t1;
6566
select * from v1;
6667
--replace_column 10 X
6768
explain select * from v1;
69+
--sorted_result
6870
select * from t1;
6971
drop view v1;
7072
drop table t1;
@@ -139,6 +141,7 @@ create table t2 (a2 int,
139141
insert into t1 (a1) values (1), (2);
140142
insert into t2 (a2) values (2), (3);
141143
create view v1 as select * from t1,t2 union all select * from t1,t2;
144+
--sorted_result
142145
select * from v1;
143146
drop view v1;
144147
drop table t1, t2;
@@ -175,19 +178,21 @@ create table t1 (a int,
175178
c int generated always as (-a) stored);
176179
insert into t1 (a) values (1),(1),(2),(2),(3),(3);
177180
create view v1 as select b from t1;
181+
--sorted_result
178182
select distinct b from v1;
179-
select distinct b from v1 limit 2;
180-
select distinct b from t1 limit 2;
181-
prepare stmt1 from "select distinct b from v1 limit 2";
183+
select distinct b from v1 order by b limit 2;
184+
select distinct b from t1 order by b limit 2;
185+
prepare stmt1 from "select distinct b from v1 order by b limit 2";
182186
execute stmt1;
183187
execute stmt1;
184188
deallocate prepare stmt1;
185189
drop view v1;
186190
create view v1 as select c from t1;
191+
--sorted_result
187192
select distinct c from v1;
188-
select distinct c from v1 limit 2;
189-
select distinct c from t1 limit 2;
190-
prepare stmt1 from "select distinct c from v1 limit 2";
193+
select distinct c from v1 order by c limit 2;
194+
select distinct c from t1 order by c limit 2;
195+
prepare stmt1 from "select distinct c from v1 order by c limit 2";
191196
execute stmt1;
192197
execute stmt1;
193198
deallocate prepare stmt1;
@@ -207,6 +212,7 @@ insert into v1 (a) values (1);
207212
insert into v1 (a) values (3);
208213
# simple insert with ignore
209214
insert ignore into v1 (a) values (2),(3),(0);
215+
--sorted_result
210216
select * from t1;
211217
drop view v1;
212218
drop table t1;

0 commit comments

Comments
 (0)