Commit a36d59bc authored by unknown's avatar unknown

Merge paul@work.mysql.com:/home/bk/mysql-4.0

into teton.kitebird.com:/home/paul/mysql-4.0


Docs/manual.texi:
  Auto merged
parents 5f98914d e578a2e2
This diff is collapsed.
...@@ -23,6 +23,12 @@ int heap_rnext(HP_INFO *info, byte *record) ...@@ -23,6 +23,12 @@ int heap_rnext(HP_INFO *info, byte *record)
byte *pos; byte *pos;
HP_SHARE *share=info->s; HP_SHARE *share=info->s;
DBUG_ENTER("heap_rnext"); DBUG_ENTER("heap_rnext");
if (!(info->s->records))
{
my_errno=HA_ERR_END_OF_FILE;
DBUG_RETURN(my_errno);
}
if (info->lastinx < 0) if (info->lastinx < 0)
DBUG_RETURN(my_errno=HA_ERR_WRONG_INDEX); DBUG_RETURN(my_errno=HA_ERR_WRONG_INDEX);
......
...@@ -730,6 +730,7 @@ start_master() ...@@ -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() ...@@ -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 ...@@ -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; ...@@ -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;
......
...@@ -4,7 +4,7 @@ use Getopt::Long; ...@@ -4,7 +4,7 @@ use Getopt::Long;
use POSIX qw(strftime); use POSIX qw(strftime);
$|=1; $|=1;
$VER="2.2"; $VER="2.3";
$opt_config_file = undef(); $opt_config_file = undef();
$opt_example = 0; $opt_example = 0;
...@@ -183,7 +183,7 @@ sub report_mysqlds ...@@ -183,7 +183,7 @@ sub report_mysqlds
sub start_mysqlds() sub start_mysqlds()
{ {
my (@groups, $com, $i, @options, $j); my (@groups, $com, $tmp, $i, @options, $j);
if (!$opt_no_log) if (!$opt_no_log)
{ {
...@@ -202,11 +202,20 @@ sub start_mysqlds() ...@@ -202,11 +202,20 @@ sub start_mysqlds()
@options = `$com`; @options = `$com`;
chop @options; chop @options;
$com = "$mysqld"; $com= "$mysqld";
for ($j = 0; defined($options[$j]); $j++) for ($j = 0, $tmp= ""; defined($options[$j]); $j++)
{ {
$com.= " $options[$j]"; if ("--mysqld=" eq substr($options[$j], 0, 9))
{
$options[$j]=~ s/\-\-mysqld\=//;
$com= $options[$j];
}
else
{
$tmp.= " $options[$j]";
}
} }
$com.= $tmp;
$com.= " >> $opt_log 2>&1" if (!$opt_no_log); $com.= " >> $opt_log 2>&1" if (!$opt_no_log);
$com.= " &"; $com.= " &";
system($com); system($com);
...@@ -595,6 +604,11 @@ Options: ...@@ -595,6 +604,11 @@ Options:
to this option also. The options are passed to mysqld. Just to this option also. The options are passed to mysqld. Just
make sure you have mysqld in your PATH or fix mysqld_safe. make sure you have mysqld in your PATH or fix mysqld_safe.
Using: $mysqld Using: $mysqld
Please note: Since mysqld_multi version 2.3 you can also
give this option in groups [mysqld#]! This will be
recognized as a special option and will not be passed
to the mysqld. This will allow one to start different
mysqld versions with mysqld_multi.
--no-log Print to stdout instead of the log file. By default the log --no-log Print to stdout instead of the log file. By default the log
file is turned on. file is turned on.
--password=... Password for user for mysqladmin. --password=... Password for user for mysqladmin.
......
...@@ -187,7 +187,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, ...@@ -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, ...@@ -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, ...@@ -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,
......
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