diff options
author | unknown <bell@sanja.is.com.ua> | 2004-05-10 13:29:02 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-05-10 13:29:02 +0300 |
commit | f71f59731beaa2c911bdb3efc3b26fc6dcd19b1b (patch) | |
tree | 30c96c955664acef9b9170b5099c684cdee484fc /tests | |
parent | c6bc3cfb8457332b4519efcd10339c2632626acb (diff) | |
download | mariadb-git-f71f59731beaa2c911bdb3efc3b26fc6dcd19b1b.tar.gz |
treat parameter as constant in ORDER BY check of fields in SELECT list(Bug #3686)
sql/sql_select.cc:
treat parameter as constant in ORDER BY check of fields in SELECT list
tests/client_test.c:
test of using parameters in SELECT list with ORDER BY
Diffstat (limited to 'tests')
-rw-r--r-- | tests/client_test.c | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/tests/client_test.c b/tests/client_test.c index d382377fe49..ba70bcd7fa7 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -9453,7 +9453,6 @@ select col1 FROM t1 where col1=2"); myquery(rc); } - /* This tests for various mysql_send_long_data bugs described in #1664 */ @@ -9595,6 +9594,51 @@ static void test_bug1664() myquery(rc); } + +static void test_order_param() +{ + MYSQL_STMT *stmt; + int rc; + + myheader("test_order_param"); + + rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1"); + myquery(rc); + + rc= mysql_query(mysql,"CREATE TABLE t1(a INT, b char(10))"); + myquery(rc); + + stmt= mysql_simple_prepare(mysql, + "select sum(a) + 200, 1 from t1 \ +union distinct \ +select sum(a) + 200, 1 from t1 \ +group by b "); + check_stmt(stmt); + + mysql_stmt_close(stmt); + + stmt= mysql_simple_prepare(mysql, + "select sum(a) + 200, ? from t1 \ +group by b \ +union distinct \ +select sum(a) + 200, 1 from t1 \ +group by b "); + check_stmt(stmt); + + stmt= mysql_simple_prepare(mysql, + "select sum(a) + 200, ? from t1 \ +union distinct \ +select sum(a) + 200, 1 from t1 \ +group by b "); + check_stmt(stmt); + + mysql_stmt_close(stmt); + + rc= mysql_query(mysql, "DROP TABLE t1"); + myquery(rc); +} + + /* Read and parse arguments and MySQL options from my.cnf */ @@ -9877,6 +9921,8 @@ int main(int argc, char **argv) test_union2(); /* repeatable execution of union (Bug #3577) */ test_bug1664(); /* test for bugs in mysql_stmt_send_long_data() call (Bug #1664) */ + test_order_param(); /* ORDER BY with parameters in select list + (Bug #3686 */ end_time= time((time_t *)0); total_time+= difftime(end_time, start_time); |