Commit 5384fbc0 authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1

into sanja.is.com.ua:/home/bell/mysql/bk/work-union-4.1
parents 216c3a3b 7defcb47
...@@ -367,7 +367,7 @@ JOIN::prepare(Item ***rref_pointer_array, ...@@ -367,7 +367,7 @@ JOIN::prepare(Item ***rref_pointer_array,
{ {
if (item->with_sum_func) if (item->with_sum_func)
flag|=1; flag|=1;
else if (!(flag & 2) && !item->const_item()) else if (!(flag & 2) && !item->const_during_execution())
flag|=2; flag|=2;
} }
if (flag == 3) if (flag == 3)
......
...@@ -9453,7 +9453,6 @@ select col1 FROM t1 where col1=2"); ...@@ -9453,7 +9453,6 @@ select col1 FROM t1 where col1=2");
myquery(rc); myquery(rc);
} }
/* /*
This tests for various mysql_send_long_data bugs described in #1664 This tests for various mysql_send_long_data bugs described in #1664
*/ */
...@@ -9595,6 +9594,51 @@ static void test_bug1664() ...@@ -9595,6 +9594,51 @@ static void test_bug1664()
myquery(rc); 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 Read and parse arguments and MySQL options from my.cnf
*/ */
...@@ -9877,6 +9921,8 @@ int main(int argc, char **argv) ...@@ -9877,6 +9921,8 @@ int main(int argc, char **argv)
test_union2(); /* repeatable execution of union (Bug #3577) */ test_union2(); /* repeatable execution of union (Bug #3577) */
test_bug1664(); /* test for bugs in mysql_stmt_send_long_data() test_bug1664(); /* test for bugs in mysql_stmt_send_long_data()
call (Bug #1664) */ call (Bug #1664) */
test_order_param(); /* ORDER BY with parameters in select list
(Bug #3686 */
end_time= time((time_t *)0); end_time= time((time_t *)0);
total_time+= difftime(end_time, start_time); total_time+= difftime(end_time, start_time);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment