Loading config/ac-macros/misc.m4 +21 −0 Original line number Diff line number Diff line Loading @@ -693,6 +693,27 @@ dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_BIG_TABLES SECTION dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_CHECK_MAX_INDEXES dnl Sets MAX_INDEXES dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_CHECK_MAX_INDEXES], [ AC_ARG_WITH([max-indexes], [ --with-max-indexes=\# Sets the maximum number of indexes per table, default 64], [max_indexes="$withval"], [max_indexes=64]) AC_MSG_CHECKING([max indexes per table]) AC_DEFINE_UNQUOTED([MAX_INDEXES], [$max_indexes], [Maximum number of indexes per table]) AC_MSG_RESULT([$max_indexes]) ]) dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_MAX_INDEXES SECTION dnl --------------------------------------------------------------------------- dnl MYSQL_NEEDS_MYSYS_NEW AC_DEFUN([MYSQL_NEEDS_MYSYS_NEW], [AC_CACHE_CHECK([needs mysys_new helpers], mysql_use_mysys_new, Loading configure.in +1 −0 Original line number Diff line number Diff line Loading @@ -2413,6 +2413,7 @@ AC_SUBST(readline_link) AC_SUBST(readline_h_ln_cmd) MYSQL_CHECK_BIG_TABLES MYSQL_CHECK_MAX_INDEXES MYSQL_CHECK_BDB MYSQL_CHECK_INNODB MYSQL_CHECK_EXAMPLEDB Loading include/myisam.h +8 −5 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ extern "C" { #endif #include "my_handler.h" /* defines used by myisam-funktions */ /* There is a hard limit for the maximum number of keys as there are only 8 bits in the index file header for the number of keys in a table. Loading @@ -45,14 +43,19 @@ extern "C" { running myisamchk compiled for 128 keys on a table with 255 keys. */ #define MI_MAX_POSSIBLE_KEY 255 /* For myisam_chk */ #if MAX_INDEXES > MI_MAX_POSSIBLE_KEY #define MI_MAX_KEY MI_MAX_POSSIBLE_KEY /* Max allowed keys */ #else #define MI_MAX_KEY MAX_INDEXES /* Max allowed keys */ #endif #define MI_MAX_POSSIBLE_KEY_BUFF (1024+6+6) /* For myisam_chk */ /* The following defines can be increased if necessary. BUT: MI_MAX_KEY must be <= MI_MAX_POSSIBLE_KEY. But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. */ #define MI_MAX_KEY 64 /* Max allowed keys */ #define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ #define MI_MAX_KEY_SEG 16 /* Max segments for key */ #define MI_MAX_KEY_LENGTH 1000 #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) #define MI_MAX_MSG_BUF 1024 /* used in CHECK TABLE, REPAIR TABLE */ Loading sql/mysql_priv.h +5 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,11 @@ /* TODO convert all these three maps to Bitmap classes */ typedef ulonglong table_map; /* Used for table bits in join */ #if MAX_INDEXES <= 64 typedef Bitmap<64> key_map; /* Used for finding keys */ #else typedef Bitmap<((MAX_INDEXES+7)/8*8)> key_map; /* Used for finding keys */ #endif typedef ulong key_part_map; /* Used for finding key parts */ typedef ulong nesting_map; /* Used for flags of nesting constructs */ /* Loading sql/opt_range.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3172,6 +3172,7 @@ TRP_ROR_INTERSECT *get_best_covering_ror_intersect(PARAM *param, trp->is_covering= TRUE; trp->read_cost= total_cost; trp->records= records; trp->cpk_scan= NULL; DBUG_PRINT("info", ("Returning covering ROR-intersect plan: cost %g, records %lu", Loading Loading
config/ac-macros/misc.m4 +21 −0 Original line number Diff line number Diff line Loading @@ -693,6 +693,27 @@ dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_BIG_TABLES SECTION dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_CHECK_MAX_INDEXES dnl Sets MAX_INDEXES dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_CHECK_MAX_INDEXES], [ AC_ARG_WITH([max-indexes], [ --with-max-indexes=\# Sets the maximum number of indexes per table, default 64], [max_indexes="$withval"], [max_indexes=64]) AC_MSG_CHECKING([max indexes per table]) AC_DEFINE_UNQUOTED([MAX_INDEXES], [$max_indexes], [Maximum number of indexes per table]) AC_MSG_RESULT([$max_indexes]) ]) dnl --------------------------------------------------------------------------- dnl END OF MYSQL_CHECK_MAX_INDEXES SECTION dnl --------------------------------------------------------------------------- dnl MYSQL_NEEDS_MYSYS_NEW AC_DEFUN([MYSQL_NEEDS_MYSYS_NEW], [AC_CACHE_CHECK([needs mysys_new helpers], mysql_use_mysys_new, Loading
configure.in +1 −0 Original line number Diff line number Diff line Loading @@ -2413,6 +2413,7 @@ AC_SUBST(readline_link) AC_SUBST(readline_h_ln_cmd) MYSQL_CHECK_BIG_TABLES MYSQL_CHECK_MAX_INDEXES MYSQL_CHECK_BDB MYSQL_CHECK_INNODB MYSQL_CHECK_EXAMPLEDB Loading
include/myisam.h +8 −5 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ extern "C" { #endif #include "my_handler.h" /* defines used by myisam-funktions */ /* There is a hard limit for the maximum number of keys as there are only 8 bits in the index file header for the number of keys in a table. Loading @@ -45,14 +43,19 @@ extern "C" { running myisamchk compiled for 128 keys on a table with 255 keys. */ #define MI_MAX_POSSIBLE_KEY 255 /* For myisam_chk */ #if MAX_INDEXES > MI_MAX_POSSIBLE_KEY #define MI_MAX_KEY MI_MAX_POSSIBLE_KEY /* Max allowed keys */ #else #define MI_MAX_KEY MAX_INDEXES /* Max allowed keys */ #endif #define MI_MAX_POSSIBLE_KEY_BUFF (1024+6+6) /* For myisam_chk */ /* The following defines can be increased if necessary. BUT: MI_MAX_KEY must be <= MI_MAX_POSSIBLE_KEY. But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. */ #define MI_MAX_KEY 64 /* Max allowed keys */ #define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ #define MI_MAX_KEY_SEG 16 /* Max segments for key */ #define MI_MAX_KEY_LENGTH 1000 #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH+MI_MAX_KEY_SEG*6+8+8) #define MI_MAX_MSG_BUF 1024 /* used in CHECK TABLE, REPAIR TABLE */ Loading
sql/mysql_priv.h +5 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,11 @@ /* TODO convert all these three maps to Bitmap classes */ typedef ulonglong table_map; /* Used for table bits in join */ #if MAX_INDEXES <= 64 typedef Bitmap<64> key_map; /* Used for finding keys */ #else typedef Bitmap<((MAX_INDEXES+7)/8*8)> key_map; /* Used for finding keys */ #endif typedef ulong key_part_map; /* Used for finding key parts */ typedef ulong nesting_map; /* Used for flags of nesting constructs */ /* Loading
sql/opt_range.cc +1 −0 Original line number Diff line number Diff line Loading @@ -3172,6 +3172,7 @@ TRP_ROR_INTERSECT *get_best_covering_ror_intersect(PARAM *param, trp->is_covering= TRUE; trp->read_cost= total_cost; trp->records= records; trp->cpk_scan= NULL; DBUG_PRINT("info", ("Returning covering ROR-intersect plan: cost %g, records %lu", Loading