Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
MariaDB and MySQL Packaging Team
mariadb-5.5
Commits
28a18fef
Commit
28a18fef
authored
Jul 21, 2016
by
Otto Kekäläinen
Browse files
Merge tag 'upstream/5.5.50' into ubuntu-14.04
Upstream version 5.5.50
parents
3747036d
95c6357a
Changes
120
Hide whitespace changes
Inline
Side-by-side
sql/slave.h
View file @
28a18fef
/*
/*
Copyright (c) 2000, 2016, Oracle and/or its affiliates.
Copyright (c) 200
0
, 201
0
,
Oracle and/or its affiliates.
Copyright (c) 200
9
, 201
6
,
MariaDB
This program is free software; you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
...
...
sql/sp_head.cc
View file @
28a18fef
/*
/*
Copyright (c) 2002, 201
3
, Oracle and/or its affiliates.
Copyright (c) 2002, 201
6
, Oracle and/or its affiliates.
Copyright (c) 2011, 201
3
, M
onty Program Ab
Copyright (c) 2011, 201
6
, M
ariaDB
This program is free software; you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
...
@@ -480,8 +480,10 @@ sp_name::init_qname(THD *thd)
...
@@ -480,8 +480,10 @@ sp_name::init_qname(THD *thd)
bool
bool
check_routine_name
(
LEX_STRING
*
ident
)
check_routine_name
(
LEX_STRING
*
ident
)
{
{
if (!ident || !ident->str || !ident->str[0] ||
DBUG_ASSERT
(
ident
);
ident->str[ident->length-1] == ' ')
DBUG_ASSERT
(
ident
->
str
);
if
(
!
ident
->
str
[
0
]
||
ident
->
str
[
ident
->
length
-
1
]
==
' '
)
{
{
my_error
(
ER_SP_WRONG_NAME
,
MYF
(
0
),
ident
->
str
);
my_error
(
ER_SP_WRONG_NAME
,
MYF
(
0
),
ident
->
str
);
return
TRUE
;
return
TRUE
;
...
...
sql/sql_connect.cc
View file @
28a18fef
...
@@ -1092,7 +1092,8 @@ void end_connection(THD *thd)
...
@@ -1092,7 +1092,8 @@ void end_connection(THD *thd)
}
}
if
(
!
thd
->
killed
&&
(
net
->
error
&&
net
->
vio
!=
0
))
if
(
!
thd
->
killed
&&
(
net
->
error
&&
net
->
vio
!=
0
))
thd
->
print_aborted_warning
(
1
,
ER
(
ER_UNKNOWN_ERROR
));
thd
->
print_aborted_warning
(
1
,
thd
->
stmt_da
->
is_error
()
?
thd
->
stmt_da
->
message
()
:
ER
(
ER_UNKNOWN_ERROR
));
}
}
...
...
sql/sql_lex.cc
View file @
28a18fef
...
@@ -1452,32 +1452,35 @@ static int lex_one_token(YYSTYPE *yylval, THD *thd)
...
@@ -1452,32 +1452,35 @@ static int lex_one_token(YYSTYPE *yylval, THD *thd)
return
(
BIN_NUM
);
return
(
BIN_NUM
);
case
MY_LEX_CMP_OP
:
// Incomplete comparison operator
case
MY_LEX_CMP_OP
:
// Incomplete comparison operator
lip
->
next_state
=
MY_LEX_START
;
// Allow signed numbers
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
||
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
||
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_LONG_CMP_OP
)
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_LONG_CMP_OP
)
lip
->
yySkip
();
if
((
tokval
=
find_keyword
(
lip
,
lip
->
yyLength
()
+
1
,
0
)))
{
{
lip
->
next_state
=
MY_LEX_START
;
// Allow signed numbers
lip
->
yySkip
();
return
(
tokval
);
if
((
tokval
=
find_keyword
(
lip
,
2
,
0
)))
return
(
tokval
);
lip
->
yyUnget
();
}
}
state
=
MY_LEX_CHAR
;
// Something fishy found
return
(
c
);
break
;
case
MY_LEX_LONG_CMP_OP
:
// Incomplete comparison operator
case
MY_LEX_LONG_CMP_OP
:
// Incomplete comparison operator
lip
->
next_state
=
MY_LEX_START
;
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
||
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
||
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_LONG_CMP_OP
)
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_LONG_CMP_OP
)
{
{
lip
->
yySkip
();
lip
->
yySkip
();
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
)
if
(
state_map
[(
uchar
)
lip
->
yyPeek
()]
==
MY_LEX_CMP_OP
)
{
lip
->
yySkip
();
lip
->
yySkip
();
if
((
tokval
=
find_keyword
(
lip
,
3
,
0
)))
return
(
tokval
);
lip
->
yyUnget
();
}
if
((
tokval
=
find_keyword
(
lip
,
2
,
0
)))
return
(
tokval
);
lip
->
yyUnget
();
}
}
if
((
tokval
=
find_keyword
(
lip
,
lip
->
yyLength
()
+
1
,
0
)))
return
(
c
);
{
lip
->
next_state
=
MY_LEX_START
;
// Found long op
return
(
tokval
);
}
state
=
MY_LEX_CHAR
;
// Something fishy found
break
;
case
MY_LEX_BOOL
:
case
MY_LEX_BOOL
:
if
(
c
!=
lip
->
yyPeek
())
if
(
c
!=
lip
->
yyPeek
())
...
...
sql/sql_locale.h
View file @
28a18fef
...
@@ -61,6 +61,8 @@ class MY_LOCALE
...
@@ -61,6 +61,8 @@ class MY_LOCALE
grouping
(
grouping_par
),
grouping
(
grouping_par
),
errmsgs
(
errmsgs_par
)
errmsgs
(
errmsgs_par
)
{}
{}
uint
repertoire
()
const
{
return
is_ascii
?
MY_REPERTOIRE_ASCII
:
MY_REPERTOIRE_EXTENDED
;
}
};
};
/* Exported variables */
/* Exported variables */
...
...
sql/sql_parse.cc
View file @
28a18fef
...
@@ -5395,6 +5395,7 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
...
@@ -5395,6 +5395,7 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
temporary table flag)
temporary table flag)
@param alter_info [in] Initial list of columns and indexes for the
@param alter_info [in] Initial list of columns and indexes for the
table to be created
table to be created
@param create_db [in] Database of the created table
@retval
@retval
false ok.
false ok.
...
@@ -5403,7 +5404,8 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
...
@@ -5403,7 +5404,8 @@ bool check_global_access(THD *thd, ulong want_access, bool no_errors)
*/
*/
bool
check_fk_parent_table_access
(
THD
*
thd
,
bool
check_fk_parent_table_access
(
THD
*
thd
,
HA_CREATE_INFO
*
create_info
,
HA_CREATE_INFO
*
create_info
,
Alter_info
*
alter_info
)
Alter_info
*
alter_info
,
const
char
*
create_db
)
{
{
Key
*
key
;
Key
*
key
;
List_iterator
<
Key
>
key_iterator
(
alter_info
->
key_list
);
List_iterator
<
Key
>
key_iterator
(
alter_info
->
key_list
);
...
@@ -5443,10 +5445,28 @@ bool check_fk_parent_table_access(THD *thd,
...
@@ -5443,10 +5445,28 @@ bool check_fk_parent_table_access(THD *thd,
return
true
;
return
true
;
}
}
}
}
else
if
(
thd
->
lex
->
copy_db_to
(
&
db_name
.
str
,
&
db_name
.
length
))
return
true
;
else
else
is_qualified_table_name
=
false
;
{
if
(
!
thd
->
db
)
{
db_name
.
str
=
(
char
*
)
thd
->
memdup
(
create_db
,
strlen
(
create_db
)
+
1
);
db_name
.
length
=
strlen
(
create_db
);
is_qualified_table_name
=
true
;
if
(
create_db
&&
check_db_name
(
&
db_name
))
{
my_error
(
ER_WRONG_DB_NAME
,
MYF
(
0
),
db_name
.
str
);
return
true
;
}
}
else
{
if
(
thd
->
lex
->
copy_db_to
(
&
db_name
.
str
,
&
db_name
.
length
))
return
true
;
else
is_qualified_table_name
=
false
;
}
}
// if lower_case_table_names is set then convert tablename to lower case.
// if lower_case_table_names is set then convert tablename to lower case.
if
(
lower_case_table_names
)
if
(
lower_case_table_names
)
...
@@ -7462,7 +7482,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
...
@@ -7462,7 +7482,7 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
goto
err
;
goto
err
;
}
}
if
(
check_fk_parent_table_access
(
thd
,
&
lex
->
create_info
,
&
lex
->
alter_info
))
if
(
check_fk_parent_table_access
(
thd
,
&
lex
->
create_info
,
&
lex
->
alter_info
,
create_table
->
db
))
goto
err
;
goto
err
;
error
=
FALSE
;
error
=
FALSE
;
...
...
sql/sql_parse.h
View file @
28a18fef
...
@@ -47,7 +47,8 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
...
@@ -47,7 +47,8 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
TABLE_LIST
*
create_table
);
TABLE_LIST
*
create_table
);
bool
check_fk_parent_table_access
(
THD
*
thd
,
bool
check_fk_parent_table_access
(
THD
*
thd
,
HA_CREATE_INFO
*
create_info
,
HA_CREATE_INFO
*
create_info
,
Alter_info
*
alter_info
);
Alter_info
*
alter_info
,
const
char
*
create_db
);
bool
parse_sql
(
THD
*
thd
,
bool
parse_sql
(
THD
*
thd
,
Parser_state
*
parser_state
,
Parser_state
*
parser_state
,
...
...
sql/sql_reload.cc
View file @
28a18fef
/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
/* Copyright (c) 2010, 2016, Oracle and/or its affiliates.
Copyright (c) 2011, 2016, MariaDB
This program is free software; you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
...
...
sql/sql_select.cc
View file @
28a18fef
...
@@ -14586,7 +14586,8 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
...
@@ -14586,7 +14586,8 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
item->collation.collation);
item->collation.collation);
else
else
new_field= item->make_string_field(table);
new_field= item->make_string_field(table);
new_field->set_derivation(item->collation.derivation);
new_field->set_derivation(item->collation.derivation,
item->collation.repertoire);
break;
break;
case DECIMAL_RESULT:
case DECIMAL_RESULT:
new_field= Field_new_decimal::create_from_item(item);
new_field= Field_new_decimal::create_from_item(item);
...
@@ -14825,7 +14826,8 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
...
@@ -14825,7 +14826,8 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
modify_item, convert_blob_length);
modify_item, convert_blob_length);
case Item::TYPE_HOLDER:
case Item::TYPE_HOLDER:
result= ((Item_type_holder *)item)->make_field_by_type(table);
result= ((Item_type_holder *)item)->make_field_by_type(table);
result->set_derivation(item->collation.derivation);
result->set_derivation(item->collation.derivation,
item->collation.repertoire);
return result;
return result;
default: // Dosen't have to be stored
default: // Dosen't have to be stored
return 0;
return 0;
...
...
sql/sql_table.cc
View file @
28a18fef
...
@@ -6305,7 +6305,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -6305,7 +6305,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
till this point for the alter operation.
till this point for the alter operation.
*/
*/
if
((
alter_info
->
flags
&
ALTER_FOREIGN_KEY
)
&&
if
((
alter_info
->
flags
&
ALTER_FOREIGN_KEY
)
&&
check_fk_parent_table_access
(
thd
,
create_info
,
alter_info
))
check_fk_parent_table_access
(
thd
,
create_info
,
alter_info
,
new_db
))
goto
err
;
goto
err
;
/*
/*
...
...
sql/sql_yacc.cc
View file @
28a18fef
This source diff could not be displayed because it is too large. You can
view the blob
instead.
sql/sql_yacc.h
View file @
28a18fef
...
@@ -197,465 +197,462 @@
...
@@ -197,465 +197,462 @@
ENGINES_SYM
=
413
,
ENGINES_SYM
=
413
,
ENGINE_SYM
=
414
,
ENGINE_SYM
=
414
,
ENUM
=
415
,
ENUM
=
415
,
EQ
=
416
,
EQUAL_SYM
=
416
,
EQUAL_SYM
=
417
,
ERROR_SYM
=
417
,
ERROR_SYM
=
418
,
ERRORS
=
418
,
ERRORS
=
419
,
ESCAPED
=
419
,
ESCAPED
=
420
,
ESCAPE_SYM
=
420
,
ESCAPE_SYM
=
421
,
EVENTS_SYM
=
421
,
EVENTS_SYM
=
422
,
EVENT_SYM
=
422
,
EVENT_SYM
=
423
,
EVERY_SYM
=
423
,
EVERY_SYM
=
424
,
EXAMINED_SYM
=
424
,
EXAMINED_SYM
=
425
,
EXECUTE_SYM
=
425
,
EXECUTE_SYM
=
426
,
EXISTS
=
426
,
EXISTS
=
427
,
EXIT_SYM
=
427
,
EXIT_SYM
=
428
,
EXPANSION_SYM
=
428
,
EXPANSION_SYM
=
429
,
EXTENDED_SYM
=
429
,
EXTENDED_SYM
=
430
,
EXTENT_SIZE_SYM
=
430
,
EXTENT_SIZE_SYM
=
431
,
EXTRACT_SYM
=
431
,
EXTRACT_SYM
=
432
,
FALSE_SYM
=
432
,
FALSE_SYM
=
433
,
FAST_SYM
=
433
,
FAST_SYM
=
434
,
FAULTS_SYM
=
434
,
FAULTS_SYM
=
435
,
FETCH_SYM
=
435
,
FETCH_SYM
=
436
,
FILE_SYM
=
436
,
FILE_SYM
=
437
,
FIRST_SYM
=
437
,
FIRST_SYM
=
438
,
FIXED_SYM
=
438
,
FIXED_SYM
=
439
,
FLOAT_NUM
=
439
,
FLOAT_NUM
=
440
,
FLOAT_SYM
=
440
,
FLOAT_SYM
=
441
,
FLUSH_SYM
=
441
,
FLUSH_SYM
=
442
,
FORCE_SYM
=
442
,
FORCE_SYM
=
443
,
FOREIGN
=
443
,
FOREIGN
=
444
,
FOR_SYM
=
444
,
FOR_SYM
=
445
,
FOUND_SYM
=
445
,
FOUND_SYM
=
446
,
FROM
=
446
,
FROM
=
447
,
FULL
=
447
,
FULL
=
448
,
FULLTEXT_SYM
=
448
,
FULLTEXT_SYM
=
449
,
FUNCTION_SYM
=
449
,
FUNCTION_SYM
=
450
,
GE
=
450
,
GE
=
451
,
GENERAL
=
451
,
GENERAL
=
452
,
GENERATED_SYM
=
452
,
GENERATED_SYM
=
453
,
GEOMETRYCOLLECTION
=
453
,
GEOMETRYCOLLECTION
=
454
,
GEOMETRY_SYM
=
454
,
GEOMETRY_SYM
=
455
,
GET_FORMAT
=
455
,
GET_FORMAT
=
456
,
GLOBAL_SYM
=
456
,
GLOBAL_SYM
=
457
,
GRANT
=
457
,
GRANT
=
458
,
GRANTS
=
458
,
GRANTS
=
459
,
GROUP_SYM
=
459
,
GROUP_SYM
=
460
,
GROUP_CONCAT_SYM
=
460
,
GROUP_CONCAT_SYM
=
461
,
HANDLER_SYM
=
461
,
GT_SYM
=
462
,
HARD_SYM
=
462
,
HANDLER_SYM
=
463
,
HASH_SYM
=
463
,
HARD_SYM
=
464
,
HAVING
=
464
,
HASH_SYM
=
465
,
HELP_SYM
=
465
,
HAVING
=
466
,
HEX_NUM
=
466
,
HELP_SYM
=
467
,
HEX_STRING
=
467
,
HEX_NUM
=
468
,
HIGH_PRIORITY
=
468
,
HEX_STRING
=
469
,
HOST_SYM
=
469
,
HIGH_PRIORITY
=
470
,
HOSTS_SYM
=
470
,
HOST_SYM
=
471
,
HOUR_MICROSECOND_SYM
=
471
,
HOSTS_SYM
=
472
,
HOUR_MINUTE_SYM
=
472
,
HOUR_MICROSECOND_SYM
=
473
,
HOUR_SECOND_SYM
=
473
,
HOUR_MINUTE_SYM
=
474
,
HOUR_SYM
=
474
,
HOUR_SECOND_SYM
=
475
,
IDENT
=
475
,
HOUR_SYM
=
476
,
IDENTIFIED_SYM
=
476
,
IDENT
=
477
,
IDENT_QUOTED
=
477
,
IDENTIFIED_SYM
=
478
,
IF
=
478
,
IDENT_QUOTED
=
479
,
IGNORE_SYM
=
479
,
IF
=
480
,
IGNORE_SERVER_IDS_SYM
=
480
,
IGNORE_SYM
=
481
,
IMPORT
=
481
,
IGNORE_SERVER_IDS_SYM
=
482
,
INDEXES
=
482
,
IMPORT
=
483
,
INDEX_SYM
=
483
,
INDEXES
=
484
,
INDEX_STATS_SYM
=
484
,
INDEX_SYM
=
485
,
INFILE
=
485
,
INDEX_STATS_SYM
=
486
,
INITIAL_SIZE_SYM
=
486
,
INFILE
=
487
,
INNER_SYM
=
487
,
INITIAL_SIZE_SYM
=
488
,
INOUT_SYM
=
488
,
INNER_SYM
=
489
,
INSENSITIVE_SYM
=
489
,
INOUT_SYM
=
490
,
INSERT
=
490
,
INSENSITIVE_SYM
=
491
,
INSERT_METHOD
=
491
,
INSERT
=
492
,
INSTALL_SYM
=
492
,
INSERT_METHOD
=
493
,
INTERVAL_SYM
=
493
,
INSTALL_SYM
=
494
,
INTO
=
494
,
INTERVAL_SYM
=
495
,
INT_SYM
=
495
,
INTO
=
496
,
INVOKER_SYM
=
496
,
INT_SYM
=
497
,
IN_SYM
=
497
,
INVOKER_SYM
=
498
,
IO_SYM
=
498
,
IN_SYM
=
499
,
IPC_SYM
=
499
,
IO_SYM
=
500
,
IS
=
500
,
IPC_SYM
=
501
,
ISOLATION
=
501
,
IS
=
502
,
ISSUER_SYM
=
502
,
ISOLATION
=
503
,
ITERATE_SYM
=
503
,
ISSUER_SYM
=
504
,
JOIN_SYM
=
504
,
ITERATE_SYM
=
505
,
KEYS
=
505
,
JOIN_SYM
=
506
,
KEY_BLOCK_SIZE
=
506
,
KEYS
=
507
,
KEY_SYM
=
507
,
KEY_BLOCK_SIZE
=
508
,
KILL_SYM
=
508
,
KEY_SYM
=
509
,
LANGUAGE_SYM
=
509
,
KILL_SYM
=
510
,
LAST_SYM
=
510
,
LANGUAGE_SYM
=
511
,
LAST_VALUE
=
511
,
LAST_SYM
=
512
,
LE
=
512
,
LAST_VALUE
=
513
,
LEADING
=
513
,
LE
=
514
,
LEAVES
=
514
,
LEADING
=
515
,
LEAVE_SYM
=
515
,
LEAVES
=
516
,
LEFT
=
516
,
LEAVE_SYM
=
517
,
LESS_SYM
=
517
,
LEFT
=
518
,
LEVEL_SYM
=
518
,
LESS_SYM
=
519
,
LEX_HOSTNAME
=
519
,
LEVEL_SYM
=
520
,
LIKE
=
520
,
LEX_HOSTNAME
=
521
,
LIMIT
=
521
,
LIKE
=
522
,
LINEAR_SYM
=
522
,
LIMIT
=
523
,
LINES
=
523
,
LINEAR_SYM
=
524
,
LINESTRING
=
524
,
LINES
=
525
,
LIST_SYM
=
525
,
LINESTRING
=
526
,
LOAD
=
526
,
LIST_SYM
=
527
,
LOCAL_SYM
=
527
,
LOAD
=
528
,
LOCATOR_SYM
=
528
,
LOCAL_SYM
=
529
,
LOCKS_SYM
=
529
,
LOCATOR_SYM
=
530
,
LOCK_SYM
=
530
,
LOCKS_SYM
=
531
,
LOGFILE_SYM
=
531
,
LOCK_SYM
=
532
,
LOGS_SYM
=
532
,
LOGFILE_SYM
=
533
,
LONGBLOB
=
533
,
LOGS_SYM
=
534
,
LONGTEXT
=
534
,
LONGBLOB
=
535
,
LONG_NUM
=
535
,
LONGTEXT
=
536
,
LONG_SYM
=
536
,
LONG_NUM
=
537
,
LOOP_SYM
=
537
,
LONG_SYM
=
538
,
LOW_PRIORITY
=
538
,
LOOP_SYM
=
539
,
MASTER_CONNECT_RETRY_SYM
=
539
,
LOW_PRIORITY
=
540
,
MASTER_HOST_SYM
=
540
,
LT
=
541
,
MASTER_LOG_FILE_SYM
=
541
,
MASTER_CONNECT_RETRY_SYM
=
542
,
MASTER_LOG_POS_SYM
=
542
,
MASTER_HOST_SYM
=
543
,
MASTER_PASSWORD_SYM
=
543
,
MASTER_LOG_FILE_SYM
=
544
,
MASTER_PORT_SYM
=
544
,
MASTER_LOG_POS_SYM
=
545
,
MASTER_SERVER_ID_SYM
=
545
,
MASTER_PASSWORD_SYM
=
546
,
MASTER_SSL_CAPATH_SYM
=
546
,
MASTER_PORT_SYM
=
547
,
MASTER_SSL_CA_SYM
=
547
,
MASTER_SERVER_ID_SYM
=
548
,
MASTER_SSL_CERT_SYM
=
548
,
MASTER_SSL_CAPATH_SYM
=
549
,
MASTER_SSL_CIPHER_SYM
=
549
,
MASTER_SSL_CA_SYM
=
550
,
MASTER_SSL_KEY_SYM
=
550
,
MASTER_SSL_CERT_SYM
=
551
,
MASTER_SSL_SYM
=
551
,
MASTER_SSL_CIPHER_SYM
=
552
,
MASTER_SSL_VERIFY_SERVER_CERT_SYM
=
552
,
MASTER_SSL_KEY_SYM
=
553
,
MASTER_SYM
=
553
,
MASTER_SSL_SYM
=
554
,
MASTER_USER_SYM
=
554
,
MASTER_SSL_VERIFY_SERVER_CERT_SYM
=
555
,
MASTER_HEARTBEAT_PERIOD_SYM
=
555
,
MASTER_SYM
=
556
,
MATCH
=
556
,
MASTER_USER_SYM
=
557
,
MAX_CONNECTIONS_PER_HOUR
=
557
,
MASTER_HEARTBEAT_PERIOD_SYM
=
558
,
MAX_QUERIES_PER_HOUR
=
558
,
MATCH
=
559
,
MAX_ROWS
=
559
,
MAX_CONNECTIONS_PER_HOUR
=
560
,
MAX_SIZE_SYM
=
560
,
MAX_QUERIES_PER_HOUR
=
561
,
MAX_SYM
=
561
,
MAX_ROWS
=
562
,
MAX_UPDATES_PER_HOUR
=
562
,
MAX_SIZE_SYM
=
563
,
MAX_USER_CONNECTIONS_SYM
=
563
,
MAX_SYM
=
564
,
MAX_VALUE_SYM
=
564
,
MAX_UPDATES_PER_HOUR
=
565
,
MEDIUMBLOB
=
565
,
MAX_USER_CONNECTIONS_SYM
=
566
,
MEDIUMINT
=
566
,
MAX_VALUE_SYM
=
567
,
MEDIUMTEXT
=
567
,
MEDIUMBLOB
=
568
,
MEDIUM_SYM
=
568
,
MEDIUMINT
=
569
,
MEMORY_SYM
=
569
,
MEDIUMTEXT
=
570
,
MERGE_SYM
=
570
,
MEDIUM_SYM
=
571
,
MESSAGE_TEXT_SYM
=
571
,
MEMORY_SYM
=
572
,
MICROSECOND_SYM
=
572
,
MERGE_SYM
=
573
,
MIGRATE_SYM
=
573
,
MESSAGE_TEXT_SYM
=
574
,
MINUTE_MICROSECOND_SYM
=
574
,
MICROSECOND_SYM
=
575
,
MINUTE_SECOND_SYM
=
575
,
MIGRATE_SYM
=
576
,
MINUTE_SYM
=
576
,
MINUTE_MICROSECOND_SYM
=
577
,
MIN_ROWS
=
577
,
MINUTE_SECOND_SYM
=
578
,
MIN_SYM
=
578
,
MINUTE_SYM
=
579
,
MODE_SYM
=
579
,
MIN_ROWS
=
580
,
MODIFIES_SYM
=
580
,
MIN_SYM
=
581
,
MODIFY_SYM
=
581
,
MODE_SYM
=
582
,
MOD_SYM
=
582
,
MODIFIES_SYM
=
583
,
MONTH_SYM
=
583
,
MODIFY_SYM
=
584
,
MULTILINESTRING
=
584
,
MOD_SYM
=
585
,
MULTIPOINT
=
585
,
MONTH_SYM
=
586
,
MULTIPOLYGON
=
586
,
MULTILINESTRING
=
587
,
MUTEX_SYM
=
587
,
MULTIPOINT
=
588
,
MYSQL_SYM
=
588
,
MULTIPOLYGON
=
589
,
MYSQL_ERRNO_SYM
=
589
,
MUTEX_SYM
=
590
,
NAMES_SYM
=
590
,
MYSQL_SYM
=
591
,
NAME_SYM
=
591
,
MYSQL_ERRNO_SYM
=
592
,
NATIONAL_SYM
=
592
,
NAMES_SYM
=
593
,
NATURAL
=
593
,
NAME_SYM
=
594
,
NCHAR_STRING
=
594
,
NATIONAL_SYM
=
595
,
NCHAR_SYM
=
595
,
NATURAL
=
596
,
NDBCLUSTER_SYM
=
596
,
NCHAR_STRING
=
597
,
NE
=
597
,
NCHAR_SYM
=
598
,
NEG
=
598
,
NDBCLUSTER_SYM
=
599
,
NEW_SYM
=
599
,
NE
=
600
,
NEXT_SYM
=
600
,
NEG
=
601
,
NODEGROUP_SYM
=
601
,
NEW_SYM
=
602
,
NONE_SYM
=
602
,
NEXT_SYM
=
603
,
NOT2_SYM
=
603
,
NODEGROUP_SYM
=
604
,
NOT_SYM
=
604
,
NONE_SYM
=
605
,
NOW_SYM
=
605
,
NOT2_SYM
=
606
,
NO_SYM
=
606
,
NOT_SYM
=
607
,
NO_WAIT_SYM
=
607
,
NOW_SYM
=
608
,
NO_WRITE_TO_BINLOG
=
608
,
NO_SYM
=
609
,
NULL_SYM
=
609
,
NO_WAIT_SYM
=
610
,
NUM
=
610
,
NO_WRITE_TO_BINLOG
=
611
,
NUMERIC_SYM
=
611
,
NULL_SYM
=
612
,
NVARCHAR_SYM
=
612
,
NUM
=
613
,
OFFSET_SYM
=
613
,
NUMERIC_SYM
=
614
,
OLD_PASSWORD
=
614
,
NVARCHAR_SYM
=
615
,
ON
=
615
,
OFFSET_SYM
=
616
,
ONE_SHOT_SYM
=
616
,
OLD_PASSWORD
=
617
,
ONE_SYM
=
617
,
ON
=
618
,
ONLINE_SYM
=
618
,
ONE_SHOT_SYM
=
619
,
OPEN_SYM
=
619
,
ONE_SYM
=
620
,
OPTIMIZE
=
620
,
ONLINE_SYM
=
621
,
OPTIONS_SYM
=
621
,
OPEN_SYM
=
622
,
OPTION
=
622
,
OPTIMIZE
=
623
,
OPTIONALLY
=
623
,
OPTIONS_SYM
=
624
,
OR2_SYM
=
624
,
OPTION
=
625
,
ORDER_SYM
=
625
,
OPTIONALLY
=
626
,
OR_OR_SYM
=
626
,
OR2_SYM
=
627
,
OR_SYM
=
627
,
ORDER_SYM
=
628
,
OUTER
=
628
,
OR_OR_SYM
=
629
,
OUTFILE
=
629
,
OR_SYM
=
630
,
OUT_SYM
=
630
,
OUTER
=
631
,
OWNER_SYM
=
631
,
OUTFILE
=
632
,
PACK_KEYS_SYM
=
632
,
OUT_SYM
=
633
,
PAGE_SYM
=
633
,
OWNER_SYM
=
634
,
PAGE_CHECKSUM_SYM
=
634
,
PACK_KEYS_SYM
=
635
,
PARAM_MARKER
=
635
,
PAGE_SYM
=
636
,
PARSER_SYM
=
636
,
PAGE_CHECKSUM_SYM
=
637
,
PARSE_VCOL_EXPR_SYM
=
637
,
PARAM_MARKER
=
638
,
PARTIAL
=
638
,
PARSER_SYM
=
639
,
PARTITIONING_SYM
=
639
,
PARSE_VCOL_EXPR_SYM
=
640
,
PARTITIONS_SYM
=
640
,
PARTIAL
=
641
,
PARTITION_SYM
=
641
,
PARTITIONING_SYM
=
642
,
PASSWORD
=
642
,
PARTITIONS_SYM
=
643
,
PERSISTENT_SYM
=
643
,
PARTITION_SYM
=
644
,
PHASE_SYM
=
644
,
PASSWORD
=
645
,
PLUGINS_SYM
=
645
,
PERSISTENT_SYM
=
646
,
PLUGIN_SYM
=
646
,
PHASE_SYM
=
647
,
POINT_SYM
=
647
,
PLUGINS_SYM
=
648
,
POLYGON
=
648
,
PLUGIN_SYM
=
649
,
PORT_SYM
=
649
,
POINT_SYM
=
650
,
POSITION_SYM
=
650
,
POLYGON
=
651
,
PRECISION
=
651
,
PORT_SYM
=
652
,
PREPARE_SYM
=
652
,
POSITION_SYM
=
653
,
PRESERVE_SYM
=
653
,
PRECISION
=
654
,
PREV_SYM
=
654
,
PREPARE_SYM
=
655
,
PRIMARY_SYM
=
655
,
PRESERVE_SYM
=
656
,
PRIVILEGES
=
656
,
PREV_SYM
=
657
,
PROCEDURE_SYM
=
657
,
PRIMARY_SYM
=
658
,
PROCESS
=
658
,
PRIVILEGES
=
659
,
PROCESSLIST_SYM
=
659
,
PROCEDURE_SYM
=
660
,
PROFILE_SYM
=
660
,
PROCESS
=
661
,
PROFILES_SYM
=
661
,
PROCESSLIST_SYM
=
662
,
PROXY_SYM
=
662
,
PROFILE_SYM
=
663
,
PURGE
=
663
,
PROFILES_SYM
=
664
,
QUARTER_SYM
=
664
,
PROXY_SYM
=
665
,
QUERY_SYM
=
665
,
PURGE
=
666
,
QUICK
=
666
,
QUARTER_SYM
=
667
,
RANGE_SYM
=
667
,
QUERY_SYM
=
668
,
READS_SYM
=
668
,
QUICK
=
669
,
READ_ONLY_SYM
=
669
,
RANGE_SYM
=
670
,
READ_SYM
=
670
,
READS_SYM
=
671
,
READ_WRITE_SYM
=
671
,
READ_ONLY_SYM
=
672
,
REAL
=
672
,
READ_SYM
=
673
,
REBUILD_SYM
=
673
,
READ_WRITE_SYM
=
674
,
RECOVER_SYM
=
674
,
REAL
=
675
,
REDOFILE_SYM
=
675
,
REBUILD_SYM
=
676
,
REDO_BUFFER_SIZE_SYM
=
676
,
RECOVER_SYM
=
677
,
REDUNDANT_SYM
=
677
,
REDOFILE_SYM
=
678
,
REFERENCES
=
678
,
REDO_BUFFER_SIZE_SYM
=
679
,
REGEXP
=
679
,
REDUNDANT_SYM
=
680
,
RELAY
=
680
,
REFERENCES
=
681
,
RELAYLOG_SYM
=
681
,
REGEXP
=
682
,
RELAY_LOG_FILE_SYM
=
682
,
RELAY
=
683
,
RELAY_LOG_POS_SYM
=
683
,
RELAYLOG_SYM
=
684
,
RELAY_THREAD
=
684
,
RELAY_LOG_FILE_SYM
=
685
,
RELEASE_SYM
=
685
,
RELAY_LOG_POS_SYM
=
686
,
RELOAD
=
686
,
RELAY_THREAD
=
687
,
REMOVE_SYM
=
687
,
RELEASE_SYM
=
688
,
RENAME
=
688
,
RELOAD
=
689
,
REORGANIZE_SYM
=
689
,
REMOVE_SYM
=
690
,
REPAIR
=
690
,
RENAME
=
691
,
REPEATABLE_SYM
=
691
,
REORGANIZE_SYM
=
692
,
REPEAT_SYM
=
692
,
REPAIR
=
693
,
REPLACE
=
693
,
REPEATABLE_SYM
=
694
,
REPLICATION
=
694
,
REPEAT_SYM
=
695
,
REQUIRE_SYM
=
695
,
REPLACE
=
696
,
RESET_SYM
=
696
,
REPLICATION
=
697
,
RESIGNAL_SYM
=
697
,
REQUIRE_SYM
=
698
,
RESOURCES
=
698
,
RESET_SYM
=
699
,
RESTORE_SYM
=
699
,
RESIGNAL_SYM
=
700
,
RESTRICT
=
700
,
RESOURCES
=
701
,
RESUME_SYM
=
701
,
RESTORE_SYM
=
702
,
RETURNS_SYM
=
702
,
RESTRICT
=
703
,
RETURN_SYM
=
703
,
RESUME_SYM
=
704
,
REVOKE
=
704
,
RETURNS_SYM
=
705
,
RIGHT
=
705
,
RETURN_SYM
=
706
,
ROLLBACK_SYM
=
706
,
REVOKE
=
707
,
ROLLUP_SYM
=
707
,
RIGHT
=
708
,
ROUTINE_SYM
=
708
,
ROLLBACK_SYM
=
709
,
ROWS_SYM
=
709
,
ROLLUP_SYM
=
710
,
ROW_FORMAT_SYM
=
710
,
ROUTINE_SYM
=
711
,
ROW_SYM
=
711
,
ROWS_SYM
=
712
,
RTREE_SYM
=
712
,
ROW_FORMAT_SYM
=
713
,
SAVEPOINT_SYM
=
713
,
ROW_SYM
=
714
,
SCHEDULE_SYM
=
714
,
RTREE_SYM
=
715
,
SCHEMA_NAME_SYM
=
715
,
SAVEPOINT_SYM
=
716
,
SECOND_MICROSECOND_SYM
=
716
,
SCHEDULE_SYM
=
717
,
SECOND_SYM
=
717
,
SCHEMA_NAME_SYM
=
718
,
SECURITY_SYM
=
718
,
SECOND_MICROSECOND_SYM
=
719
,
SELECT_SYM
=
719
,
SECOND_SYM
=
720
,
SENSITIVE_SYM
=
720
,
SECURITY_SYM
=
721
,
SEPARATOR_SYM
=
721
,
SELECT_SYM
=
722
,
SERIALIZABLE_SYM
=
722
,
SENSITIVE_SYM
=
723
,
SERIAL_SYM
=
723
,
SEPARATOR_SYM
=
724
,
SESSION_SYM
=
724
,
SERIALIZABLE_SYM
=
725
,
SERVER_SYM
=
725
,
SERIAL_SYM
=
726
,
SERVER_OPTIONS
=
726
,
SESSION_SYM
=
727
,
SET
=
727
,
SERVER_SYM
=
728
,
SET_VAR
=
728
,
SERVER_OPTIONS
=
729
,
SHARE_SYM
=
729
,
SET
=
730
,
SHIFT_LEFT
=
730
,
SET_VAR
=
731
,
SHIFT_RIGHT
=
731
,
SHARE_SYM
=
732
,
SHOW
=
732
,
SHIFT_LEFT
=
733
,
SHUTDOWN
=
733
,
SHIFT_RIGHT
=
734
,
SIGNAL_SYM
=
734
,
SHOW
=
735
,
SIGNED_SYM
=
735
,
SHUTDOWN
=
736
,
SIMPLE_SYM
=
736
,
SIGNAL_SYM
=
737
,
SLAVE
=
737
,
SIGNED_SYM
=
738
,
SLOW
=
738
,
SIMPLE_SYM
=
739
,
SMALLINT
=
739
,
SLAVE
=
740
,
SNAPSHOT_SYM
=
740
,
SLOW
=
741
,
SOCKET_SYM
=
741
,
SMALLINT
=
742
,
SOFT_SYM
=
742
,
SNAPSHOT_SYM
=
743
,
SONAME_SYM
=
743
,
SOCKET_SYM
=
744
,
SOUNDS_SYM
=
744
,
SOFT_SYM
=
745
,
SOURCE_SYM
=
745
,
SONAME_SYM
=
746
,
SPATIAL_SYM
=
746
,
SOUNDS_SYM
=
747
,
SPECIFIC_SYM
=
747
,
SOURCE_SYM
=
748
,
SQLEXCEPTION_SYM
=
748
,
SPATIAL_SYM
=
749
,
SQLSTATE_SYM
=
749
,
SPECIFIC_SYM
=
750
,
SQLWARNING_SYM
=
750
,
SQLEXCEPTION_SYM
=
751
,
SQL_BIG_RESULT
=
751
,
SQLSTATE_SYM
=
752
,
SQL_BUFFER_RESULT
=
752
,
SQLWARNING_SYM
=
753
,
SQL_CACHE_SYM
=
753
,
SQL_BIG_RESULT
=
754
,
SQL_CALC_FOUND_ROWS
=
754
,
SQL_BUFFER_RESULT
=
755
,
SQL_NO_CACHE_SYM
=
755
,
SQL_CACHE_SYM
=
756
,
SQL_SMALL_RESULT
=
756
,
SQL_CALC_FOUND_ROWS
=
757
,
SQL_SYM
=
757
,
SQL_NO_CACHE_SYM
=
758
,
SQL_THREAD
=
758
,
SQL_SMALL_RESULT
=
759
,
SSL_SYM
=
759
,
SQL_SYM
=
760
,
STARTING
=
760
,
SQL_THREAD
=
761
,
STARTS_SYM
=
761
,
SSL_SYM
=
762
,
START_SYM
=
762
,
STARTING
=
763
,
STATUS_SYM
=
763
,
STARTS_SYM
=
764
,
STDDEV_SAMP_SYM
=
764
,
START_SYM
=
765
,
STD_SYM
=
765
,
STATUS_SYM
=
766
,
STOP_SYM
=
766
,
STDDEV_SAMP_SYM
=
767
,
STORAGE_SYM
=
767
,
STD_SYM
=
768
,
STRAIGHT_JOIN
=
768
,
STOP_SYM
=
769
,
STRING_SYM
=
769
,
STORAGE_SYM
=
770
,
SUBCLASS_ORIGIN_SYM
=
770
,
STRAIGHT_JOIN
=
771
,
SUBDATE_SYM
=
771
,
STRING_SYM
=
772
,
SUBJECT_SYM
=
772
,
SUBCLASS_ORIGIN_SYM
=
773
,
SUBPARTITIONS_SYM
=
773
,
SUBDATE_SYM
=
774
,
SUBPARTITION_SYM
=
774
,
SUBJECT_SYM
=
775
,
SUBSTRING
=
775
,
SUBPARTITIONS_SYM
=
776
,
SUM_SYM
=
776
,
SUBPARTITION_SYM
=
777
,
SUPER_SYM
=
777
,
SUBSTRING
=
778
,
SUSPEND_SYM
=
778
,
SUM_SYM
=
779
,
SWAPS_SYM
=
779
,
SUPER_SYM
=
780
,
SWITCHES_SYM
=
780
,
SUSPEND_SYM
=
781
,
SYSDATE
=
781
,
SWAPS_SYM
=
782
,
TABLES
=
782
,
SWITCHES_SYM
=
783
,
TABLESPACE
=
783
,
SYSDATE
=
784
,
TABLE_REF_PRIORITY
=
784
,
TABLES
=
785
,
TABLE_STATS_SYM
=
785
,
TABLESPACE
=
786
,
TABLE_SYM
=
786
,
TABLE_REF_PRIORITY
=
787
,
TABLE_CHECKSUM_SYM
=
787
,
TABLE_STATS_SYM
=
788
,
TABLE_NAME_SYM
=
788
,
TABLE_SYM
=
789
,
TEMPORARY
=
789
,
TABLE_CHECKSUM_SYM
=
790
,
TEMPTABLE_SYM
=
790
,
TABLE_NAME_SYM
=
791
,
TERMINATED
=
791
,
TEMPORARY
=
792
,
TEXT_STRING
=
792
,
TEMPTABLE_SYM
=
793
,
TEXT_SYM
=
793
,
TERMINATED
=
794
,
THAN_SYM
=
794
,
TEXT_STRING
=
795
,
THEN_SYM
=
795
,
TEXT_SYM
=
796
,
TIMESTAMP
=
796
,
THAN_SYM
=
797
,
TIMESTAMP_ADD
=
797
,
THEN_SYM
=
798
,
TIMESTAMP_DIFF
=
798
,
TIMESTAMP
=
799
,
TIME_SYM
=
799
,
TIMESTAMP_ADD
=
800
,
TINYBLOB
=
800
,
TIMESTAMP_DIFF
=
801
,
TINYINT
=
801
,
TIME_SYM
=
802
,
TINYTEXT
=
802
,
TINYBLOB
=
803
,
TO_SYM
=
803
,
TINYINT
=
804
,
TRAILING
=
804
,
TINYTEXT
=
805
,
TRANSACTION_SYM
=
805
,
TO_SYM
=
806
,
TRANSACTIONAL_SYM
=
806
,
TRAILING
=
807
,
TRIGGERS_SYM
=
807
,
TRANSACTION_SYM
=
808
,
TRIGGER_SYM
=
808
,
TRANSACTIONAL_SYM
=
809
,
TRIM
=
809
,
TRIGGERS_SYM
=
810
,
TRUE_SYM
=
810
,
TRIGGER_SYM
=
811
,
TRUNCATE_SYM
=
811
,
TRIM
=
812
,
TYPES_SYM
=
812
,
TRUE_SYM
=
813
,
TYPE_SYM
=
813
,
TRUNCATE_SYM
=
814
,
UDF_RETURNS_SYM
=
814
,
TYPES_SYM
=
815
,
ULONGLONG_NUM
=
815
,
TYPE_SYM
=
816
,
UNCOMMITTED_SYM
=
816
,
UDF_RETURNS_SYM
=
817
,
UNDEFINED_SYM
=
817
,
ULONGLONG_NUM
=
818
,
UNDERSCORE_CHARSET
=
818
,
UNCOMMITTED_SYM
=
819
,
UNDOFILE_SYM
=
819
,
UNDEFINED_SYM
=
820
,
UNDO_BUFFER_SIZE_SYM
=
820
,
UNDERSCORE_CHARSET
=
821
,
UNDO_SYM
=
821
,
UNDOFILE_SYM
=
822
,
UNICODE_SYM
=
822
,
UNDO_BUFFER_SIZE_SYM
=
823
,
UNINSTALL_SYM
=
823
,
UNDO_SYM
=
824
,
UNION_SYM
=
824
,
UNICODE_SYM
=
825
,
UNIQUE_SYM
=
825
,
UNINSTALL_SYM
=
826
,
UNKNOWN_SYM
=
826
,
UNION_SYM
=
827
,
UNLOCK_SYM
=
827
,
UNIQUE_SYM
=
828
,
UNSIGNED
=
828
,
UNKNOWN_SYM
=
829
,
UNTIL_SYM
=
829
,
UNLOCK_SYM
=
830
,
UPDATE_SYM
=
830
,
UNSIGNED
=
831
,
UPGRADE_SYM
=
831
,
UNTIL_SYM
=
832
,
USAGE
=
832
,
UPDATE_SYM
=
833
,
USER
=
833
,
UPGRADE_SYM
=
834
,
USER_STATS_SYM
=
834
,
USAGE
=
835
,
USE_FRM
=
835
,
USER
=
836
,
USE_SYM
=
836
,
USER_STATS_SYM
=
837
,
USING
=
837
,
USE_FRM
=
838
,
UTC_DATE_SYM
=
838
,
USE_SYM
=
839
,
UTC_TIMESTAMP_SYM
=
839
,
USING
=
840
,
UTC_TIME_SYM
=
840
,
UTC_DATE_SYM
=
841
,
VALUES
=
841
,
UTC_TIMESTAMP_SYM
=
842
,
VALUE_SYM
=
842
,
UTC_TIME_SYM
=
843
,
VARBINARY
=
843
,
VALUES
=
844
,
VARCHAR
=
844
,
VALUE_SYM
=
845
,
VARIABLES
=
845
,
VARBINARY
=
846
,
VARIANCE_SYM
=
846
,
VARCHAR
=
847
,
VARYING
=
847
,
VARIABLES
=
848
,
VAR_SAMP_SYM
=
848
,
VARIANCE_SYM
=
849
,
VIA_SYM
=
849
,
VARYING
=
850
,
VIEW_SYM
=
850
,
VAR_SAMP_SYM
=
851
,
VIRTUAL_SYM
=
851
,
VIA_SYM
=
852
,
WAIT_SYM
=
852
,
VIEW_SYM
=
853
,
WARNINGS
=
853
,
VIRTUAL_SYM
=
854
,
WEEK_SYM
=
854
,
WAIT_SYM
=
855
,
WHEN_SYM
=
855
,
WARNINGS
=
856
,
WHERE
=
856
,
WEEK_SYM
=
857
,
WHILE_SYM
=
857
,
WHEN_SYM
=
858
,
WITH
=
858
,
WHERE
=
859
,
WITH_CUBE_SYM
=
859
,
WHILE_SYM
=
860
,
WITH_ROLLUP_SYM
=
860
,
WITH
=
861
,
WORK_SYM
=
861
,
WITH_CUBE_SYM
=
862
,
WRAPPER_SYM
=
862
,
WITH_ROLLUP_SYM
=
863
,
WRITE_SYM
=
863
,
WORK_SYM
=
864
,
X509_SYM
=
864
,
WRAPPER_SYM
=
865
,
XA_SYM
=
865
,
WRITE_SYM
=
866
,
XML_SYM
=
866
,
X509_SYM
=
867
,
XOR
=
867
,
XA_SYM
=
868
,
YEAR_MONTH_SYM
=
868
,
XML_SYM
=
869
,
YEAR_SYM
=
869
,
XOR
=
870
,
ZEROFILL
=
870
,
YEAR_MONTH_SYM
=
871
,
IMPOSSIBLE_ACTION
=
871
YEAR_SYM
=
872
,
ZEROFILL
=
873
,
IMPOSSIBLE_ACTION
=
874
};
};
#endif
#endif
/* Tokens. */
/* Tokens. */
...
@@ -817,465 +814,462 @@
...
@@ -817,465 +814,462 @@
#define ENGINES_SYM 413
#define ENGINES_SYM 413
#define ENGINE_SYM 414
#define ENGINE_SYM 414
#define ENUM 415
#define ENUM 415
#define EQ 416
#define EQUAL_SYM 416
#define EQUAL_SYM 417
#define ERROR_SYM 417
#define ERROR_SYM 418
#define ERRORS 418
#define ERRORS 419
#define ESCAPED 419
#define ESCAPED 420
#define ESCAPE_SYM 420
#define ESCAPE_SYM 421
#define EVENTS_SYM 421
#define EVENTS_SYM 422
#define EVENT_SYM 422
#define EVENT_SYM 423
#define EVERY_SYM 423
#define EVERY_SYM 424
#define EXAMINED_SYM 424
#define EXAMINED_SYM 425
#define EXECUTE_SYM 425
#define EXECUTE_SYM 426
#define EXISTS 426
#define EXISTS 427
#define EXIT_SYM 427
#define EXIT_SYM 428
#define EXPANSION_SYM 428
#define EXPANSION_SYM 429
#define EXTENDED_SYM 429
#define EXTENDED_SYM 430
#define EXTENT_SIZE_SYM 430
#define EXTENT_SIZE_SYM 431
#define EXTRACT_SYM 431
#define EXTRACT_SYM 432
#define FALSE_SYM 432
#define FALSE_SYM 433
#define FAST_SYM 433
#define FAST_SYM 434
#define FAULTS_SYM 434
#define FAULTS_SYM 435
#define FETCH_SYM 435
#define FETCH_SYM 436
#define FILE_SYM 436
#define FILE_SYM 437
#define FIRST_SYM 437
#define FIRST_SYM 438
#define FIXED_SYM 438
#define FIXED_SYM 439
#define FLOAT_NUM 439
#define FLOAT_NUM 440
#define FLOAT_SYM 440
#define FLOAT_SYM 441
#define FLUSH_SYM 441
#define FLUSH_SYM 442
#define FORCE_SYM 442
#define FORCE_SYM 443
#define FOREIGN 443
#define FOREIGN 444
#define FOR_SYM 444
#define FOR_SYM 445
#define FOUND_SYM 445
#define FOUND_SYM 446
#define FROM 446
#define FROM 447
#define FULL 447
#define FULL 448
#define FULLTEXT_SYM 448
#define FULLTEXT_SYM 449
#define FUNCTION_SYM 449
#define FUNCTION_SYM 450
#define GE 450
#define GE 451
#define GENERAL 451
#define GENERAL 452
#define GENERATED_SYM 452
#define GENERATED_SYM 453
#define GEOMETRYCOLLECTION 453
#define GEOMETRYCOLLECTION 454
#define GEOMETRY_SYM 454
#define GEOMETRY_SYM 455
#define GET_FORMAT 455
#define GET_FORMAT 456
#define GLOBAL_SYM 456
#define GLOBAL_SYM 457
#define GRANT 457
#define GRANT 458
#define GRANTS 458
#define GRANTS 459
#define GROUP_SYM 459
#define GROUP_SYM 460
#define GROUP_CONCAT_SYM 460
#define GROUP_CONCAT_SYM 461
#define HANDLER_SYM 461
#define GT_SYM 462
#define HARD_SYM 462
#define HANDLER_SYM 463
#define HASH_SYM 463
#define HARD_SYM 464
#define HAVING 464
#define HASH_SYM 465
#define HELP_SYM 465
#define HAVING 466
#define HEX_NUM 466
#define HELP_SYM 467
#define HEX_STRING 467
#define HEX_NUM 468
#define HIGH_PRIORITY 468
#define HEX_STRING 469
#define HOST_SYM 469
#define HIGH_PRIORITY 470
#define HOSTS_SYM 470
#define HOST_SYM 471
#define HOUR_MICROSECOND_SYM 471
#define HOSTS_SYM 472
#define HOUR_MINUTE_SYM 472
#define HOUR_MICROSECOND_SYM 473
#define HOUR_SECOND_SYM 473
#define HOUR_MINUTE_SYM 474
#define HOUR_SYM 474
#define HOUR_SECOND_SYM 475
#define IDENT 475
#define HOUR_SYM 476
#define IDENTIFIED_SYM 476
#define IDENT 477
#define IDENT_QUOTED 477
#define IDENTIFIED_SYM 478
#define IF 478
#define IDENT_QUOTED 479
#define IGNORE_SYM 479
#define IF 480
#define IGNORE_SERVER_IDS_SYM 480
#define IGNORE_SYM 481
#define IMPORT 481
#define IGNORE_SERVER_IDS_SYM 482
#define INDEXES 482
#define IMPORT 483
#define INDEX_SYM 483
#define INDEXES 484
#define INDEX_STATS_SYM 484
#define INDEX_SYM 485
#define INFILE 485
#define INDEX_STATS_SYM 486
#define INITIAL_SIZE_SYM 486
#define INFILE 487
#define INNER_SYM 487
#define INITIAL_SIZE_SYM 488
#define INOUT_SYM 488
#define INNER_SYM 489
#define INSENSITIVE_SYM 489
#define INOUT_SYM 490
#define INSERT 490
#define INSENSITIVE_SYM 491
#define INSERT_METHOD 491
#define INSERT 492
#define INSTALL_SYM 492
#define INSERT_METHOD 493
#define INTERVAL_SYM 493
#define INSTALL_SYM 494
#define INTO 494
#define INTERVAL_SYM 495
#define INT_SYM 495
#define INTO 496
#define INVOKER_SYM 496
#define INT_SYM 497
#define IN_SYM 497
#define INVOKER_SYM 498
#define IO_SYM 498
#define IN_SYM 499
#define IPC_SYM 499
#define IO_SYM 500
#define IS 500
#define IPC_SYM 501
#define ISOLATION 501
#define IS 502
#define ISSUER_SYM 502
#define ISOLATION 503
#define ITERATE_SYM 503
#define ISSUER_SYM 504
#define JOIN_SYM 504
#define ITERATE_SYM 505
#define KEYS 505
#define JOIN_SYM 506
#define KEY_BLOCK_SIZE 506
#define KEYS 507
#define KEY_SYM 507
#define KEY_BLOCK_SIZE 508
#define KILL_SYM 508
#define KEY_SYM 509
#define LANGUAGE_SYM 509
#define KILL_SYM 510
#define LAST_SYM 510
#define LANGUAGE_SYM 511
#define LAST_VALUE 511
#define LAST_SYM 512
#define LE 512
#define LAST_VALUE 513
#define LEADING 513
#define LE 514
#define LEAVES 514
#define LEADING 515
#define LEAVE_SYM 515
#define LEAVES 516
#define LEFT 516
#define LEAVE_SYM 517
#define LESS_SYM 517
#define LEFT 518
#define LEVEL_SYM 518
#define LESS_SYM 519
#define LEX_HOSTNAME 519
#define LEVEL_SYM 520
#define LIKE 520
#define LEX_HOSTNAME 521
#define LIMIT 521
#define LIKE 522
#define LINEAR_SYM 522
#define LIMIT 523
#define LINES 523
#define LINEAR_SYM 524
#define LINESTRING 524
#define LINES 525
#define LIST_SYM 525
#define LINESTRING 526
#define LOAD 526
#define LIST_SYM 527
#define LOCAL_SYM 527
#define LOAD 528
#define LOCATOR_SYM 528
#define LOCAL_SYM 529
#define LOCKS_SYM 529
#define LOCATOR_SYM 530
#define LOCK_SYM 530
#define LOCKS_SYM 531
#define LOGFILE_SYM 531
#define LOCK_SYM 532
#define LOGS_SYM 532
#define LOGFILE_SYM 533
#define LONGBLOB 533
#define LOGS_SYM 534
#define LONGTEXT 534
#define LONGBLOB 535
#define LONG_NUM 535
#define LONGTEXT 536
#define LONG_SYM 536
#define LONG_NUM 537
#define LOOP_SYM 537
#define LONG_SYM 538
#define LOW_PRIORITY 538
#define LOOP_SYM 539
#define MASTER_CONNECT_RETRY_SYM 539
#define LOW_PRIORITY 540
#define MASTER_HOST_SYM 540
#define LT 541
#define MASTER_LOG_FILE_SYM 541
#define MASTER_CONNECT_RETRY_SYM 542
#define MASTER_LOG_POS_SYM 542
#define MASTER_HOST_SYM 543
#define MASTER_PASSWORD_SYM 543
#define MASTER_LOG_FILE_SYM 544
#define MASTER_PORT_SYM 544
#define MASTER_LOG_POS_SYM 545
#define MASTER_SERVER_ID_SYM 545
#define MASTER_PASSWORD_SYM 546
#define MASTER_SSL_CAPATH_SYM 546
#define MASTER_PORT_SYM 547
#define MASTER_SSL_CA_SYM 547
#define MASTER_SERVER_ID_SYM 548
#define MASTER_SSL_CERT_SYM 548
#define MASTER_SSL_CAPATH_SYM 549
#define MASTER_SSL_CIPHER_SYM 549
#define MASTER_SSL_CA_SYM 550
#define MASTER_SSL_KEY_SYM 550
#define MASTER_SSL_CERT_SYM 551
#define MASTER_SSL_SYM 551
#define MASTER_SSL_CIPHER_SYM 552
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 552
#define MASTER_SSL_KEY_SYM 553
#define MASTER_SYM 553
#define MASTER_SSL_SYM 554
#define MASTER_USER_SYM 554
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 555
#define MASTER_HEARTBEAT_PERIOD_SYM 555
#define MASTER_SYM 556
#define MATCH 556
#define MASTER_USER_SYM 557
#define MAX_CONNECTIONS_PER_HOUR 557
#define MASTER_HEARTBEAT_PERIOD_SYM 558
#define MAX_QUERIES_PER_HOUR 558
#define MATCH 559
#define MAX_ROWS 559
#define MAX_CONNECTIONS_PER_HOUR 560
#define MAX_SIZE_SYM 560
#define MAX_QUERIES_PER_HOUR 561
#define MAX_SYM 561
#define MAX_ROWS 562
#define MAX_UPDATES_PER_HOUR 562
#define MAX_SIZE_SYM 563
#define MAX_USER_CONNECTIONS_SYM 563
#define MAX_SYM 564
#define MAX_VALUE_SYM 564
#define MAX_UPDATES_PER_HOUR 565
#define MEDIUMBLOB 565
#define MAX_USER_CONNECTIONS_SYM 566
#define MEDIUMINT 566
#define MAX_VALUE_SYM 567
#define MEDIUMTEXT 567
#define MEDIUMBLOB 568
#define MEDIUM_SYM 568
#define MEDIUMINT 569
#define MEMORY_SYM 569
#define MEDIUMTEXT 570
#define MERGE_SYM 570
#define MEDIUM_SYM 571
#define MESSAGE_TEXT_SYM 571
#define MEMORY_SYM 572
#define MICROSECOND_SYM 572
#define MERGE_SYM 573
#define MIGRATE_SYM 573
#define MESSAGE_TEXT_SYM 574
#define MINUTE_MICROSECOND_SYM 574
#define MICROSECOND_SYM 575
#define MINUTE_SECOND_SYM 575
#define MIGRATE_SYM 576
#define MINUTE_SYM 576
#define MINUTE_MICROSECOND_SYM 577
#define MIN_ROWS 577
#define MINUTE_SECOND_SYM 578
#define MIN_SYM 578
#define MINUTE_SYM 579
#define MODE_SYM 579
#define MIN_ROWS 580
#define MODIFIES_SYM 580
#define MIN_SYM 581
#define MODIFY_SYM 581
#define MODE_SYM 582
#define MOD_SYM 582
#define MODIFIES_SYM 583
#define MONTH_SYM 583
#define MODIFY_SYM 584
#define MULTILINESTRING 584
#define MOD_SYM 585
#define MULTIPOINT 585
#define MONTH_SYM 586
#define MULTIPOLYGON 586
#define MULTILINESTRING 587
#define MUTEX_SYM 587
#define MULTIPOINT 588
#define MYSQL_SYM 588
#define MULTIPOLYGON 589
#define MYSQL_ERRNO_SYM 589
#define MUTEX_SYM 590
#define NAMES_SYM 590
#define MYSQL_SYM 591
#define NAME_SYM 591
#define MYSQL_ERRNO_SYM 592
#define NATIONAL_SYM 592
#define NAMES_SYM 593
#define NATURAL 593
#define NAME_SYM 594
#define NCHAR_STRING 594
#define NATIONAL_SYM 595
#define NCHAR_SYM 595
#define NATURAL 596
#define NDBCLUSTER_SYM 596
#define NCHAR_STRING 597
#define NE 597
#define NCHAR_SYM 598
#define NEG 598
#define NDBCLUSTER_SYM 599
#define NEW_SYM 599
#define NE 600
#define NEXT_SYM 600
#define NEG 601
#define NODEGROUP_SYM 601
#define NEW_SYM 602
#define NONE_SYM 602
#define NEXT_SYM 603
#define NOT2_SYM 603
#define NODEGROUP_SYM 604
#define NOT_SYM 604
#define NONE_SYM 605
#define NOW_SYM 605
#define NOT2_SYM 606
#define NO_SYM 606
#define NOT_SYM 607
#define NO_WAIT_SYM 607
#define NOW_SYM 608
#define NO_WRITE_TO_BINLOG 608
#define NO_SYM 609
#define NULL_SYM 609
#define NO_WAIT_SYM 610
#define NUM 610
#define NO_WRITE_TO_BINLOG 611
#define NUMERIC_SYM 611
#define NULL_SYM 612
#define NVARCHAR_SYM 612
#define NUM 613
#define OFFSET_SYM 613
#define NUMERIC_SYM 614
#define OLD_PASSWORD 614
#define NVARCHAR_SYM 615
#define ON 615
#define OFFSET_SYM 616
#define ONE_SHOT_SYM 616
#define OLD_PASSWORD 617
#define ONE_SYM 617
#define ON 618
#define ONLINE_SYM 618
#define ONE_SHOT_SYM 619
#define OPEN_SYM 619
#define ONE_SYM 620
#define OPTIMIZE 620
#define ONLINE_SYM 621
#define OPTIONS_SYM 621
#define OPEN_SYM 622
#define OPTION 622
#define OPTIMIZE 623
#define OPTIONALLY 623
#define OPTIONS_SYM 624
#define OR2_SYM 624
#define OPTION 625
#define ORDER_SYM 625
#define OPTIONALLY 626
#define OR_OR_SYM 626
#define OR2_SYM 627
#define OR_SYM 627
#define ORDER_SYM 628
#define OUTER 628
#define OR_OR_SYM 629
#define OUTFILE 629
#define OR_SYM 630
#define OUT_SYM 630
#define OUTER 631
#define OWNER_SYM 631
#define OUTFILE 632
#define PACK_KEYS_SYM 632
#define OUT_SYM 633
#define PAGE_SYM 633
#define OWNER_SYM 634
#define PAGE_CHECKSUM_SYM 634
#define PACK_KEYS_SYM 635
#define PARAM_MARKER 635
#define PAGE_SYM 636
#define PARSER_SYM 636
#define PAGE_CHECKSUM_SYM 637
#define PARSE_VCOL_EXPR_SYM 637
#define PARAM_MARKER 638
#define PARTIAL 638
#define PARSER_SYM 639
#define PARTITIONING_SYM 639
#define PARSE_VCOL_EXPR_SYM 640
#define PARTITIONS_SYM 640
#define PARTIAL 641
#define PARTITION_SYM 641
#define PARTITIONING_SYM 642
#define PASSWORD 642
#define PARTITIONS_SYM 643
#define PERSISTENT_SYM 643
#define PARTITION_SYM 644
#define PHASE_SYM 644
#define PASSWORD 645
#define PLUGINS_SYM 645
#define PERSISTENT_SYM 646
#define PLUGIN_SYM 646
#define PHASE_SYM 647
#define POINT_SYM 647
#define PLUGINS_SYM 648
#define POLYGON 648
#define PLUGIN_SYM 649
#define PORT_SYM 649
#define POINT_SYM 650
#define POSITION_SYM 650
#define POLYGON 651
#define PRECISION 651
#define PORT_SYM 652
#define PREPARE_SYM 652
#define POSITION_SYM 653
#define PRESERVE_SYM 653
#define PRECISION 654
#define PREV_SYM 654
#define PREPARE_SYM 655
#define PRIMARY_SYM 655
#define PRESERVE_SYM 656
#define PRIVILEGES 656
#define PREV_SYM 657
#define PROCEDURE_SYM 657
#define PRIMARY_SYM 658
#define PROCESS 658
#define PRIVILEGES 659
#define PROCESSLIST_SYM 659
#define PROCEDURE_SYM 660
#define PROFILE_SYM 660
#define PROCESS 661
#define PROFILES_SYM 661
#define PROCESSLIST_SYM 662
#define PROXY_SYM 662
#define PROFILE_SYM 663
#define PURGE 663
#define PROFILES_SYM 664
#define QUARTER_SYM 664
#define PROXY_SYM 665
#define QUERY_SYM 665
#define PURGE 666
#define QUICK 666
#define QUARTER_SYM 667
#define RANGE_SYM 667
#define QUERY_SYM 668
#define READS_SYM 668
#define QUICK 669
#define READ_ONLY_SYM 669
#define RANGE_SYM 670
#define READ_SYM 670
#define READS_SYM 671
#define READ_WRITE_SYM 671
#define READ_ONLY_SYM 672
#define REAL 672
#define READ_SYM 673
#define REBUILD_SYM 673
#define READ_WRITE_SYM 674
#define RECOVER_SYM 674
#define REAL 675
#define REDOFILE_SYM 675
#define REBUILD_SYM 676
#define REDO_BUFFER_SIZE_SYM 676
#define RECOVER_SYM 677
#define REDUNDANT_SYM 677
#define REDOFILE_SYM 678
#define REFERENCES 678
#define REDO_BUFFER_SIZE_SYM 679
#define REGEXP 679
#define REDUNDANT_SYM 680
#define RELAY 680
#define REFERENCES 681
#define RELAYLOG_SYM 681
#define REGEXP 682
#define RELAY_LOG_FILE_SYM 682
#define RELAY 683
#define RELAY_LOG_POS_SYM 683
#define RELAYLOG_SYM 684
#define RELAY_THREAD 684
#define RELAY_LOG_FILE_SYM 685
#define RELEASE_SYM 685
#define RELAY_LOG_POS_SYM 686
#define RELOAD 686
#define RELAY_THREAD 687
#define REMOVE_SYM 687
#define RELEASE_SYM 688
#define RENAME 688
#define RELOAD 689
#define REORGANIZE_SYM 689
#define REMOVE_SYM 690
#define REPAIR 690
#define RENAME 691
#define REPEATABLE_SYM 691
#define REORGANIZE_SYM 692
#define REPEAT_SYM 692
#define REPAIR 693
#define REPLACE 693
#define REPEATABLE_SYM 694
#define REPLICATION 694
#define REPEAT_SYM 695
#define REQUIRE_SYM 695
#define REPLACE 696
#define RESET_SYM 696
#define REPLICATION 697
#define RESIGNAL_SYM 697
#define REQUIRE_SYM 698
#define RESOURCES 698
#define RESET_SYM 699
#define RESTORE_SYM 699
#define RESIGNAL_SYM 700
#define RESTRICT 700
#define RESOURCES 701
#define RESUME_SYM 701
#define RESTORE_SYM 702
#define RETURNS_SYM 702
#define RESTRICT 703
#define RETURN_SYM 703
#define RESUME_SYM 704
#define REVOKE 704
#define RETURNS_SYM 705
#define RIGHT 705
#define RETURN_SYM 706
#define ROLLBACK_SYM 706
#define REVOKE 707
#define ROLLUP_SYM 707
#define RIGHT 708
#define ROUTINE_SYM 708
#define ROLLBACK_SYM 709
#define ROWS_SYM 709
#define ROLLUP_SYM 710
#define ROW_FORMAT_SYM 710
#define ROUTINE_SYM 711
#define ROW_SYM 711
#define ROWS_SYM 712
#define RTREE_SYM 712
#define ROW_FORMAT_SYM 713
#define SAVEPOINT_SYM 713
#define ROW_SYM 714
#define SCHEDULE_SYM 714
#define RTREE_SYM 715
#define SCHEMA_NAME_SYM 715
#define SAVEPOINT_SYM 716
#define SECOND_MICROSECOND_SYM 716
#define SCHEDULE_SYM 717
#define SECOND_SYM 717
#define SCHEMA_NAME_SYM 718
#define SECURITY_SYM 718
#define SECOND_MICROSECOND_SYM 719
#define SELECT_SYM 719
#define SECOND_SYM 720
#define SENSITIVE_SYM 720
#define SECURITY_SYM 721
#define SEPARATOR_SYM 721
#define SELECT_SYM 722
#define SERIALIZABLE_SYM 722
#define SENSITIVE_SYM 723
#define SERIAL_SYM 723
#define SEPARATOR_SYM 724
#define SESSION_SYM 724
#define SERIALIZABLE_SYM 725
#define SERVER_SYM 725
#define SERIAL_SYM 726
#define SERVER_OPTIONS 726
#define SESSION_SYM 727
#define SET 727
#define SERVER_SYM 728
#define SET_VAR 728
#define SERVER_OPTIONS 729
#define SHARE_SYM 729
#define SET 730
#define SHIFT_LEFT 730
#define SET_VAR 731
#define SHIFT_RIGHT 731
#define SHARE_SYM 732
#define SHOW 732
#define SHIFT_LEFT 733
#define SHUTDOWN 733
#define SHIFT_RIGHT 734
#define SIGNAL_SYM 734
#define SHOW 735
#define SIGNED_SYM 735
#define SHUTDOWN 736
#define SIMPLE_SYM 736
#define SIGNAL_SYM 737
#define SLAVE 737
#define SIGNED_SYM 738
#define SLOW 738
#define SIMPLE_SYM 739
#define SMALLINT 739
#define SLAVE 740
#define SNAPSHOT_SYM 740
#define SLOW 741
#define SOCKET_SYM 741
#define SMALLINT 742
#define SOFT_SYM 742
#define SNAPSHOT_SYM 743
#define SONAME_SYM 743
#define SOCKET_SYM 744
#define SOUNDS_SYM 744
#define SOFT_SYM 745
#define SOURCE_SYM 745
#define SONAME_SYM 746
#define SPATIAL_SYM 746
#define SOUNDS_SYM 747
#define SPECIFIC_SYM 747
#define SOURCE_SYM 748
#define SQLEXCEPTION_SYM 748
#define SPATIAL_SYM 749
#define SQLSTATE_SYM 749
#define SPECIFIC_SYM 750
#define SQLWARNING_SYM 750
#define SQLEXCEPTION_SYM 751
#define SQL_BIG_RESULT 751
#define SQLSTATE_SYM 752
#define SQL_BUFFER_RESULT 752
#define SQLWARNING_SYM 753
#define SQL_CACHE_SYM 753
#define SQL_BIG_RESULT 754
#define SQL_CALC_FOUND_ROWS 754
#define SQL_BUFFER_RESULT 755
#define SQL_NO_CACHE_SYM 755
#define SQL_CACHE_SYM 756
#define SQL_SMALL_RESULT 756
#define SQL_CALC_FOUND_ROWS 757
#define SQL_SYM 757
#define SQL_NO_CACHE_SYM 758
#define SQL_THREAD 758
#define SQL_SMALL_RESULT 759
#define SSL_SYM 759
#define SQL_SYM 760
#define STARTING 760
#define SQL_THREAD 761
#define STARTS_SYM 761
#define SSL_SYM 762
#define START_SYM 762
#define STARTING 763
#define STATUS_SYM 763
#define STARTS_SYM 764
#define STDDEV_SAMP_SYM 764
#define START_SYM 765
#define STD_SYM 765
#define STATUS_SYM 766
#define STOP_SYM 766
#define STDDEV_SAMP_SYM 767
#define STORAGE_SYM 767
#define STD_SYM 768
#define STRAIGHT_JOIN 768
#define STOP_SYM 769
#define STRING_SYM 769
#define STORAGE_SYM 770
#define SUBCLASS_ORIGIN_SYM 770
#define STRAIGHT_JOIN 771
#define SUBDATE_SYM 771
#define STRING_SYM 772
#define SUBJECT_SYM 772
#define SUBCLASS_ORIGIN_SYM 773
#define SUBPARTITIONS_SYM 773
#define SUBDATE_SYM 774
#define SUBPARTITION_SYM 774
#define SUBJECT_SYM 775
#define SUBSTRING 775
#define SUBPARTITIONS_SYM 776
#define SUM_SYM 776
#define SUBPARTITION_SYM 777
#define SUPER_SYM 777
#define SUBSTRING 778
#define SUSPEND_SYM 778
#define SUM_SYM 779
#define SWAPS_SYM 779
#define SUPER_SYM 780
#define SWITCHES_SYM 780
#define SUSPEND_SYM 781
#define SYSDATE 781
#define SWAPS_SYM 782
#define TABLES 782
#define SWITCHES_SYM 783
#define TABLESPACE 783
#define SYSDATE 784
#define TABLE_REF_PRIORITY 784
#define TABLES 785
#define TABLE_STATS_SYM 785
#define TABLESPACE 786
#define TABLE_SYM 786
#define TABLE_REF_PRIORITY 787
#define TABLE_CHECKSUM_SYM 787
#define TABLE_STATS_SYM 788
#define TABLE_NAME_SYM 788
#define TABLE_SYM 789
#define TEMPORARY 789
#define TABLE_CHECKSUM_SYM 790
#define TEMPTABLE_SYM 790
#define TABLE_NAME_SYM 791
#define TERMINATED 791
#define TEMPORARY 792
#define TEXT_STRING 792
#define TEMPTABLE_SYM 793
#define TEXT_SYM 793
#define TERMINATED 794
#define THAN_SYM 794
#define TEXT_STRING 795
#define THEN_SYM 795
#define TEXT_SYM 796
#define TIMESTAMP 796
#define THAN_SYM 797
#define TIMESTAMP_ADD 797
#define THEN_SYM 798
#define TIMESTAMP_DIFF 798
#define TIMESTAMP 799
#define TIME_SYM 799
#define TIMESTAMP_ADD 800
#define TINYBLOB 800
#define TIMESTAMP_DIFF 801
#define TINYINT 801
#define TIME_SYM 802
#define TINYTEXT 802
#define TINYBLOB 803
#define TO_SYM 803
#define TINYINT 804
#define TRAILING 804
#define TINYTEXT 805
#define TRANSACTION_SYM 805
#define TO_SYM 806
#define TRANSACTIONAL_SYM 806
#define TRAILING 807
#define TRIGGERS_SYM 807
#define TRANSACTION_SYM 808
#define TRIGGER_SYM 808
#define TRANSACTIONAL_SYM 809
#define TRIM 809
#define TRIGGERS_SYM 810
#define TRUE_SYM 810
#define TRIGGER_SYM 811
#define TRUNCATE_SYM 811
#define TRIM 812
#define TYPES_SYM 812
#define TRUE_SYM 813
#define TYPE_SYM 813
#define TRUNCATE_SYM 814
#define UDF_RETURNS_SYM 814
#define TYPES_SYM 815
#define ULONGLONG_NUM 815
#define TYPE_SYM 816
#define UNCOMMITTED_SYM 816
#define UDF_RETURNS_SYM 817
#define UNDEFINED_SYM 817
#define ULONGLONG_NUM 818
#define UNDERSCORE_CHARSET 818
#define UNCOMMITTED_SYM 819
#define UNDOFILE_SYM 819
#define UNDEFINED_SYM 820
#define UNDO_BUFFER_SIZE_SYM 820
#define UNDERSCORE_CHARSET 821
#define UNDO_SYM 821
#define UNDOFILE_SYM 822
#define UNICODE_SYM 822
#define UNDO_BUFFER_SIZE_SYM 823
#define UNINSTALL_SYM 823
#define UNDO_SYM 824
#define UNION_SYM 824
#define UNICODE_SYM 825
#define UNIQUE_SYM 825
#define UNINSTALL_SYM 826
#define UNKNOWN_SYM 826
#define UNION_SYM 827
#define UNLOCK_SYM 827
#define UNIQUE_SYM 828
#define UNSIGNED 828
#define UNKNOWN_SYM 829
#define UNTIL_SYM 829
#define UNLOCK_SYM 830
#define UPDATE_SYM 830
#define UNSIGNED 831
#define UPGRADE_SYM 831
#define UNTIL_SYM 832
#define USAGE 832
#define UPDATE_SYM 833
#define USER 833
#define UPGRADE_SYM 834
#define USER_STATS_SYM 834
#define USAGE 835
#define USE_FRM 835
#define USER 836
#define USE_SYM 836
#define USER_STATS_SYM 837
#define USING 837
#define USE_FRM 838
#define UTC_DATE_SYM 838
#define USE_SYM 839
#define UTC_TIMESTAMP_SYM 839
#define USING 840
#define UTC_TIME_SYM 840
#define UTC_DATE_SYM 841
#define VALUES 841
#define UTC_TIMESTAMP_SYM 842
#define VALUE_SYM 842
#define UTC_TIME_SYM 843
#define VARBINARY 843
#define VALUES 844
#define VARCHAR 844
#define VALUE_SYM 845
#define VARIABLES 845
#define VARBINARY 846
#define VARIANCE_SYM 846
#define VARCHAR 847
#define VARYING 847
#define VARIABLES 848
#define VAR_SAMP_SYM 848
#define VARIANCE_SYM 849
#define VIA_SYM 849
#define VARYING 850
#define VIEW_SYM 850
#define VAR_SAMP_SYM 851
#define VIRTUAL_SYM 851
#define VIA_SYM 852
#define WAIT_SYM 852
#define VIEW_SYM 853
#define WARNINGS 853
#define VIRTUAL_SYM 854
#define WEEK_SYM 854
#define WAIT_SYM 855
#define WHEN_SYM 855
#define WARNINGS 856
#define WHERE 856
#define WEEK_SYM 857
#define WHILE_SYM 857
#define WHEN_SYM 858
#define WITH 858
#define WHERE 859
#define WITH_CUBE_SYM 859
#define WHILE_SYM 860
#define WITH_ROLLUP_SYM 860
#define WITH 861
#define WORK_SYM 861
#define WITH_CUBE_SYM 862
#define WRAPPER_SYM 862
#define WITH_ROLLUP_SYM 863
#define WRITE_SYM 863
#define WORK_SYM 864
#define X509_SYM 864
#define WRAPPER_SYM 865
#define XA_SYM 865
#define WRITE_SYM 866
#define XML_SYM 866
#define X509_SYM 867
#define XOR 867
#define XA_SYM 868
#define YEAR_MONTH_SYM 868
#define XML_SYM 869
#define YEAR_SYM 869
#define XOR 870
#define ZEROFILL 870
#define YEAR_MONTH_SYM 871
#define IMPOSSIBLE_ACTION 871
#define YEAR_SYM 872
#define ZEROFILL 873
#define IMPOSSIBLE_ACTION 874
...
@@ -1341,7 +1335,7 @@ typedef union YYSTYPE
...
@@ -1341,7 +1335,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */
/* Line 1676 of yacc.c */
#line 13
45
"/home/buildbot/git/mkdist/sql/sql_yacc.h"
#line 13
39
"/home/buildbot/git/mkdist/sql/sql_yacc.h"
}
YYSTYPE
;
}
YYSTYPE
;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE
/* obsolescent; will be withdrawn */
# define yystype YYSTYPE
/* obsolescent; will be withdrawn */
...
...
sql/sql_yacc.yy
View file @
28a18fef
...
@@ -970,7 +970,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
...
@@ -970,7 +970,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token ENGINES_SYM
%token ENGINES_SYM
%token ENGINE_SYM
%token ENGINE_SYM
%token ENUM
%token ENUM
%token EQ /* OPERATOR */
%token EQUAL_SYM /* OPERATOR */
%token EQUAL_SYM /* OPERATOR */
%token ERROR_SYM
%token ERROR_SYM
%token ERRORS
%token ERRORS
...
@@ -1016,7 +1015,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
...
@@ -1016,7 +1015,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token GRANTS
%token GRANTS
%token GROUP_SYM /* SQL-2003-R */
%token GROUP_SYM /* SQL-2003-R */
%token GROUP_CONCAT_SYM
%token GROUP_CONCAT_SYM
%token GT_SYM /* OPERATOR */
%token HANDLER_SYM
%token HANDLER_SYM
%token HARD_SYM
%token HARD_SYM
%token HASH_SYM
%token HASH_SYM
...
@@ -1095,7 +1093,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
...
@@ -1095,7 +1093,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token LONG_SYM
%token LONG_SYM
%token LOOP_SYM
%token LOOP_SYM
%token LOW_PRIORITY
%token LOW_PRIORITY
%token LT /* OPERATOR */
%token MASTER_CONNECT_RETRY_SYM
%token MASTER_CONNECT_RETRY_SYM
%token MASTER_HOST_SYM
%token MASTER_HOST_SYM
%token MASTER_LOG_FILE_SYM
%token MASTER_LOG_FILE_SYM
...
@@ -1439,7 +1436,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
...
@@ -1439,7 +1436,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%left XOR
%left XOR
%left AND_SYM AND_AND_SYM
%left AND_SYM AND_AND_SYM
%left BETWEEN_SYM CASE_SYM WHEN_SYM THEN_SYM ELSE
%left BETWEEN_SYM CASE_SYM WHEN_SYM THEN_SYM ELSE
%left
EQ
EQUAL_SYM GE
GT_SYM
LE
LT
NE IS LIKE REGEXP IN_SYM
%left
'='
EQUAL_SYM GE
'>'
LE
'<'
NE IS LIKE REGEXP IN_SYM
%left '|'
%left '|'
%left '&'
%left '&'
%left SHIFT_LEFT SHIFT_RIGHT
%left SHIFT_LEFT SHIFT_RIGHT
...
@@ -1922,58 +1919,58 @@ master_defs:
...
@@ -1922,58 +1919,58 @@ master_defs:
;
;
master_def:
master_def:
MASTER_HOST_SYM
EQ
TEXT_STRING_sys
MASTER_HOST_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.host = $3.str;
Lex->mi.host = $3.str;
}
}
| MASTER_USER_SYM
EQ
TEXT_STRING_sys
| MASTER_USER_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.user = $3.str;
Lex->mi.user = $3.str;
}
}
| MASTER_PASSWORD_SYM
EQ
TEXT_STRING_sys
| MASTER_PASSWORD_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.password = $3.str;
Lex->mi.password = $3.str;
}
}
| MASTER_PORT_SYM
EQ
ulong_num
| MASTER_PORT_SYM
'='
ulong_num
{
{
Lex->mi.port = $3;
Lex->mi.port = $3;
}
}
| MASTER_CONNECT_RETRY_SYM
EQ
ulong_num
| MASTER_CONNECT_RETRY_SYM
'='
ulong_num
{
{
Lex->mi.connect_retry = $3;
Lex->mi.connect_retry = $3;
}
}
| MASTER_SSL_SYM
EQ
ulong_num
| MASTER_SSL_SYM
'='
ulong_num
{
{
Lex->mi.ssl= $3 ?
Lex->mi.ssl= $3 ?
LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
}
}
| MASTER_SSL_CA_SYM
EQ
TEXT_STRING_sys
| MASTER_SSL_CA_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.ssl_ca= $3.str;
Lex->mi.ssl_ca= $3.str;
}
}
| MASTER_SSL_CAPATH_SYM
EQ
TEXT_STRING_sys
| MASTER_SSL_CAPATH_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.ssl_capath= $3.str;
Lex->mi.ssl_capath= $3.str;
}
}
| MASTER_SSL_CERT_SYM
EQ
TEXT_STRING_sys
| MASTER_SSL_CERT_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.ssl_cert= $3.str;
Lex->mi.ssl_cert= $3.str;
}
}
| MASTER_SSL_CIPHER_SYM
EQ
TEXT_STRING_sys
| MASTER_SSL_CIPHER_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.ssl_cipher= $3.str;
Lex->mi.ssl_cipher= $3.str;
}
}
| MASTER_SSL_KEY_SYM
EQ
TEXT_STRING_sys
| MASTER_SSL_KEY_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.ssl_key= $3.str;
Lex->mi.ssl_key= $3.str;
}
}
| MASTER_SSL_VERIFY_SERVER_CERT_SYM
EQ
ulong_num
| MASTER_SSL_VERIFY_SERVER_CERT_SYM
'='
ulong_num
{
{
Lex->mi.ssl_verify_server_cert= $3 ?
Lex->mi.ssl_verify_server_cert= $3 ?
LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
}
}
| MASTER_HEARTBEAT_PERIOD_SYM
EQ
NUM_literal
| MASTER_HEARTBEAT_PERIOD_SYM
'='
NUM_literal
{
{
Lex->mi.heartbeat_period= (float) $3->val_real();
Lex->mi.heartbeat_period= (float) $3->val_real();
if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
...
@@ -2004,7 +2001,7 @@ master_def:
...
@@ -2004,7 +2001,7 @@ master_def:
}
}
Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
}
}
| IGNORE_SERVER_IDS_SYM
EQ
'(' ignore_server_id_list ')'
| IGNORE_SERVER_IDS_SYM
'='
'(' ignore_server_id_list ')'
{
{
Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
}
}
...
@@ -2025,11 +2022,11 @@ ignore_server_id:
...
@@ -2025,11 +2022,11 @@ ignore_server_id:
}
}
master_file_def:
master_file_def:
MASTER_LOG_FILE_SYM
EQ
TEXT_STRING_sys
MASTER_LOG_FILE_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.log_file_name = $3.str;
Lex->mi.log_file_name = $3.str;
}
}
| MASTER_LOG_POS_SYM
EQ
ulonglong_num
| MASTER_LOG_POS_SYM
'='
ulonglong_num
{
{
Lex->mi.pos = $3;
Lex->mi.pos = $3;
/*
/*
...
@@ -2045,11 +2042,11 @@ master_file_def:
...
@@ -2045,11 +2042,11 @@ master_file_def:
*/
*/
Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
}
}
| RELAY_LOG_FILE_SYM
EQ
TEXT_STRING_sys
| RELAY_LOG_FILE_SYM
'='
TEXT_STRING_sys
{
{
Lex->mi.relay_log_name = $3.str;
Lex->mi.relay_log_name = $3.str;
}
}
| RELAY_LOG_POS_SYM
EQ
ulong_num
| RELAY_LOG_POS_SYM
'='
ulong_num
{
{
Lex->mi.relay_log_pos = $3;
Lex->mi.relay_log_pos = $3;
/* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
/* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
...
@@ -3032,7 +3029,7 @@ opt_set_signal_information:
...
@@ -3032,7 +3029,7 @@ opt_set_signal_information:
;
;
signal_information_item_list:
signal_information_item_list:
signal_condition_information_item_name
EQ
signal_allowed_expr
signal_condition_information_item_name
'='
signal_allowed_expr
{
{
Set_signal_information *info;
Set_signal_information *info;
info= &thd->m_parser_state->m_yacc.m_set_signal_info;
info= &thd->m_parser_state->m_yacc.m_set_signal_info;
...
@@ -3041,7 +3038,7 @@ signal_information_item_list:
...
@@ -3041,7 +3038,7 @@ signal_information_item_list:
info->m_item[index]= $3;
info->m_item[index]= $3;
}
}
| signal_information_item_list ','
| signal_information_item_list ','
signal_condition_information_item_name
EQ
signal_allowed_expr
signal_condition_information_item_name
'='
signal_allowed_expr
{
{
Set_signal_information *info;
Set_signal_information *info;
info= &thd->m_parser_state->m_yacc.m_set_signal_info;
info= &thd->m_parser_state->m_yacc.m_set_signal_info;
...
@@ -4439,7 +4436,7 @@ opt_linear:
...
@@ -4439,7 +4436,7 @@ opt_linear:
opt_key_algo:
opt_key_algo:
/* empty */
/* empty */
{ Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;}
{ Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;}
| ALGORITHM_SYM
EQ
real_ulong_num
| ALGORITHM_SYM
'='
real_ulong_num
{
{
switch ($3) {
switch ($3) {
case 1:
case 1:
...
@@ -7076,7 +7073,7 @@ opt_place:
...
@@ -7076,7 +7073,7 @@ opt_place:
opt_to:
opt_to:
/* empty */ {}
/* empty */ {}
| TO_SYM {}
| TO_SYM {}
|
EQ
{}
|
'='
{}
| AS {}
| AS {}
;
;
...
@@ -7943,13 +7940,13 @@ bool_pri:
...
@@ -7943,13 +7940,13 @@ bool_pri:
if ($$ == NULL)
if ($$ == NULL)
MYSQL_YYABORT;
MYSQL_YYABORT;
}
}
| bool_pri comp_op predicate %prec
EQ
| bool_pri comp_op predicate %prec
'='
{
{
$$= (*$2)(0)->create($1,$3);
$$= (*$2)(0)->create($1,$3);
if ($$ == NULL)
if ($$ == NULL)
MYSQL_YYABORT;
MYSQL_YYABORT;
}
}
| bool_pri comp_op all_or_any '(' subselect ')' %prec
EQ
| bool_pri comp_op all_or_any '(' subselect ')' %prec
'='
{
{
$$= all_any_subquery_creator($1, $2, $3, $5);
$$= all_any_subquery_creator($1, $2, $3, $5);
if ($$ == NULL)
if ($$ == NULL)
...
@@ -8172,11 +8169,11 @@ not2:
...
@@ -8172,11 +8169,11 @@ not2:
;
;
comp_op:
comp_op:
EQ
{ $$ = &comp_eq_creator; }
'='
{ $$ = &comp_eq_creator; }
| GE { $$ = &comp_ge_creator; }
| GE { $$ = &comp_ge_creator; }
|
GT_SYM
{ $$ = &comp_gt_creator; }
|
'>'
{ $$ = &comp_gt_creator; }
| LE { $$ = &comp_le_creator; }
| LE { $$ = &comp_le_creator; }
|
LT
{ $$ = &comp_lt_creator; }
|
'<'
{ $$ = &comp_lt_creator; }
| NE { $$ = &comp_ne_creator; }
| NE { $$ = &comp_ne_creator; }
;
;
...
@@ -10197,7 +10194,7 @@ date_time_type:
...
@@ -10197,7 +10194,7 @@ date_time_type:
table_alias:
table_alias:
/* empty */
/* empty */
| AS
| AS
|
EQ
|
'='
;
;
opt_table_alias:
opt_table_alias:
...
@@ -11100,7 +11097,7 @@ ident_eq_value:
...
@@ -11100,7 +11097,7 @@ ident_eq_value:
;
;
equal:
equal:
EQ
{}
'='
{}
| SET_VAR {}
| SET_VAR {}
;
;
...
@@ -13968,11 +13965,11 @@ handler_rkey_function:
...
@@ -13968,11 +13965,11 @@ handler_rkey_function:
;
;
handler_rkey_mode:
handler_rkey_mode:
EQ
{ $$=HA_READ_KEY_EXACT; }
'='
{ $$=HA_READ_KEY_EXACT; }
| GE { $$=HA_READ_KEY_OR_NEXT; }
| GE { $$=HA_READ_KEY_OR_NEXT; }
| LE { $$=HA_READ_KEY_OR_PREV; }
| LE { $$=HA_READ_KEY_OR_PREV; }
|
GT_SYM
{ $$=HA_READ_AFTER_KEY; }
|
'>'
{ $$=HA_READ_AFTER_KEY; }
|
LT
{ $$=HA_READ_BEFORE_KEY; }
|
'<'
{ $$=HA_READ_BEFORE_KEY; }
;
;
/* GRANT / REVOKE */
/* GRANT / REVOKE */
...
@@ -14744,7 +14741,7 @@ no_definer:
...
@@ -14744,7 +14741,7 @@ no_definer:
;
;
definer:
definer:
DEFINER_SYM
EQ
user
DEFINER_SYM
'='
user
{
{
thd->lex->definer= get_current_user(thd, $3);
thd->lex->definer= get_current_user(thd, $3);
}
}
...
@@ -14771,11 +14768,11 @@ view_replace:
...
@@ -14771,11 +14768,11 @@ view_replace:
;
;
view_algorithm:
view_algorithm:
ALGORITHM_SYM
EQ
UNDEFINED_SYM
ALGORITHM_SYM
'='
UNDEFINED_SYM
{ Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; }
{ Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; }
| ALGORITHM_SYM
EQ
MERGE_SYM
| ALGORITHM_SYM
'='
MERGE_SYM
{ Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
{ Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
| ALGORITHM_SYM
EQ
TEMPTABLE_SYM
| ALGORITHM_SYM
'='
TEMPTABLE_SYM
{ Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
{ Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
;
;
...
...
sql/threadpool_unix.cc
View file @
28a18fef
...
@@ -166,6 +166,7 @@ struct pool_timer_t
...
@@ -166,6 +166,7 @@ struct pool_timer_t
volatile
uint64
next_timeout_check
;
volatile
uint64
next_timeout_check
;
int
tick_interval
;
int
tick_interval
;
bool
shutdown
;
bool
shutdown
;
pthread_t
timer_thread_id
;
};
};
static
pool_timer_t
pool_timer
;
static
pool_timer_t
pool_timer
;
...
@@ -603,12 +604,12 @@ void check_stall(thread_group_t *thread_group)
...
@@ -603,12 +604,12 @@ void check_stall(thread_group_t *thread_group)
static
void
start_timer
(
pool_timer_t
*
timer
)
static
void
start_timer
(
pool_timer_t
*
timer
)
{
{
pthread_t
thread_id
;
DBUG_ENTER
(
"start_timer"
);
DBUG_ENTER
(
"start_timer"
);
mysql_mutex_init
(
key_timer_mutex
,
&
timer
->
mutex
,
NULL
);
mysql_mutex_init
(
key_timer_mutex
,
&
timer
->
mutex
,
NULL
);
mysql_cond_init
(
key_timer_cond
,
&
timer
->
cond
,
NULL
);
mysql_cond_init
(
key_timer_cond
,
&
timer
->
cond
,
NULL
);
timer
->
shutdown
=
false
;
timer
->
shutdown
=
false
;
mysql_thread_create
(
key_timer_thread
,
&
thread_id
,
NULL
,
timer_thread
,
timer
);
mysql_thread_create
(
key_timer_thread
,
&
timer
->
timer_thread_id
,
NULL
,
timer_thread
,
timer
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -620,6 +621,7 @@ static void stop_timer(pool_timer_t *timer)
...
@@ -620,6 +621,7 @@ static void stop_timer(pool_timer_t *timer)
timer
->
shutdown
=
true
;
timer
->
shutdown
=
true
;
mysql_cond_signal
(
&
timer
->
cond
);
mysql_cond_signal
(
&
timer
->
cond
);
mysql_mutex_unlock
(
&
timer
->
mutex
);
mysql_mutex_unlock
(
&
timer
->
mutex
);
pthread_join
(
timer
->
timer_thread_id
,
NULL
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
...
storage/innobase/handler/ha_innodb.cc
View file @
28a18fef
...
@@ -2106,7 +2106,6 @@ innobase_convert_name(
...
@@ -2106,7 +2106,6 @@ innobase_convert_name(
A wrapper function of innobase_convert_name(), convert a table or
A wrapper function of innobase_convert_name(), convert a table or
index name to the MySQL system_charset_info (UTF-8) and quote it if needed.
index name to the MySQL system_charset_info (UTF-8) and quote it if needed.
@return pointer to the end of buf */
@return pointer to the end of buf */
static
inline
void
void
innobase_format_name
(
innobase_format_name
(
/*==================*/
/*==================*/
...
@@ -8685,6 +8684,36 @@ ha_innobase::check(
...
@@ -8685,6 +8684,36 @@ ha_innobase::check(
DBUG_RETURN
(
HA_ADMIN_CORRUPT
);
DBUG_RETURN
(
HA_ADMIN_CORRUPT
);
}
}
if
(
prebuilt
->
table
->
corrupted
)
{
char
index_name
[
MAX_FULL_NAME_LEN
+
1
];
/* If some previous operation has marked the table as
corrupted in memory, and has not propagated such to
clustered index, we will do so here */
index
=
dict_table_get_first_index
(
prebuilt
->
table
);
if
(
!
dict_index_is_corrupted
(
index
))
{
row_mysql_lock_data_dictionary
(
prebuilt
->
trx
);
dict_set_corrupted
(
index
);
row_mysql_unlock_data_dictionary
(
prebuilt
->
trx
);
}
innobase_format_name
(
index_name
,
sizeof
index_name
,
index
->
name
,
TRUE
);
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
HA_ERR_INDEX_CORRUPT
,
"InnoDB: Index %s is marked as"
" corrupted"
,
index_name
);
/* Now that the table is already marked as corrupted,
there is no need to check any index of this table */
prebuilt
->
trx
->
op_info
=
""
;
DBUG_RETURN
(
HA_ADMIN_CORRUPT
);
}
prebuilt
->
trx
->
op_info
=
"checking table"
;
prebuilt
->
trx
->
op_info
=
"checking table"
;
old_isolation_level
=
prebuilt
->
trx
->
isolation_level
;
old_isolation_level
=
prebuilt
->
trx
->
isolation_level
;
...
@@ -8761,6 +8790,15 @@ ha_innobase::check(
...
@@ -8761,6 +8790,15 @@ ha_innobase::check(
prebuilt
->
index_usable
=
row_merge_is_index_usable
(
prebuilt
->
index_usable
=
row_merge_is_index_usable
(
prebuilt
->
trx
,
prebuilt
->
index
);
prebuilt
->
trx
,
prebuilt
->
index
);
DBUG_EXECUTE_IF
(
"dict_set_index_corrupted"
,
if
(
!
dict_index_is_clust
(
index
))
{
prebuilt
->
index_usable
=
FALSE
;
row_mysql_lock_data_dictionary
(
prebuilt
->
trx
);
dict_set_corrupted
(
index
);
row_mysql_unlock_data_dictionary
(
prebuilt
->
trx
);
});
if
(
UNIV_UNLIKELY
(
!
prebuilt
->
index_usable
))
{
if
(
UNIV_UNLIKELY
(
!
prebuilt
->
index_usable
))
{
innobase_format_name
(
innobase_format_name
(
index_name
,
sizeof
index_name
,
index_name
,
sizeof
index_name
,
...
...
storage/innobase/handler/handler0alter.cc
View file @
28a18fef
...
@@ -654,6 +654,19 @@ class ha_innobase_add_index : public handler_add_index
...
@@ -654,6 +654,19 @@ class ha_innobase_add_index : public handler_add_index
~
ha_innobase_add_index
()
{}
~
ha_innobase_add_index
()
{}
};
};
/*****************************************************************//**
A wrapper function of innobase_convert_name(), convert a table or
index name to the MySQL system_charset_info (UTF-8) and quote it if needed.
@return pointer to the end of buf */
void
innobase_format_name
(
/*==================*/
char
*
buf
,
/*!< out: buffer for converted identifier */
ulint
buflen
,
/*!< in: length of buf, in bytes */
const
char
*
name
,
/*!< in: index or table name to format */
ibool
is_index_name
);
/*!< in: index name */
/*******************************************************************//**
/*******************************************************************//**
Create indexes.
Create indexes.
@return 0 or error number */
@return 0 or error number */
...
@@ -715,6 +728,28 @@ ha_innobase::add_index(
...
@@ -715,6 +728,28 @@ ha_innobase::add_index(
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
}
}
/* Check if any of the existing indexes are marked as corruption,
and if they are, refuse adding more indexes. */
for
(
dict_index_t
*
check_index
=
dict_table_get_first_index
(
indexed_table
);
check_index
!=
NULL
;
check_index
=
dict_table_get_next_index
(
check_index
))
{
if
(
dict_index_is_corrupted
(
check_index
))
{
char
index_name
[
MAX_FULL_NAME_LEN
+
1
];
innobase_format_name
(
index_name
,
sizeof
index_name
,
check_index
->
name
,
TRUE
);
push_warning_printf
(
user_thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
HA_ERR_INDEX_CORRUPT
,
"InnoDB: Index %s is marked as"
" corrupted"
,
index_name
);
DBUG_RETURN
(
HA_ERR_INDEX_CORRUPT
);
}
}
/* Check that index keys are sensible */
/* Check that index keys are sensible */
error
=
innobase_check_index_keys
(
key_info
,
num_of_keys
,
prebuilt
->
table
);
error
=
innobase_check_index_keys
(
key_info
,
num_of_keys
,
prebuilt
->
table
);
...
...
storage/maria/ma_checkpoint.c
View file @
28a18fef
...
@@ -46,7 +46,7 @@ static mysql_mutex_t LOCK_checkpoint;
...
@@ -46,7 +46,7 @@ static mysql_mutex_t LOCK_checkpoint;
static
mysql_cond_t
COND_checkpoint
;
static
mysql_cond_t
COND_checkpoint
;
/** @brief control structure for checkpoint background thread */
/** @brief control structure for checkpoint background thread */
static
MA_SERVICE_THREAD_CONTROL
checkpoint_control
=
static
MA_SERVICE_THREAD_CONTROL
checkpoint_control
=
{
THREAD_DEAD
,
FALSE
,
&
LOCK_checkpoint
,
&
COND_checkpoint
};
{
0
,
FALSE
,
FALSE
,
&
LOCK_checkpoint
,
&
COND_checkpoint
};
/* is ulong like pagecache->blocks_changed */
/* is ulong like pagecache->blocks_changed */
static
ulong
pages_to_flush_before_next_checkpoint
;
static
ulong
pages_to_flush_before_next_checkpoint
;
static
PAGECACHE_FILE
*
dfiles
,
/**< data files to flush in background */
static
PAGECACHE_FILE
*
dfiles
,
/**< data files to flush in background */
...
@@ -326,7 +326,6 @@ static int really_execute_checkpoint(void)
...
@@ -326,7 +326,6 @@ static int really_execute_checkpoint(void)
int
ma_checkpoint_init
(
ulong
interval
)
int
ma_checkpoint_init
(
ulong
interval
)
{
{
pthread_t
th
;
int
res
=
0
;
int
res
=
0
;
DBUG_ENTER
(
"ma_checkpoint_init"
);
DBUG_ENTER
(
"ma_checkpoint_init"
);
if
(
ma_service_thread_control_init
(
&
checkpoint_control
))
if
(
ma_service_thread_control_init
(
&
checkpoint_control
))
...
@@ -334,14 +333,14 @@ int ma_checkpoint_init(ulong interval)
...
@@ -334,14 +333,14 @@ int ma_checkpoint_init(ulong interval)
else
if
(
interval
>
0
)
else
if
(
interval
>
0
)
{
{
compile_time_assert
(
sizeof
(
void
*
)
>=
sizeof
(
ulong
));
compile_time_assert
(
sizeof
(
void
*
)
>=
sizeof
(
ulong
));
if
(
!
(
res
=
mysql_thread_create
(
key_thread_checkpoint
,
if
((
res
=
mysql_thread_create
(
key_thread_checkpoint
,
&
th
,
NULL
,
ma_checkpoint_background
,
&
checkpoint_control
.
thread
,
NULL
,
(
void
*
)
interval
)))
ma_checkpoint_background
,
{
(
void
*
)
interval
)))
/* thread lives, will have to be killed */
checkpoint_control
.
killed
=
TRUE
;
checkpoint_control
.
status
=
THREAD_RUNNING
;
}
}
}
else
checkpoint_control
.
killed
=
TRUE
;
DBUG_RETURN
(
res
);
DBUG_RETURN
(
res
);
}
}
...
@@ -717,7 +716,6 @@ pthread_handler_t ma_checkpoint_background(void *arg)
...
@@ -717,7 +716,6 @@ pthread_handler_t ma_checkpoint_background(void *arg)
DBUG_EXECUTE_IF
(
"maria_checkpoint_indirect"
,
level
=
CHECKPOINT_INDIRECT
;);
DBUG_EXECUTE_IF
(
"maria_checkpoint_indirect"
,
level
=
CHECKPOINT_INDIRECT
;);
ma_checkpoint_execute
(
level
,
FALSE
);
ma_checkpoint_execute
(
level
,
FALSE
);
}
}
my_service_thread_signal_end
(
&
checkpoint_control
);
my_thread_end
();
my_thread_end
();
return
0
;
return
0
;
}
}
...
...
storage/maria/ma_loghandler.c
View file @
28a18fef
...
@@ -54,7 +54,7 @@ static mysql_mutex_t LOCK_soft_sync;
...
@@ -54,7 +54,7 @@ static mysql_mutex_t LOCK_soft_sync;
static
mysql_cond_t
COND_soft_sync
;
static
mysql_cond_t
COND_soft_sync
;
/** @brief control structure for checkpoint background thread */
/** @brief control structure for checkpoint background thread */
static
MA_SERVICE_THREAD_CONTROL
soft_sync_control
=
static
MA_SERVICE_THREAD_CONTROL
soft_sync_control
=
{
THREAD_DEAD
,
FALSE
,
&
LOCK_soft_sync
,
&
COND_soft_sync
};
{
0
,
FALSE
,
FALSE
,
&
LOCK_soft_sync
,
&
COND_soft_sync
};
/* transaction log file descriptor */
/* transaction log file descriptor */
...
@@ -8819,7 +8819,6 @@ ma_soft_sync_background( void *arg __attribute__((unused)))
...
@@ -8819,7 +8819,6 @@ ma_soft_sync_background( void *arg __attribute__((unused)))
if
(
my_service_thread_sleep
(
&
soft_sync_control
,
sleep
))
if
(
my_service_thread_sleep
(
&
soft_sync_control
,
sleep
))
break
;
break
;
}
}
my_service_thread_signal_end
(
&
soft_sync_control
);
my_thread_end
();
my_thread_end
();
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
}
}
...
@@ -8832,7 +8831,6 @@ ma_soft_sync_background( void *arg __attribute__((unused)))
...
@@ -8832,7 +8831,6 @@ ma_soft_sync_background( void *arg __attribute__((unused)))
int
translog_soft_sync_start
(
void
)
int
translog_soft_sync_start
(
void
)
{
{
pthread_t
th
;
int
res
=
0
;
int
res
=
0
;
uint32
min
,
max
;
uint32
min
,
max
;
DBUG_ENTER
(
"translog_soft_sync_start"
);
DBUG_ENTER
(
"translog_soft_sync_start"
);
...
@@ -8847,9 +8845,10 @@ int translog_soft_sync_start(void)
...
@@ -8847,9 +8845,10 @@ int translog_soft_sync_start(void)
soft_need_sync
=
1
;
soft_need_sync
=
1
;
if
(
!
(
res
=
ma_service_thread_control_init
(
&
soft_sync_control
)))
if
(
!
(
res
=
ma_service_thread_control_init
(
&
soft_sync_control
)))
if
(
!
(
res
=
mysql_thread_create
(
key_thread_soft_sync
,
if
((
res
=
mysql_thread_create
(
key_thread_soft_sync
,
&
th
,
NULL
,
ma_soft_sync_background
,
NULL
)))
&
soft_sync_control
.
thread
,
NULL
,
soft_sync_control
.
status
=
THREAD_RUNNING
;
ma_soft_sync_background
,
NULL
)))
soft_sync_control
.
killed
=
TRUE
;
DBUG_RETURN
(
res
);
DBUG_RETURN
(
res
);
}
}
...
...
storage/maria/ma_pagecache.c
View file @
28a18fef
...
@@ -500,8 +500,8 @@ static void test_key_cache(PAGECACHE *pagecache,
...
@@ -500,8 +500,8 @@ static void test_key_cache(PAGECACHE *pagecache,
const
char
*
where
,
my_bool
lock
);
const
char
*
where
,
my_bool
lock
);
#endif
#endif
#define PAGECACHE_HASH(p, f, pos) (((
ulong
) (pos) + \
#define PAGECACHE_HASH(p, f, pos) (((
size_t
) (pos) + \
(
ulong
) (f).file) & (p->hash_entries-1))
(
size_t
) (f).file) & (p->hash_entries-1))
#define FILE_HASH(f) ((uint) (f).file & (PAGECACHE_CHANGED_BLOCKS_HASH - 1))
#define FILE_HASH(f) ((uint) (f).file & (PAGECACHE_CHANGED_BLOCKS_HASH - 1))
#define DEFAULT_PAGECACHE_DEBUG_LOG "pagecache_debug.log"
#define DEFAULT_PAGECACHE_DEBUG_LOG "pagecache_debug.log"
...
@@ -639,10 +639,10 @@ static my_bool pagecache_fwrite(PAGECACHE *pagecache,
...
@@ -639,10 +639,10 @@ static my_bool pagecache_fwrite(PAGECACHE *pagecache,
{
{
char
buff
[
80
];
char
buff
[
80
];
uint
len
=
my_sprintf
(
buff
,
uint
len
=
my_sprintf
(
buff
,
(
buff
,
"fwrite: fd: %d id: %u page: %lu"
,
(
buff
,
"fwrite: fd: %d id: %u page: %
l
lu"
,
filedesc
->
file
,
filedesc
->
file
,
_ma_file_callback_to_id
(
filedesc
->
callback_data
),
_ma_file_callback_to_id
(
filedesc
->
callback_data
),
(
ulong
)
pageno
));
pageno
));
(
void
)
translog_log_debug_info
(
0
,
LOGREC_DEBUG_INFO_QUERY
,
(
void
)
translog_log_debug_info
(
0
,
LOGREC_DEBUG_INFO_QUERY
,
(
uchar
*
)
buff
,
len
);
(
uchar
*
)
buff
,
len
);
}
}
...
@@ -741,11 +741,11 @@ static inline uint next_power(uint value)
...
@@ -741,11 +741,11 @@ static inline uint next_power(uint value)
*/
*/
ulong
init_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
size_t
init_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
uint
division_limit
,
uint
age_threshold
,
uint
division_limit
,
uint
age_threshold
,
uint
block_size
,
myf
my_readwrite_flags
)
uint
block_size
,
myf
my_readwrite_flags
)
{
{
ulong
blocks
,
hash_links
,
length
;
size_t
blocks
,
hash_links
,
length
;
int
error
;
int
error
;
DBUG_ENTER
(
"init_pagecache"
);
DBUG_ENTER
(
"init_pagecache"
);
DBUG_ASSERT
(
block_size
>=
512
);
DBUG_ASSERT
(
block_size
>=
512
);
...
@@ -782,10 +782,10 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
...
@@ -782,10 +782,10 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
DBUG_PRINT
(
"info"
,
(
"block_size: %u"
,
block_size
));
DBUG_PRINT
(
"info"
,
(
"block_size: %u"
,
block_size
));
DBUG_ASSERT
(((
uint
)(
1
<<
pagecache
->
shift
))
==
block_size
);
DBUG_ASSERT
(((
uint
)(
1
<<
pagecache
->
shift
))
==
block_size
);
blocks
=
(
ulong
)
(
use_mem
/
(
sizeof
(
PAGECACHE_BLOCK_LINK
)
+
blocks
=
use_mem
/
(
sizeof
(
PAGECACHE_BLOCK_LINK
)
+
2
*
sizeof
(
PAGECACHE_HASH_LINK
)
+
2
*
sizeof
(
PAGECACHE_HASH_LINK
)
+
sizeof
(
PAGECACHE_HASH_LINK
*
)
*
sizeof
(
PAGECACHE_HASH_LINK
*
)
*
5
/
4
+
block_size
)
)
;
5
/
4
+
block_size
);
/*
/*
We need to support page cache with just one block to be able to do
We need to support page cache with just one block to be able to do
scanning of rows-in-block files
scanning of rows-in-block files
...
@@ -816,7 +816,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
...
@@ -816,7 +816,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
blocks
--
;
blocks
--
;
/* Allocate memory for cache page buffers */
/* Allocate memory for cache page buffers */
if
((
pagecache
->
block_mem
=
if
((
pagecache
->
block_mem
=
my_large_malloc
(
(
ulong
)
blocks
*
pagecache
->
block_size
,
my_large_malloc
(
blocks
*
pagecache
->
block_size
,
MYF
(
MY_WME
))))
MYF
(
MY_WME
))))
{
{
/*
/*
...
@@ -824,7 +824,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
...
@@ -824,7 +824,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
For each block 2 hash links are allocated
For each block 2 hash links are allocated
*/
*/
if
((
pagecache
->
block_root
=
if
((
pagecache
->
block_root
=
(
PAGECACHE_BLOCK_LINK
*
)
my_malloc
(
(
size_t
)
length
,
MYF
(
0
))))
(
PAGECACHE_BLOCK_LINK
*
)
my_malloc
(
length
,
MYF
(
0
))))
break
;
break
;
my_large_free
(
pagecache
->
block_mem
);
my_large_free
(
pagecache
->
block_mem
);
pagecache
->
block_mem
=
0
;
pagecache
->
block_mem
=
0
;
...
@@ -832,7 +832,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
...
@@ -832,7 +832,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
blocks
=
blocks
/
4
*
3
;
blocks
=
blocks
/
4
*
3
;
}
}
pagecache
->
blocks_unused
=
blocks
;
pagecache
->
blocks_unused
=
blocks
;
pagecache
->
disk_blocks
=
(
long
)
blocks
;
pagecache
->
disk_blocks
=
blocks
;
pagecache
->
hash_links
=
hash_links
;
pagecache
->
hash_links
=
hash_links
;
pagecache
->
hash_root
=
pagecache
->
hash_root
=
(
PAGECACHE_HASH_LINK
**
)
((
char
*
)
pagecache
->
block_root
+
(
PAGECACHE_HASH_LINK
**
)
((
char
*
)
pagecache
->
block_root
+
...
@@ -887,7 +887,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
...
@@ -887,7 +887,7 @@ ulong init_pagecache(PAGECACHE *pagecache, size_t use_mem,
PAGECACHE_CHANGED_BLOCKS_HASH
);
PAGECACHE_CHANGED_BLOCKS_HASH
);
pagecache
->
blocks
=
pagecache
->
disk_blocks
>
0
?
pagecache
->
disk_blocks
:
0
;
pagecache
->
blocks
=
pagecache
->
disk_blocks
>
0
?
pagecache
->
disk_blocks
:
0
;
DBUG_RETURN
((
ulong
)
pagecache
->
disk_blocks
);
DBUG_RETURN
((
size_t
)
pagecache
->
disk_blocks
);
err:
err:
error
=
my_errno
;
error
=
my_errno
;
...
@@ -978,11 +978,11 @@ static int flush_all_key_blocks(PAGECACHE *pagecache)
...
@@ -978,11 +978,11 @@ static int flush_all_key_blocks(PAGECACHE *pagecache)
So we disable it for now.
So we disable it for now.
*/
*/
#if NOT_USED
/* keep disabled until code is fixed see above !! */
#if NOT_USED
/* keep disabled until code is fixed see above !! */
ulong
resize_pagecache
(
PAGECACHE
*
pagecache
,
size_t
resize_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
uint
division_limit
,
size_t
use_mem
,
uint
division_limit
,
uint
age_threshold
)
uint
age_threshold
)
{
{
ulong
blocks
;
size_t
blocks
;
struct
st_my_thread_var
*
thread
;
struct
st_my_thread_var
*
thread
;
WQUEUE
*
wqueue
;
WQUEUE
*
wqueue
;
...
@@ -1379,7 +1379,7 @@ static void link_block(PAGECACHE *pagecache, PAGECACHE_BLOCK_LINK *block,
...
@@ -1379,7 +1379,7 @@ static void link_block(PAGECACHE *pagecache, PAGECACHE_BLOCK_LINK *block,
(
"linked block: %u:%1u status: %x #requests: %u #available: %u"
,
(
"linked block: %u:%1u status: %x #requests: %u #available: %u"
,
PCBLOCK_NUMBER
(
pagecache
,
block
),
at_end
,
block
->
status
,
PCBLOCK_NUMBER
(
pagecache
,
block
),
at_end
,
block
->
status
,
block
->
requests
,
pagecache
->
blocks_available
));
block
->
requests
,
pagecache
->
blocks_available
));
KEYCACHE_DBUG_ASSERT
(
(
ulong
)
pagecache
->
blocks_available
<=
KEYCACHE_DBUG_ASSERT
(
pagecache
->
blocks_available
<=
pagecache
->
blocks_used
);
pagecache
->
blocks_used
);
#endif
#endif
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
...
@@ -2018,7 +2018,7 @@ static PAGECACHE_BLOCK_LINK *find_block(PAGECACHE *pagecache,
...
@@ -2018,7 +2018,7 @@ static PAGECACHE_BLOCK_LINK *find_block(PAGECACHE *pagecache,
/* There are some never used blocks, take first of them */
/* There are some never used blocks, take first of them */
block
=
&
pagecache
->
block_root
[
pagecache
->
blocks_used
];
block
=
&
pagecache
->
block_root
[
pagecache
->
blocks_used
];
block
->
buffer
=
ADD_TO_PTR
(
pagecache
->
block_mem
,
block
->
buffer
=
ADD_TO_PTR
(
pagecache
->
block_mem
,
(
(
ulong
)
pagecache
->
blocks_used
*
(
pagecache
->
blocks_used
*
pagecache
->
block_size
),
pagecache
->
block_size
),
uchar
*
);
uchar
*
);
pagecache
->
blocks_used
++
;
pagecache
->
blocks_used
++
;
...
@@ -4870,7 +4870,7 @@ my_bool pagecache_collect_changed_blocks_with_lsn(PAGECACHE *pagecache,
...
@@ -4870,7 +4870,7 @@ my_bool pagecache_collect_changed_blocks_with_lsn(PAGECACHE *pagecache,
LSN
*
min_rec_lsn
)
LSN
*
min_rec_lsn
)
{
{
my_bool
error
=
0
;
my_bool
error
=
0
;
ulong
stored_list_size
=
0
;
size_t
stored_list_size
=
0
;
uint
file_hash
;
uint
file_hash
;
char
*
ptr
;
char
*
ptr
;
LSN
minimum_rec_lsn
=
LSN_MAX
;
LSN
minimum_rec_lsn
=
LSN_MAX
;
...
...
storage/maria/ma_pagecache.h
View file @
28a18fef
...
@@ -117,20 +117,20 @@ typedef struct st_pagecache_hash_link PAGECACHE_HASH_LINK;
...
@@ -117,20 +117,20 @@ typedef struct st_pagecache_hash_link PAGECACHE_HASH_LINK;
typedef
struct
st_pagecache
typedef
struct
st_pagecache
{
{
size_t
mem_size
;
/* specified size of the cache memory */
size_t
mem_size
;
/* specified size of the cache memory */
ulong
min_warm_blocks
;
/* min number of warm blocks; */
size_t
min_warm_blocks
;
/* min number of warm blocks; */
ulong
age_threshold
;
/* age threshold for hot blocks */
size_t
age_threshold
;
/* age threshold for hot blocks */
ulonglong
time
;
/* total number of block link operations */
ulonglong
time
;
/* total number of block link operations */
ulong
hash_entries
;
/* max number of entries in the hash table */
size_t
hash_entries
;
/* max number of entries in the hash table */
long
hash_links
;
/* max number of hash links */
ssize_t
hash_links
;
/* max number of hash links */
long
hash_links_used
;
/* number of hash links taken from free links pool */
ssize_t
hash_links_used
;
/* number of hash links taken from free links pool */
long
disk_blocks
;
/* max number of blocks in the cache */
ssize_t
disk_blocks
;
/* max number of blocks in the cache */
ulong
blocks_used
;
/* maximum number of concurrently used blocks */
size_t
blocks_used
;
/* maximum number of concurrently used blocks */
ulong
blocks_unused
;
/* number of currently unused blocks */
size_t
blocks_unused
;
/* number of currently unused blocks */
ulong
blocks_changed
;
/* number of currently dirty blocks */
size_t
blocks_changed
;
/* number of currently dirty blocks */
ulong
warm_blocks
;
/* number of blocks in warm sub-chain */
size_t
warm_blocks
;
/* number of blocks in warm sub-chain */
ulong
cnt_for_resize_op
;
/* counter to block resize operation */
size_t
cnt_for_resize_op
;
/* counter to block resize operation */
ulong
blocks_available
;
/* number of blocks available in the LRU chain */
size_t
blocks_available
;
/* number of blocks available in the LRU chain */
long
blocks
;
/* max number of blocks in the cache */
ssize_t
blocks
;
/* max number of blocks in the cache */
uint32
block_size
;
/* size of the page buffer of a cache block */
uint32
block_size
;
/* size of the page buffer of a cache block */
PAGECACHE_HASH_LINK
**
hash_root
;
/* arr. of entries into hash table buckets */
PAGECACHE_HASH_LINK
**
hash_root
;
/* arr. of entries into hash table buckets */
PAGECACHE_HASH_LINK
*
hash_link_root
;
/* memory for hash table links */
PAGECACHE_HASH_LINK
*
hash_link_root
;
/* memory for hash table links */
...
@@ -155,12 +155,12 @@ typedef struct st_pagecache
...
@@ -155,12 +155,12 @@ typedef struct st_pagecache
*/
*/
ulonglong
param_buff_size
;
/* size the memory allocated for the cache */
ulonglong
param_buff_size
;
/* size the memory allocated for the cache */
ulong
param_block_size
;
/* size of the blocks in the key cache */
size_t
param_block_size
;
/* size of the blocks in the key cache */
ulong
param_division_limit
;
/* min. percentage of warm blocks */
size_t
param_division_limit
;
/* min. percentage of warm blocks */
ulong
param_age_threshold
;
/* determines when hot block is downgraded */
size_t
param_age_threshold
;
/* determines when hot block is downgraded */
/* Statistics variables. These are reset in reset_pagecache_counters(). */
/* Statistics variables. These are reset in reset_pagecache_counters(). */
ulong
global_blocks_changed
;
/* number of currently dirty blocks */
size_t
global_blocks_changed
;
/* number of currently dirty blocks */
ulonglong
global_cache_w_requests
;
/* number of write requests (write hits) */
ulonglong
global_cache_w_requests
;
/* number of write requests (write hits) */
ulonglong
global_cache_write
;
/* number of writes from cache to files */
ulonglong
global_cache_write
;
/* number of writes from cache to files */
ulonglong
global_cache_r_requests
;
/* number of read requests (read hits) */
ulonglong
global_cache_r_requests
;
/* number of read requests (read hits) */
...
@@ -193,10 +193,10 @@ typedef enum pagecache_flush_filter_result
...
@@ -193,10 +193,10 @@ typedef enum pagecache_flush_filter_result
/* The default key cache */
/* The default key cache */
extern
PAGECACHE
dflt_pagecache_var
,
*
dflt_pagecache
;
extern
PAGECACHE
dflt_pagecache_var
,
*
dflt_pagecache
;
extern
ulong
init_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
extern
size_t
init_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
uint
division_limit
,
uint
age_threshold
,
uint
division_limit
,
uint
age_threshold
,
uint
block_size
,
myf
my_read_flags
);
uint
block_size
,
myf
my_read_flags
);
extern
ulong
resize_pagecache
(
PAGECACHE
*
pagecache
,
extern
size_t
resize_pagecache
(
PAGECACHE
*
pagecache
,
size_t
use_mem
,
uint
division_limit
,
size_t
use_mem
,
uint
division_limit
,
uint
age_threshold
);
uint
age_threshold
);
extern
void
change_pagecache_param
(
PAGECACHE
*
pagecache
,
uint
division_limit
,
extern
void
change_pagecache_param
(
PAGECACHE
*
pagecache
,
uint
division_limit
,
...
...
Prev
1
2
3
4
5
6
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment