summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-06-30 13:23:54 +0300
committerunknown <monty@mashka.mysql.fi>2003-06-30 13:23:54 +0300
commitd0dc9e7db36d3dc81aaecd761bed47bb63878108 (patch)
tree8435e8821801b31bb1a8f3ff592b231e06a8be3e /sql/sql_select.h
parent27205cc64ba607babf4510ef712f021337968df7 (diff)
downloadmariadb-git-d0dc9e7db36d3dc81aaecd761bed47bb63878108.tar.gz
Remove FORCE_INIT_OF_VARS when compiling for valgrind/purify to spot wrong LINT_INIT() options
Fixed bug in ALTER TABLE ... MODIFY integer-column Added ref_or_null optimization (needed for subqueries) BUILD/compile-pentium-valgrind-max: Remove FORCE_INIT_OF_VARS to spot wrong LINT_INIT() options mysql-test/r/distinct.result: Update of test results (new optimizer) mysql-test/r/null_key.result: Update after ref_or_null optimization mysql-test/r/subselect.result: Update after ref_or_null optimization mysql-test/t/null_key.test: New tests for ref_or_null optimization sql/sql_select.cc: Added ref_or_null optimization Optimized find_best_combinations() and read-functions sql/sql_select.h: Added ref_or_null optimization sql/sql_yacc.yy: Fixed bug in ALTER TABLE ... MODIFY integer-column sql/table.cc: Safety fix for ALTER TABLE .. MODIFY sql/unireg.cc: Safety fix for ALTER TABLE .. MODIFY
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index df21d337b54..f29729fb5b3 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -27,8 +27,10 @@
typedef struct keyuse_t {
TABLE *table;
Item *val; /* or value if no field */
- uint key,keypart;
table_map used_tables;
+ uint key, keypart, optimize;
+ key_map keypart_map;
+ ha_rows ref_table_rows;
} KEYUSE;
class store_key;
@@ -73,7 +75,7 @@ typedef struct st_join_cache {
*/
enum join_type { JT_UNKNOWN,JT_SYSTEM,JT_CONST,JT_EQ_REF,JT_REF,JT_MAYBE_REF,
- JT_ALL, JT_RANGE, JT_NEXT, JT_FT};
+ JT_ALL, JT_RANGE, JT_NEXT, JT_FT, JT_REF_OR_NULL};
class JOIN;
@@ -85,6 +87,7 @@ typedef struct st_join_table {
QUICK_SELECT *quick;
Item *on_expr;
const char *info;
+ byte *null_ref_key;
int (*read_first_record)(struct st_join_table *tab);
int (*next_select)(JOIN *,struct st_join_table *,bool);
READ_RECORD read_record;