diff options
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/select_found.result | 129 | ||||
-rw-r--r-- | mysql-test/t/select_found.test | 58 |
2 files changed, 187 insertions, 0 deletions
diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result index 7b38515cf70..7db4ad0a474 100644 --- a/mysql-test/r/select_found.result +++ b/mysql-test/r/select_found.result @@ -363,3 +363,132 @@ select found_rows(); found_rows() 5 drop table t1; +CREATE TABLE t1(id1 INT); +CREATE TABLE t2(id2 INT); +INSERT INTO t1 VALUES(1),(2); +INSERT INTO t2 VALUES(2),(3); +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL SELECT "bar"; +foo +foo +bar +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL SELECT "bar" LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL SELECT id2 FROM t2; +id1 +1 +2 +2 +3 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL SELECT id2 FROM t2 LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +4 +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL (SELECT "bar"); +foo +foo +bar +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL (SELECT "bar") LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL (SELECT id2 FROM t2); +id1 +1 +2 +2 +3 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL (SELECT id2 FROM t2) LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +4 +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar"); +foo +foo +bar +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar") LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2); +id1 +1 +2 +2 +3 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2) LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +4 +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL SELECT "bar"; +foo +foo +bar +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL SELECT "bar" LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL SELECT id2 FROM t2 LIMIT 0; +id1 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL SELECT id2 FROM t2 LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +4 +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar" LIMIT 0); +foo +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar" LIMIT 0) LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +0 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2 LIMIT 0); +id1 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2 LIMIT 0) LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +0 +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar"); +foo +bar +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar") LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +1 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2); +id1 +2 +3 +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2) LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar" LIMIT 0); +foo +foo +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar" LIMIT 0) LIMIT 0; +foo +SELECT FOUND_ROWS(); +FOUND_ROWS() +1 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2 LIMIT 0); +id1 +1 +2 +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2 LIMIT 0) LIMIT 0; +id1 +SELECT FOUND_ROWS(); +FOUND_ROWS() +2 +DROP TABLE t1,t2; diff --git a/mysql-test/t/select_found.test b/mysql-test/t/select_found.test index 33613697722..49395fbaebf 100644 --- a/mysql-test/t/select_found.test +++ b/mysql-test/t/select_found.test @@ -287,3 +287,61 @@ select found_rows(); select sql_calc_found_rows * from t1 order by c1 limit 2,1; select found_rows(); drop table t1; + +# +#MDEV-18202 SQL_CALC_FOUND_ROWS do not work with UNION ALL +# +# +# NO LIMIT IN BRACES +# +CREATE TABLE t1(id1 INT); +CREATE TABLE t2(id2 INT); +INSERT INTO t1 VALUES(1),(2); +INSERT INTO t2 VALUES(2),(3); + +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL SELECT "bar"; +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL SELECT "bar" LIMIT 0; +SELECT FOUND_ROWS(); +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL SELECT id2 FROM t2; +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL SELECT id2 FROM t2 LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL (SELECT "bar"); +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL (SELECT "bar") LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL (SELECT id2 FROM t2); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL (SELECT id2 FROM t2) LIMIT 0; +SELECT FOUND_ROWS(); +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar"); +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar") LIMIT 0; +SELECT FOUND_ROWS(); +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2); +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2) LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL SELECT "bar"; +(SELECT SQL_CALC_FOUND_ROWS "foo") UNION ALL SELECT "bar" LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL SELECT id2 FROM t2 LIMIT 0; +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1) UNION ALL SELECT id2 FROM t2 LIMIT 0; +SELECT FOUND_ROWS(); +# +#LIMIT IN BRACES +# +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar" LIMIT 0); +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar" LIMIT 0) LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2 LIMIT 0); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2 LIMIT 0) LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar"); +(SELECT SQL_CALC_FOUND_ROWS "foo" LIMIT 0) UNION ALL (SELECT "bar") LIMIT 0; +SELECT FOUND_ROWS(); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2); +(SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 LIMIT 0) UNION ALL (SELECT id2 FROM t2) LIMIT 0; +SELECT FOUND_ROWS(); +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar" LIMIT 0); +SELECT SQL_CALC_FOUND_ROWS "foo" UNION ALL (SELECT "bar" LIMIT 0) LIMIT 0; +SELECT FOUND_ROWS(); +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2 LIMIT 0); +SELECT SQL_CALC_FOUND_ROWS id1 FROM t1 UNION ALL (SELECT id2 FROM t2 LIMIT 0) LIMIT 0; +SELECT FOUND_ROWS(); +DROP TABLE t1,t2; |