mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
several bug fixes and tests
mysql-test/mysql-test-run.sh: Fix for LOAD DATA LOCAL ... mysql-test/r/select_found.result: Added result for a new test of combo of options for FOUND_ROWS and BUFFER_RESULT mysql-test/t/select_found.test: Added test for combo of options for BUFFER_RESULT and FOUND_ROWS sql/sql_select.cc: Added fix for combo of options for BUFFER_RESULT and FOUND_ROWS
This commit is contained in:
@ -730,6 +730,7 @@ start_master()
|
|||||||
--server-id=1 \
|
--server-id=1 \
|
||||||
--basedir=$MY_BASEDIR \
|
--basedir=$MY_BASEDIR \
|
||||||
--port=$MASTER_MYPORT \
|
--port=$MASTER_MYPORT \
|
||||||
|
--local-infile \
|
||||||
--exit-info=256 \
|
--exit-info=256 \
|
||||||
--core \
|
--core \
|
||||||
--datadir=$MASTER_MYDDIR \
|
--datadir=$MASTER_MYDDIR \
|
||||||
@ -749,6 +750,7 @@ start_master()
|
|||||||
--server-id=1 --rpl-recovery-rank=1 \
|
--server-id=1 --rpl-recovery-rank=1 \
|
||||||
--basedir=$MY_BASEDIR --init-rpl-role=master \
|
--basedir=$MY_BASEDIR --init-rpl-role=master \
|
||||||
--port=$MASTER_MYPORT \
|
--port=$MASTER_MYPORT \
|
||||||
|
--local-infile \
|
||||||
--datadir=$MASTER_MYDDIR \
|
--datadir=$MASTER_MYDDIR \
|
||||||
--pid-file=$MASTER_MYPID \
|
--pid-file=$MASTER_MYPID \
|
||||||
--socket=$MASTER_MYSOCK \
|
--socket=$MASTER_MYSOCK \
|
||||||
|
@ -20,6 +20,12 @@ a b
|
|||||||
select found_rows();
|
select found_rows();
|
||||||
FOUND_ROWS()
|
FOUND_ROWS()
|
||||||
8
|
8
|
||||||
|
select SQL_BUFFER_RESULT SQL_CALC_FOUND_ROWS * from t1 limit 1;
|
||||||
|
a b
|
||||||
|
1 2
|
||||||
|
select found_rows();
|
||||||
|
FOUND_ROWS()
|
||||||
|
8
|
||||||
select SQL_CALC_FOUND_ROWS * from t1 order by b desc limit 1;
|
select SQL_CALC_FOUND_ROWS * from t1 order by b desc limit 1;
|
||||||
a b
|
a b
|
||||||
8 9
|
8 9
|
||||||
|
@ -9,6 +9,8 @@ select SQL_CALC_FOUND_ROWS * from t1;
|
|||||||
select found_rows();
|
select found_rows();
|
||||||
select SQL_CALC_FOUND_ROWS * from t1 limit 1;
|
select SQL_CALC_FOUND_ROWS * from t1 limit 1;
|
||||||
select found_rows();
|
select found_rows();
|
||||||
|
select SQL_BUFFER_RESULT SQL_CALC_FOUND_ROWS * from t1 limit 1;
|
||||||
|
select found_rows();
|
||||||
select SQL_CALC_FOUND_ROWS * from t1 order by b desc limit 1;
|
select SQL_CALC_FOUND_ROWS * from t1 order by b desc limit 1;
|
||||||
select found_rows();
|
select found_rows();
|
||||||
select SQL_CALC_FOUND_ROWS distinct b from t1 limit 1;
|
select SQL_CALC_FOUND_ROWS distinct b from t1 limit 1;
|
||||||
|
@ -187,7 +187,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
|||||||
TABLE *tmp_table;
|
TABLE *tmp_table;
|
||||||
int error, tmp_error;
|
int error, tmp_error;
|
||||||
bool need_tmp,hidden_group_fields;
|
bool need_tmp,hidden_group_fields;
|
||||||
bool simple_order,simple_group,no_order, skip_sort_order;
|
bool simple_order,simple_group,no_order, skip_sort_order, buffer_result;
|
||||||
Item::cond_result cond_value;
|
Item::cond_result cond_value;
|
||||||
SQL_SELECT *select;
|
SQL_SELECT *select;
|
||||||
DYNAMIC_ARRAY keyuse;
|
DYNAMIC_ARRAY keyuse;
|
||||||
@ -201,6 +201,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
|||||||
/* Check that all tables, fields, conds and order are ok */
|
/* Check that all tables, fields, conds and order are ok */
|
||||||
|
|
||||||
select_distinct=test(select_options & SELECT_DISTINCT);
|
select_distinct=test(select_options & SELECT_DISTINCT);
|
||||||
|
buffer_result=test(select_options & OPTION_BUFFER_RESULT) && !test(select_options & OPTION_FOUND_ROWS);
|
||||||
tmp_table=0;
|
tmp_table=0;
|
||||||
select=0;
|
select=0;
|
||||||
no_order=skip_sort_order=0;
|
no_order=skip_sort_order=0;
|
||||||
@ -546,8 +547,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
|
|||||||
|
|
||||||
need_tmp= (join.const_tables != join.tables &&
|
need_tmp= (join.const_tables != join.tables &&
|
||||||
((select_distinct || !simple_order || !simple_group) ||
|
((select_distinct || !simple_order || !simple_group) ||
|
||||||
(group && order) ||
|
(group && order) || buffer_result));
|
||||||
test(select_options & OPTION_BUFFER_RESULT)));
|
|
||||||
|
|
||||||
// No cache for MATCH
|
// No cache for MATCH
|
||||||
make_join_readinfo(&join,
|
make_join_readinfo(&join,
|
||||||
|
Reference in New Issue
Block a user