File tree Expand file tree Collapse file tree 3 files changed +59
-0
lines changed Expand file tree Collapse file tree 3 files changed +59
-0
lines changed Original file line number Diff line number Diff line change @@ -7221,3 +7221,44 @@ EXPLAIN
7221
7221
}
7222
7222
DROP VIEW v2;
7223
7223
DROP TABLE t1,t2;
7224
+ #
7225
+ # MDEV-11103: pushdown condition with ANY subquery
7226
+ #
7227
+ CREATE TABLE t1 (i INT);
7228
+ CREATE OR REPLACE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT * FROM t1;
7229
+ INSERT INTO t1 VALUES (1),(2);
7230
+ EXPLAIN FORMAT=JSON
7231
+ SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
7232
+ EXPLAIN
7233
+ {
7234
+ "query_block": {
7235
+ "select_id": 1,
7236
+ "table": {
7237
+ "table_name": "<derived3>",
7238
+ "access_type": "ALL",
7239
+ "rows": 2,
7240
+ "filtered": 100,
7241
+ "attached_condition": "<nop>((v1.i <= 3))",
7242
+ "materialized": {
7243
+ "query_block": {
7244
+ "select_id": 3,
7245
+ "table": {
7246
+ "table_name": "t1",
7247
+ "access_type": "ALL",
7248
+ "rows": 2,
7249
+ "filtered": 100,
7250
+ "attached_condition": "<nop>((t1.i <= 3))"
7251
+ }
7252
+ }
7253
+ }
7254
+ }
7255
+ }
7256
+ }
7257
+ Warnings:
7258
+ Note 1249 Select 2 was reduced during optimization
7259
+ SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
7260
+ i
7261
+ 1
7262
+ 2
7263
+ DROP VIEW v1;
7264
+ DROP TABLE t1;
Original file line number Diff line number Diff line change @@ -1011,3 +1011,19 @@ SELECT * FROM t1 LEFT JOIN v2 ON a = b WHERE b IS NULL;
1011
1011
1012
1012
DROP VIEW v2;
1013
1013
DROP TABLE t1,t2;
1014
+
1015
+ --echo #
1016
+ --echo # MDEV-11103: pushdown condition with ANY subquery
1017
+ --echo #
1018
+
1019
+ CREATE TABLE t1 (i INT);
1020
+ CREATE OR REPLACE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT * FROM t1;
1021
+ INSERT INTO t1 VALUES (1),(2);
1022
+
1023
+ EXPLAIN FORMAT=JSON
1024
+ SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
1025
+
1026
+ SELECT * FROM v1 WHERE i <= ANY ( SELECT 3 );
1027
+
1028
+ DROP VIEW v1;
1029
+ DROP TABLE t1;
Original file line number Diff line number Diff line change @@ -649,6 +649,8 @@ class Item_func_nop_all :public Item_func_not_all
649
649
longlong val_int ();
650
650
const char *func_name () const { return " <nop>" ; }
651
651
Item *neg_transformer (THD *thd);
652
+ Item *get_copy (THD *thd, MEM_ROOT *mem_root)
653
+ { return get_item_copy<Item_func_nop_all>(thd, mem_root, this ); }
652
654
};
653
655
654
656
You can’t perform that action at this time.
0 commit comments