1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

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
This commit is contained in:
unknown
2003-06-30 13:23:54 +03:00
parent 27205cc64b
commit d0dc9e7db3
10 changed files with 500 additions and 270 deletions

View File

@@ -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;