My Project
Defines
sql_const.h File Reference

Go to the source code of this file.

Defines

#define LIBLEN   FN_REFLEN-FN_LEN /* Max l{ngd p} dev */
#define MAX_DBKEY_LENGTH   (NAME_LEN*2+1+1+4+4)
#define MAX_ALIAS_NAME   256
#define MAX_FIELD_NAME   34 /* Max colum name length +2 */
#define MAX_SYS_VAR_LENGTH   32
#define MAX_KEY   MAX_INDEXES /* Max used keys */
#define MAX_REF_PARTS   16U /* Max parts used as ref */
#define MAX_KEY_LENGTH   3072U /* max possible key */
#define MAX_REFLENGTH   4 /* Max length for record ref */
#define MAX_HOSTNAME   61 /* len+1 in mysql.user */
#define MAX_MBWIDTH   3 /* Max multibyte sequence */
#define MAX_FIELD_CHARLENGTH   255
#define MAX_FIELD_VARCHARLENGTH   65535
#define MAX_FIELD_BLOBLENGTH   UINT_MAX32 /* cf field_blob::get_length() */
#define CONVERT_IF_BIGGER_TO_BLOB   512 /* Used for CREATE ... SELECT */
#define MAX_FIELD_WIDTH   (MAX_FIELD_CHARLENGTH*MAX_MBWIDTH+1)
#define MAX_BIT_FIELD_LENGTH   64 /* Max length in bits for bit fields */
#define MAX_DATE_WIDTH   10 /* YYYY-MM-DD */
#define MAX_TIME_WIDTH   10 /* -838:59:59 */
#define MAX_TIME_FULL_WIDTH   23 /* -DDDDDD HH:MM:SS.###### */
#define MAX_DATETIME_FULL_WIDTH   29 /* YYYY-MM-DD HH:MM:SS.###### AM */
#define MAX_DATETIME_WIDTH   19 /* YYYY-MM-DD HH:MM:SS */
#define MAX_DATETIME_COMPRESSED_WIDTH   14 /* YYYYMMDDHHMMSS */
#define DATE_INT_DIGITS   8 /* YYYYMMDD */
#define TIME_INT_DIGITS   7 /* hhhmmss */
#define DATETIME_INT_DIGITS   14 /* YYYYMMDDhhmmss */
#define MAX_TABLES   (sizeof(table_map)*8-3) /* Max tables in join */
#define PARAM_TABLE_BIT   (((table_map) 1) << (sizeof(table_map)*8-3))
#define OUTER_REF_TABLE_BIT   (((table_map) 1) << (sizeof(table_map)*8-2))
#define RAND_TABLE_BIT   (((table_map) 1) << (sizeof(table_map)*8-1))
#define PSEUDO_TABLE_BITS
#define MAX_FIELDS   4096 /* Limit in the .frm file */
#define MAX_PARTITIONS   8192
#define MAX_SELECT_NESTING   (sizeof(nesting_map)*8-1)
#define DEFAULT_SORT_MEMORY   (256UL* 1024UL)
#define MIN_SORT_MEMORY   (32UL * 1024UL)
#define STRING_BUFFER_USUAL_SIZE   80
#define MEM_ROOT_BLOCK_SIZE   8192
#define MEM_ROOT_PREALLOC   8192
#define TRANS_MEM_ROOT_BLOCK_SIZE   4096
#define TRANS_MEM_ROOT_PREALLOC   4096
#define DEFAULT_ERROR_COUNT   64
#define EXTRA_RECORDS   10 /* Extra records in sort */
#define SCROLL_EXTRA   5 /* Extra scroll-rows. */
#define FIELD_NAME_USED   ((uint) 32768) /* Bit set if fieldname used */
#define FORM_NAME_USED   ((uint) 16384) /* Bit set if formname used */
#define FIELD_NR_MASK   16383 /* To get fieldnumber */
#define FERR   -1 /* Error from my_functions */
#define CREATE_MODE   0 /* Default mode on new files */
#define NAMES_SEP_CHAR   '\377' /* Char to sep. names */
#define READ_RECORD_BUFFER   (uint) (IO_SIZE*8) /* Pointer_buffer_size */
#define DISK_BUFFER_SIZE   (uint) (IO_SIZE*16) /* Size of diskbuffer */
#define FRM_VER_TRUE_VARCHAR   (FRM_VER+4) /* 10 */
#define ACL_CACHE_SIZE   256
#define MAX_PASSWORD_LENGTH   32
#define HOST_CACHE_SIZE   128
#define MAX_ACCEPT_RETRY   10
#define MAX_FIELDS_BEFORE_HASH   32
#define USER_VARS_HASH_SIZE   16
#define TABLE_OPEN_CACHE_MIN   400
#define TABLE_OPEN_CACHE_DEFAULT   2000
#define TABLE_DEF_CACHE_DEFAULT   400
#define MAX_CONNECTIONS_DEFAULT   151
#define TABLE_DEF_CACHE_MIN   400
#define STACK_MIN_SIZE   16000
#define STACK_MIN_SIZE_FOR_OPEN   1024*80
#define STACK_BUFF_ALLOC   352
 For stack overrun checks.
#define QUERY_ALLOC_BLOCK_SIZE   8192
#define QUERY_ALLOC_PREALLOC_SIZE   8192
#define TRANS_ALLOC_BLOCK_SIZE   4096
#define TRANS_ALLOC_PREALLOC_SIZE   4096
#define RANGE_ALLOC_BLOCK_SIZE   4096
#define ACL_ALLOC_BLOCK_SIZE   1024
#define UDF_ALLOC_BLOCK_SIZE   1024
#define TABLE_ALLOC_BLOCK_SIZE   1024
#define WARN_ALLOC_BLOCK_SIZE   2048
#define WARN_ALLOC_PREALLOC_SIZE   1024
#define MIN_FILE_LENGTH_TO_USE_ROW_CACHE   (10L*1024*1024)
#define MIN_ROWS_TO_USE_TABLE_CACHE   100
#define MIN_ROWS_TO_USE_BULK_INSERT   100
#define ROW_EVALUATE_COST   0.20
#define ROWID_COMPARE_COST   0.10
#define DISK_SEEK_BASE_COST   ((double)0.9)
#define BLOCKS_IN_AVG_SEEK   128
#define DISK_SEEK_PROP_COST   ((double)0.1/BLOCKS_IN_AVG_SEEK)
#define MATCHING_ROWS_IN_OTHER_TABLE   10
#define HEAP_TEMPTABLE_CREATE_COST   2.0
#define HEAP_TEMPTABLE_ROW_COST   0.2
#define DISK_TEMPTABLE_CREATE_COST   40.0
#define DISK_TEMPTABLE_ROW_COST   1.0
#define MY_CHARSET_BIN_MB_MAXLEN   1
#define KEY_DEFAULT_PACK_LENGTH   8
#define PROCESS_LIST_WIDTH   100
#define PROCESS_LIST_INFO_WIDTH   65535
#define PRECISION_FOR_DOUBLE   53
#define PRECISION_FOR_FLOAT   24
#define MAX_FLOAT_STR_LENGTH   (FLT_DIG + 6)
#define MAX_DOUBLE_STR_LENGTH   (DBL_DIG + 7)
#define CONNECT_TIMEOUT   10
#define DEFAULT_CONCURRENCY   10
#define DELAYED_LIMIT   100
#define DELAYED_QUEUE_SIZE   1000
#define DELAYED_WAIT_TIMEOUT   5*60
#define LONG_TIMEOUT   ((ulong) 3600L*24L*365L)
#define MAX_TIME_ZONE_NAME_LENGTH   (NAME_LEN + 1)
#define INTERRUPT_PRIOR   10
#define CONNECT_PRIOR   9
#define WAIT_PRIOR   8
#define QUERY_PRIOR   6

Detailed Description

File containing constants that can be used throughout the server.

Note:
This file shall not contain any includes of any kinds.

Define Documentation

#define CONVERT_IF_BIGGER_TO_BLOB   512 /* Used for CREATE ... SELECT */

CHAR and VARCHAR fields longer than this number of characters are converted to BLOB. Non-character fields longer than this number of bytes are converted to BLOB. Comparisons should be '>' or '<='.

#define DELAYED_LIMIT   100

pause after xxx inserts

#define DELAYED_WAIT_TIMEOUT   5*60

Wait for delayed insert

#define KEY_DEFAULT_PACK_LENGTH   8

Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used).

Number of rows in a reference table when refereed through a not unique key. This value is only used when we don't know anything about the key distribution.

#define MAX_CONNECTIONS_DEFAULT   151

Maximum number of connections default value. 151 is larger than Apache's default max children, to avoid "too many connections" error in a common setup.

#define MAX_TIME_ZONE_NAME_LENGTH   (NAME_LEN + 1)

Maximum length of time zone name that we support (Time zone name is char(64) in db). mysqlbinlog needs it.

#define PROCESS_LIST_WIDTH   100

Characters shown for the command in 'show processlist'.

#define PSEUDO_TABLE_BITS
Value:
(PARAM_TABLE_BIT | OUTER_REF_TABLE_BIT | \
                           RAND_TABLE_BIT)
#define ROW_EVALUATE_COST   0.20

The following is used to decide if MySQL should use table scanning instead of reading with keys. The number says how costly evaluation of the filter condition for a row is compared to reading one extra row from a table.

#define ROWID_COMPARE_COST   0.10

Cost of comparing a rowid compared to reading one row from a table.

#define TABLE_DEF_CACHE_MIN   400

We must have room for at least 400 table definitions in the table cache, since otherwise there is no chance prepared statements that use these many tables can work. Prepared statements use table definition cache ids (table_map_id) as table version identifiers. If the table definition cache size is less than the number of tables used in a statement, the contents of the table definition cache is guaranteed to rotate between a prepare and execute. This leads to stable validation errors. In future we shall use more stable version identifiers, for now the only solution is to ensure that the table definition cache can contain at least all tables of a given statement.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines