Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  mysql.com:/misc/mysql/31700/50-31700
parents d97dd5a4 8a5e621f
...@@ -1369,8 +1369,19 @@ public: ...@@ -1369,8 +1369,19 @@ public:
ulonglong limit_found_rows; ulonglong limit_found_rows;
ulonglong options; /* Bitmap of states */ ulonglong options; /* Bitmap of states */
longlong row_count_func; /* For the ROW_COUNT() function */ longlong row_count_func; /* For the ROW_COUNT() function */
ha_rows cuted_fields, ha_rows cuted_fields;
sent_row_count, examined_row_count;
/*
number of rows we actually sent to the client, including "synthetic"
rows in ROLLUP etc.
*/
ha_rows sent_row_count;
/*
number of rows we read, sent or not, including in create_sort_index()
*/
ha_rows examined_row_count;
/* /*
The set of those tables whose fields are referenced in all subqueries The set of those tables whose fields are referenced in all subqueries
of the query. of the query.
...@@ -1403,7 +1414,11 @@ public: ...@@ -1403,7 +1414,11 @@ public:
/* Statement id is thread-wide. This counter is used to generate ids */ /* Statement id is thread-wide. This counter is used to generate ids */
ulong statement_id_counter; ulong statement_id_counter;
ulong rand_saved_seed1, rand_saved_seed2; ulong rand_saved_seed1, rand_saved_seed2;
ulong row_count; // Row counter, mainly for errors and warnings /*
Row counter, mainly for errors and warnings. Not increased in
create_sort_index(); may differ from examined_row_count.
*/
ulong row_count;
long dbug_thread_id; long dbug_thread_id;
pthread_t real_id; pthread_t real_id;
uint tmp_table, global_read_lock; uint tmp_table, global_read_lock;
......
...@@ -10347,6 +10347,15 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure) ...@@ -10347,6 +10347,15 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
error= (*end_select)(join,join_tab,0); error= (*end_select)(join,join_tab,0);
if (error == NESTED_LOOP_OK || error == NESTED_LOOP_QUERY_LIMIT) if (error == NESTED_LOOP_OK || error == NESTED_LOOP_QUERY_LIMIT)
error= (*end_select)(join,join_tab,1); error= (*end_select)(join,join_tab,1);
/*
If we don't go through evaluate_join_record(), do the counting
here. join->send_records is increased on success in end_send(),
so we don't touch it here.
*/
join->examined_rows++;
join->thd->row_count++;
DBUG_ASSERT(join->examined_rows <= 1);
} }
else if (join->send_row_on_empty_set()) else if (join->send_row_on_empty_set())
{ {
......
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