sql_yacc.yy => CREATE TABLE (... COLLECTION ... ) syntax
sql/item_func.h: cosmetic changes sql/sql_parse.cc: cosmetic changes sql/sql_yacc.yy: CREATE TABLE (... COLLECTION ... ) syntax
This commit is contained in:
parent
ada1183947
commit
44170cb982
@ -829,7 +829,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* SerG: for fulltext search */
|
/* for fulltext search */
|
||||||
#include <ft_global.h>
|
#include <ft_global.h>
|
||||||
|
|
||||||
class Item_func_match :public Item_real_func
|
class Item_func_match :public Item_real_func
|
||||||
@ -855,4 +855,3 @@ public:
|
|||||||
double val();
|
double val();
|
||||||
longlong val_int() { return val()!=0.0; }
|
longlong val_int() { return val()!=0.0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||||
|
|
||||||
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
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
@ -172,7 +172,7 @@ check_connections(THD *thd)
|
|||||||
if (!thd->host) // If TCP/IP connection
|
if (!thd->host) // If TCP/IP connection
|
||||||
{
|
{
|
||||||
char ip[17];
|
char ip[17];
|
||||||
|
|
||||||
if (vio_peer_addr(net->vio,ip))
|
if (vio_peer_addr(net->vio,ip))
|
||||||
return (ER_BAD_HOST_ERROR);
|
return (ER_BAD_HOST_ERROR);
|
||||||
if (!(thd->ip = my_strdup(ip,MYF(0))))
|
if (!(thd->ip = my_strdup(ip,MYF(0))))
|
||||||
@ -182,7 +182,7 @@ check_connections(THD *thd)
|
|||||||
if (!strcmp(thd->ip,"127.0.0.1"))
|
if (!strcmp(thd->ip,"127.0.0.1"))
|
||||||
{
|
{
|
||||||
if (!(thd->host=my_strdup("localhost",MYF(0))))
|
if (!(thd->host=my_strdup("localhost",MYF(0))))
|
||||||
return (ER_OUT_OF_RESOURCES);
|
return (ER_OUT_OF_RESOURCES);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -501,7 +501,7 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd)
|
|||||||
table_list->lock_type = TL_READ_NO_INSERT;
|
table_list->lock_type = TL_READ_NO_INSERT;
|
||||||
table_list->next = 0;
|
table_list->next = 0;
|
||||||
remove_escape(table_list->real_name);
|
remove_escape(table_list->real_name);
|
||||||
|
|
||||||
if(!(table=open_ltable(thd, table_list, TL_READ_NO_INSERT)))
|
if(!(table=open_ltable(thd, table_list, TL_READ_NO_INSERT)))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
@ -521,12 +521,12 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd)
|
|||||||
error = table->file->dump(thd,fd);
|
error = table->file->dump(thd,fd);
|
||||||
if(error)
|
if(error)
|
||||||
my_error(ER_GET_ERRNO, MYF(0));
|
my_error(ER_GET_ERRNO, MYF(0));
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
||||||
close_thread_tables(thd);
|
close_thread_tables(thd);
|
||||||
|
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -594,7 +594,7 @@ bool do_command(THD *thd)
|
|||||||
tbl_name[tbl_len] = 0;
|
tbl_name[tbl_len] = 0;
|
||||||
if(mysql_table_dump(thd, db, tbl_name, -1))
|
if(mysql_table_dump(thd, db, tbl_name, -1))
|
||||||
send_error(&thd->net); // dump to NET
|
send_error(&thd->net); // dump to NET
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COM_CHANGE_USER:
|
case COM_CHANGE_USER:
|
||||||
@ -714,7 +714,7 @@ bool do_command(THD *thd)
|
|||||||
if(check_access(thd, FILE_ACL, any_db))
|
if(check_access(thd, FILE_ACL, any_db))
|
||||||
break;
|
break;
|
||||||
mysql_log.write(command, 0);
|
mysql_log.write(command, 0);
|
||||||
|
|
||||||
ulong pos;
|
ulong pos;
|
||||||
ushort flags;
|
ushort flags;
|
||||||
pos = uint4korr(packet + 1);
|
pos = uint4korr(packet + 1);
|
||||||
@ -951,7 +951,7 @@ mysql_execute_command(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SQLCOM_LOAD_MASTER_TABLE:
|
case SQLCOM_LOAD_MASTER_TABLE:
|
||||||
|
|
||||||
if (!tables->db)
|
if (!tables->db)
|
||||||
tables->db=thd->db;
|
tables->db=thd->db;
|
||||||
if (check_access(thd,CREATE_ACL,tables->db,&tables->grant.privilege))
|
if (check_access(thd,CREATE_ACL,tables->db,&tables->grant.privilege))
|
||||||
@ -984,11 +984,11 @@ mysql_execute_command(void)
|
|||||||
// this way we make sure that when we are done, we are clean
|
// this way we make sure that when we are done, we are clean
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = 0;
|
res = 0;
|
||||||
send_ok(&thd->net);
|
send_ok(&thd->net);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SQLCOM_CREATE_TABLE:
|
case SQLCOM_CREATE_TABLE:
|
||||||
#ifdef DEMO_VERSION
|
#ifdef DEMO_VERSION
|
||||||
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND);
|
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND);
|
||||||
@ -1083,7 +1083,7 @@ mysql_execute_command(void)
|
|||||||
case SQLCOM_SLAVE_STOP:
|
case SQLCOM_SLAVE_STOP:
|
||||||
stop_slave(thd);
|
stop_slave(thd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case SQLCOM_ALTER_TABLE:
|
case SQLCOM_ALTER_TABLE:
|
||||||
#if defined(DONT_ALLOW_SHOW_COMMANDS)
|
#if defined(DONT_ALLOW_SHOW_COMMANDS)
|
||||||
@ -1132,7 +1132,7 @@ mysql_execute_command(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
case SQLCOM_SHOW_CREATE:
|
case SQLCOM_SHOW_CREATE: /* SerG:show */
|
||||||
{
|
{
|
||||||
if(! tables->db)
|
if(! tables->db)
|
||||||
tables->db = thd->db;
|
tables->db = thd->db;
|
||||||
@ -1141,7 +1141,7 @@ mysql_execute_command(void)
|
|||||||
send_error(&thd->net,ER_NO_DB_ERROR); /* purecov: inspected */
|
send_error(&thd->net,ER_NO_DB_ERROR); /* purecov: inspected */
|
||||||
goto error; /* purecov: inspected */
|
goto error; /* purecov: inspected */
|
||||||
}
|
}
|
||||||
res = mysqld_show_create(thd, tables);
|
res = mysqld_show_create(thd, tables);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SQLCOM_REPAIR:
|
case SQLCOM_REPAIR:
|
||||||
@ -1389,7 +1389,7 @@ mysql_execute_command(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
case SQLCOM_SHOW_FIELDS:
|
case SQLCOM_SHOW_FIELDS: /* SerG:show */
|
||||||
#ifdef DONT_ALLOW_SHOW_COMMANDS
|
#ifdef DONT_ALLOW_SHOW_COMMANDS
|
||||||
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND); /* purecov: inspected */
|
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND); /* purecov: inspected */
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
@ -1415,7 +1415,7 @@ mysql_execute_command(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
case SQLCOM_SHOW_KEYS:
|
case SQLCOM_SHOW_KEYS: /* SerG:show */
|
||||||
#ifdef DONT_ALLOW_SHOW_COMMANDS
|
#ifdef DONT_ALLOW_SHOW_COMMANDS
|
||||||
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND); /* purecov: inspected */
|
send_error(&thd->net,ER_NOT_ALLOWED_COMMAND); /* purecov: inspected */
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
@ -1478,7 +1478,7 @@ mysql_execute_command(void)
|
|||||||
if (org_options & OPTION_AUTO_COMMIT)
|
if (org_options & OPTION_AUTO_COMMIT)
|
||||||
{
|
{
|
||||||
/* We changed to auto_commit mode */
|
/* We changed to auto_commit mode */
|
||||||
thd->options&= ~OPTION_BEGIN;
|
thd->options&= ~OPTION_BEGIN;
|
||||||
thd->server_status|= SERVER_STATUS_AUTOCOMMIT;
|
thd->server_status|= SERVER_STATUS_AUTOCOMMIT;
|
||||||
if (ha_commit(thd))
|
if (ha_commit(thd))
|
||||||
{
|
{
|
||||||
@ -1487,7 +1487,7 @@ mysql_execute_command(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
thd->server_status&= ~SERVER_STATUS_AUTOCOMMIT;
|
thd->server_status&= ~SERVER_STATUS_AUTOCOMMIT;
|
||||||
}
|
}
|
||||||
send_ok(&thd->net);
|
send_ok(&thd->net);
|
||||||
break;
|
break;
|
||||||
@ -2367,7 +2367,7 @@ bool reload_acl_and_cache(uint options)
|
|||||||
reset_master();
|
reset_master();
|
||||||
if (options & REFRESH_SLAVE)
|
if (options & REFRESH_SLAVE)
|
||||||
reset_slave();
|
reset_slave();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2440,7 +2440,7 @@ static int start_slave(THD* thd , bool net_report)
|
|||||||
if(!slave_running)
|
if(!slave_running)
|
||||||
if(master_host)
|
if(master_host)
|
||||||
{
|
{
|
||||||
pthread_t hThread;
|
pthread_t hThread;
|
||||||
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
|
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
|
||||||
{
|
{
|
||||||
err = "cannot create slave thread";
|
err = "cannot create slave thread";
|
||||||
@ -2455,7 +2455,7 @@ static int start_slave(THD* thd , bool net_report)
|
|||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
if(net_report) send_error(net, 0, err);
|
if(net_report) send_error(net, 0, err);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if(net_report)
|
else if(net_report)
|
||||||
send_ok(net);
|
send_ok(net);
|
||||||
@ -2468,10 +2468,10 @@ static int stop_slave(THD* thd, bool net_report )
|
|||||||
if(!thd) thd = current_thd;
|
if(!thd) thd = current_thd;
|
||||||
NET* net = &thd->net;
|
NET* net = &thd->net;
|
||||||
const char* err = 0;
|
const char* err = 0;
|
||||||
|
|
||||||
if(check_access(thd, PROCESS_ACL, any_db))
|
if(check_access(thd, PROCESS_ACL, any_db))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
pthread_mutex_lock(&LOCK_slave);
|
pthread_mutex_lock(&LOCK_slave);
|
||||||
if (slave_running)
|
if (slave_running)
|
||||||
{
|
{
|
||||||
@ -2484,10 +2484,10 @@ static int stop_slave(THD* thd, bool net_report )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = "Slave is not running";
|
err = "Slave is not running";
|
||||||
|
|
||||||
pthread_mutex_unlock(&LOCK_slave);
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
thd->proc_info = 0;
|
thd->proc_info = 0;
|
||||||
|
|
||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
if(net_report) send_error(net, 0, err);
|
if(net_report) send_error(net, 0, err);
|
||||||
@ -2504,15 +2504,15 @@ static void reset_slave()
|
|||||||
MY_STAT stat_area;
|
MY_STAT stat_area;
|
||||||
char fname[FN_REFLEN];
|
char fname[FN_REFLEN];
|
||||||
bool slave_was_running = slave_running;
|
bool slave_was_running = slave_running;
|
||||||
|
|
||||||
if(slave_running)
|
if(slave_running)
|
||||||
stop_slave(0,0);
|
stop_slave(0,0);
|
||||||
|
|
||||||
fn_format(fname, master_info_file, mysql_data_home, "", 4+16+32);
|
fn_format(fname, master_info_file, mysql_data_home, "", 4+16+32);
|
||||||
if(my_stat(fname, &stat_area, MYF(0)))
|
if(my_stat(fname, &stat_area, MYF(0)))
|
||||||
if(my_delete(fname, MYF(MY_WME)))
|
if(my_delete(fname, MYF(MY_WME)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(slave_was_running)
|
if(slave_was_running)
|
||||||
start_slave(0,0);
|
start_slave(0,0);
|
||||||
}
|
}
|
||||||
@ -2532,7 +2532,7 @@ static int change_master(THD* thd)
|
|||||||
pthread_mutex_unlock(&LOCK_slave);
|
pthread_mutex_unlock(&LOCK_slave);
|
||||||
thd->proc_info = "changing master";
|
thd->proc_info = "changing master";
|
||||||
LEX_MASTER_INFO* lex_mi = &thd->lex.mi;
|
LEX_MASTER_INFO* lex_mi = &thd->lex.mi;
|
||||||
|
|
||||||
pthread_mutex_lock(&glob_mi.lock);
|
pthread_mutex_lock(&glob_mi.lock);
|
||||||
if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos)
|
if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos)
|
||||||
{
|
{
|
||||||
@ -2546,7 +2546,7 @@ static int change_master(THD* thd)
|
|||||||
sizeof(glob_mi.log_file_name));
|
sizeof(glob_mi.log_file_name));
|
||||||
if(lex_mi->pos)
|
if(lex_mi->pos)
|
||||||
glob_mi.pos = lex_mi->pos;
|
glob_mi.pos = lex_mi->pos;
|
||||||
|
|
||||||
if(lex_mi->host)
|
if(lex_mi->host)
|
||||||
strmake(glob_mi.host, lex_mi->host, sizeof(glob_mi.host));
|
strmake(glob_mi.host, lex_mi->host, sizeof(glob_mi.host));
|
||||||
if(lex_mi->user)
|
if(lex_mi->user)
|
||||||
@ -2557,14 +2557,14 @@ static int change_master(THD* thd)
|
|||||||
glob_mi.port = lex_mi->port;
|
glob_mi.port = lex_mi->port;
|
||||||
if(lex_mi->connect_retry)
|
if(lex_mi->connect_retry)
|
||||||
glob_mi.connect_retry = lex_mi->connect_retry;
|
glob_mi.connect_retry = lex_mi->connect_retry;
|
||||||
|
|
||||||
flush_master_info(&glob_mi);
|
flush_master_info(&glob_mi);
|
||||||
pthread_mutex_unlock(&glob_mi.lock);
|
pthread_mutex_unlock(&glob_mi.lock);
|
||||||
thd->proc_info = "starting slave";
|
thd->proc_info = "starting slave";
|
||||||
if(slave_was_running)
|
if(slave_was_running)
|
||||||
start_slave(0,0);
|
start_slave(0,0);
|
||||||
thd->proc_info = 0;
|
thd->proc_info = 0;
|
||||||
|
|
||||||
send_ok(&thd->net);
|
send_ok(&thd->net);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -2602,9 +2602,9 @@ static void reset_master()
|
|||||||
strmov(strcend(tmp,'.'),"-bin");
|
strmov(strcend(tmp,'.'),"-bin");
|
||||||
opt_bin_logname=tmp;
|
opt_bin_logname=tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_bin_log.open(opt_bin_logname,LOG_BIN);
|
mysql_bin_log.open(opt_bin_logname,LOG_BIN);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int show_binlog_info(THD* thd)
|
int show_binlog_info(THD* thd)
|
||||||
@ -2615,12 +2615,12 @@ int show_binlog_info(THD* thd)
|
|||||||
field_list.push_back(new Item_empty_string("Position",20));
|
field_list.push_back(new Item_empty_string("Position",20));
|
||||||
field_list.push_back(new Item_empty_string("Binlog_do_db",20));
|
field_list.push_back(new Item_empty_string("Binlog_do_db",20));
|
||||||
field_list.push_back(new Item_empty_string("Binlog_ignore_db",20));
|
field_list.push_back(new Item_empty_string("Binlog_ignore_db",20));
|
||||||
|
|
||||||
if(send_fields(thd, field_list, 1))
|
if(send_fields(thd, field_list, 1))
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
String* packet = &thd->packet;
|
String* packet = &thd->packet;
|
||||||
packet->length(0);
|
packet->length(0);
|
||||||
|
|
||||||
if(mysql_bin_log.is_open())
|
if(mysql_bin_log.is_open())
|
||||||
{
|
{
|
||||||
LOG_INFO li;
|
LOG_INFO li;
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||||
|
|
||||||
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
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
@ -25,7 +25,7 @@
|
|||||||
#include "sql_acl.h"
|
#include "sql_acl.h"
|
||||||
#include "lex_symbol.h"
|
#include "lex_symbol.h"
|
||||||
#include <myisam.h>
|
#include <myisam.h>
|
||||||
|
|
||||||
extern void yyerror(const char*);
|
extern void yyerror(const char*);
|
||||||
int yylex(void *yylval);
|
int yylex(void *yylval);
|
||||||
|
|
||||||
@ -451,7 +451,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||||||
literal text_literal insert_ident group_ident order_ident
|
literal text_literal insert_ident group_ident order_ident
|
||||||
simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
|
simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
|
||||||
table_wild opt_pad no_in_expr expr_expr simple_expr no_and_expr
|
table_wild opt_pad no_in_expr expr_expr simple_expr no_and_expr
|
||||||
using_list
|
using_list
|
||||||
|
|
||||||
%type <item_list>
|
%type <item_list>
|
||||||
expr_list udf_expr_list when_list ident_list
|
expr_list udf_expr_list when_list ident_list
|
||||||
@ -545,7 +545,7 @@ verb_clause:
|
|||||||
| rollback
|
| rollback
|
||||||
| select
|
| select
|
||||||
| set
|
| set
|
||||||
| slave
|
| slave
|
||||||
| show
|
| show
|
||||||
| unlock
|
| unlock
|
||||||
| update
|
| update
|
||||||
@ -554,7 +554,7 @@ verb_clause:
|
|||||||
/* change master */
|
/* change master */
|
||||||
|
|
||||||
change:
|
change:
|
||||||
CHANGE MASTER_SYM TO_SYM
|
CHANGE MASTER_SYM TO_SYM
|
||||||
{
|
{
|
||||||
LEX *lex = Lex;
|
LEX *lex = Lex;
|
||||||
lex->sql_command = SQLCOM_CHANGE_MASTER;
|
lex->sql_command = SQLCOM_CHANGE_MASTER;
|
||||||
@ -565,7 +565,7 @@ master_defs:
|
|||||||
master_def
|
master_def
|
||||||
|
|
|
|
||||||
master_defs ',' master_def
|
master_defs ',' master_def
|
||||||
|
|
||||||
master_def:
|
master_def:
|
||||||
MASTER_HOST_SYM EQ TEXT_STRING
|
MASTER_HOST_SYM EQ TEXT_STRING
|
||||||
{
|
{
|
||||||
@ -601,9 +601,9 @@ master_def:
|
|||||||
{
|
{
|
||||||
Lex->mi.connect_retry = $3;
|
Lex->mi.connect_retry = $3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* create a table */
|
/* create a table */
|
||||||
|
|
||||||
create:
|
create:
|
||||||
@ -611,7 +611,7 @@ create:
|
|||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
lex->sql_command= SQLCOM_CREATE_TABLE;
|
lex->sql_command= SQLCOM_CREATE_TABLE;
|
||||||
if (!add_table_to_list($5,
|
if (!add_table_to_list($5,
|
||||||
($2 & HA_LEX_CREATE_TMP_TABLE ?
|
($2 & HA_LEX_CREATE_TMP_TABLE ?
|
||||||
&tmp_table_alias : (LEX_STRING*) 0)))
|
&tmp_table_alias : (LEX_STRING*) 0)))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
@ -675,7 +675,7 @@ create:
|
|||||||
}
|
}
|
||||||
|
|
||||||
create2:
|
create2:
|
||||||
'(' field_list ')' opt_create_table_options create3 {}
|
'(' field_list ')' opt_create_table_options create3 {}
|
||||||
| opt_create_table_options create3 {}
|
| opt_create_table_options create3 {}
|
||||||
|
|
||||||
create3:
|
create3:
|
||||||
@ -687,18 +687,18 @@ create3:
|
|||||||
select_options select_item_list opt_select_from {}
|
select_options select_item_list opt_select_from {}
|
||||||
|
|
||||||
opt_table_options:
|
opt_table_options:
|
||||||
/* empty */ { $$= 0; }
|
/* empty */ { $$= 0; }
|
||||||
| table_options { $$= $1;}
|
| table_options { $$= $1;}
|
||||||
|
|
||||||
table_options:
|
table_options:
|
||||||
table_option { $$=$1; }
|
table_option { $$=$1; }
|
||||||
| table_option table_options { $$= $1 | $2 }
|
| table_option table_options { $$= $1 | $2 }
|
||||||
|
|
||||||
table_option:
|
table_option:
|
||||||
TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; }
|
TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; }
|
||||||
|
|
||||||
opt_if_not_exists:
|
opt_if_not_exists:
|
||||||
/* empty */ { $$= 0; }
|
/* empty */ { $$= 0; }
|
||||||
| IF NOT EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; }
|
| IF NOT EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; }
|
||||||
|
|
||||||
opt_create_table_options:
|
opt_create_table_options:
|
||||||
@ -720,7 +720,7 @@ create_table_option:
|
|||||||
| PACK_KEYS_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_PACK_KEYS : HA_OPTION_NO_PACK_KEYS; }
|
| PACK_KEYS_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_PACK_KEYS : HA_OPTION_NO_PACK_KEYS; }
|
||||||
| CHECKSUM_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; }
|
| CHECKSUM_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; }
|
||||||
| DELAY_KEY_WRITE_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; }
|
| DELAY_KEY_WRITE_SYM EQ ULONG_NUM { Lex->create_info.table_options|= $3 ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; }
|
||||||
| ROW_FORMAT_SYM EQ row_types { Lex->create_info.row_type= $3; }
|
| ROW_FORMAT_SYM EQ row_types { Lex->create_info.row_type= $3; }
|
||||||
| RAID_TYPE EQ raid_types { Lex->create_info.raid_type= $3; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
| RAID_TYPE EQ raid_types { Lex->create_info.raid_type= $3; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
||||||
| RAID_CHUNKS EQ ULONG_NUM { Lex->create_info.raid_chunks= $3; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
| RAID_CHUNKS EQ ULONG_NUM { Lex->create_info.raid_chunks= $3; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
||||||
| RAID_CHUNKSIZE EQ ULONG_NUM { Lex->create_info.raid_chunksize= $3*RAID_BLOCK_SIZE; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
| RAID_CHUNKSIZE EQ ULONG_NUM { Lex->create_info.raid_chunksize= $3*RAID_BLOCK_SIZE; Lex->create_info.used_fields|= HA_CREATE_USED_RAID;}
|
||||||
@ -862,7 +862,7 @@ char:
|
|||||||
CHAR_SYM {}
|
CHAR_SYM {}
|
||||||
| NCHAR_SYM {}
|
| NCHAR_SYM {}
|
||||||
| NATIONAL_SYM CHAR_SYM {}
|
| NATIONAL_SYM CHAR_SYM {}
|
||||||
|
|
||||||
varchar:
|
varchar:
|
||||||
char VARYING {}
|
char VARYING {}
|
||||||
| VARCHAR {}
|
| VARCHAR {}
|
||||||
@ -961,6 +961,7 @@ delete_option:
|
|||||||
key_type:
|
key_type:
|
||||||
opt_constraint PRIMARY_SYM KEY_SYM { $$= Key::PRIMARY; }
|
opt_constraint PRIMARY_SYM KEY_SYM { $$= Key::PRIMARY; }
|
||||||
| key_or_index { $$= Key::MULTIPLE; }
|
| key_or_index { $$= Key::MULTIPLE; }
|
||||||
|
| COLLECTION { $$= Key::FULLTEXT; }
|
||||||
| opt_constraint UNIQUE_SYM { $$= Key::UNIQUE; }
|
| opt_constraint UNIQUE_SYM { $$= Key::UNIQUE; }
|
||||||
| opt_constraint UNIQUE_SYM key_or_index { $$= Key::UNIQUE; }
|
| opt_constraint UNIQUE_SYM key_or_index { $$= Key::UNIQUE; }
|
||||||
|
|
||||||
@ -1091,7 +1092,7 @@ slave:
|
|||||||
Lex->sql_command = SQLCOM_SLAVE_STOP;
|
Lex->sql_command = SQLCOM_SLAVE_STOP;
|
||||||
Lex->type = 0;
|
Lex->type = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
repair:
|
repair:
|
||||||
REPAIR table_or_tables
|
REPAIR table_or_tables
|
||||||
{
|
{
|
||||||
@ -1119,7 +1120,7 @@ analyze:
|
|||||||
}
|
}
|
||||||
|
|
||||||
check:
|
check:
|
||||||
CHECK_SYM table_or_tables
|
CHECK_SYM table_or_tables
|
||||||
{
|
{
|
||||||
Lex->sql_command = SQLCOM_CHECK;
|
Lex->sql_command = SQLCOM_CHECK;
|
||||||
Lex->check_opt.init();
|
Lex->check_opt.init();
|
||||||
@ -1216,7 +1217,7 @@ select_alias:
|
|||||||
optional_braces:
|
optional_braces:
|
||||||
/* empty */ {}
|
/* empty */ {}
|
||||||
| '(' ')' {}
|
| '(' ')' {}
|
||||||
|
|
||||||
/* all possible expressions */
|
/* all possible expressions */
|
||||||
expr: expr_expr {$$ = $1; }
|
expr: expr_expr {$$ = $1; }
|
||||||
| simple_expr {$$ = $1; }
|
| simple_expr {$$ = $1; }
|
||||||
@ -1358,7 +1359,7 @@ simple_expr:
|
|||||||
(Item_func_match *)($$=new Item_func_match(*$2,$5))); }
|
(Item_func_match *)($$=new Item_func_match(*$2,$5))); }
|
||||||
| BINARY expr %prec NEG { $$= new Item_func_binary($2); }
|
| BINARY expr %prec NEG { $$= new Item_func_binary($2); }
|
||||||
| CASE_SYM opt_expr WHEN_SYM when_list opt_else END
|
| CASE_SYM opt_expr WHEN_SYM when_list opt_else END
|
||||||
{ $$= new Item_func_case(* $4, $2, $5 ) }
|
{ $$= new Item_func_case(* $4, $2, $5 ) }
|
||||||
| FUNC_ARG0 '(' ')'
|
| FUNC_ARG0 '(' ')'
|
||||||
{ $$= ((Item*(*)(void))($1.symbol->create_func))();}
|
{ $$= ((Item*(*)(void))($1.symbol->create_func))();}
|
||||||
| FUNC_ARG1 '(' expr ')'
|
| FUNC_ARG1 '(' expr ')'
|
||||||
@ -1552,7 +1553,7 @@ simple_expr:
|
|||||||
{ $$= new Item_func_yearweek($3, $5); }
|
{ $$= new Item_func_yearweek($3, $5); }
|
||||||
| BENCHMARK_SYM '(' ULONG_NUM ',' expr ')'
|
| BENCHMARK_SYM '(' ULONG_NUM ',' expr ')'
|
||||||
{ $$=new Item_func_benchmark($3,$5); }
|
{ $$=new Item_func_benchmark($3,$5); }
|
||||||
| EXTRACT_SYM '(' interval FROM expr ')'
|
| EXTRACT_SYM '(' interval FROM expr ')'
|
||||||
{ $$=new Item_extract( $3, $5); }
|
{ $$=new Item_extract( $3, $5); }
|
||||||
|
|
||||||
udf_expr_list:
|
udf_expr_list:
|
||||||
@ -1623,12 +1624,12 @@ when_list:
|
|||||||
{ $$= Lex->when_list.pop(); }
|
{ $$= Lex->when_list.pop(); }
|
||||||
|
|
||||||
when_list2:
|
when_list2:
|
||||||
expr THEN_SYM expr
|
expr THEN_SYM expr
|
||||||
{
|
{
|
||||||
Lex->when_list.head()->push_back($1);
|
Lex->when_list.head()->push_back($1);
|
||||||
Lex->when_list.head()->push_back($3);
|
Lex->when_list.head()->push_back($3);
|
||||||
}
|
}
|
||||||
| when_list2 WHEN_SYM expr THEN_SYM expr
|
| when_list2 WHEN_SYM expr THEN_SYM expr
|
||||||
{
|
{
|
||||||
Lex->when_list.head()->push_back($3);
|
Lex->when_list.head()->push_back($3);
|
||||||
Lex->when_list.head()->push_back($5);
|
Lex->when_list.head()->push_back($5);
|
||||||
@ -2091,11 +2092,11 @@ show_param:
|
|||||||
| MASTER_SYM STATUS_SYM
|
| MASTER_SYM STATUS_SYM
|
||||||
{
|
{
|
||||||
Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
|
Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
|
||||||
}
|
}
|
||||||
| SLAVE STATUS_SYM
|
| SLAVE STATUS_SYM
|
||||||
{
|
{
|
||||||
Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
|
Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_db:
|
opt_db:
|
||||||
/* empty */ { $$= 0; }
|
/* empty */ { $$= 0; }
|
||||||
@ -2144,8 +2145,8 @@ flush_option:
|
|||||||
| PRIVILEGES { Lex->type|= REFRESH_GRANT; }
|
| PRIVILEGES { Lex->type|= REFRESH_GRANT; }
|
||||||
| LOGS_SYM { Lex->type|= REFRESH_LOG; }
|
| LOGS_SYM { Lex->type|= REFRESH_LOG; }
|
||||||
| STATUS_SYM { Lex->type|= REFRESH_STATUS; }
|
| STATUS_SYM { Lex->type|= REFRESH_STATUS; }
|
||||||
| SLAVE { Lex->type|= REFRESH_SLAVE; }
|
| SLAVE { Lex->type|= REFRESH_SLAVE; }
|
||||||
| MASTER_SYM { Lex->type|= REFRESH_MASTER; }
|
| MASTER_SYM { Lex->type|= REFRESH_MASTER; }
|
||||||
|
|
||||||
/* kill threads */
|
/* kill threads */
|
||||||
|
|
||||||
@ -2178,13 +2179,13 @@ load: LOAD DATA_SYM opt_low_priority opt_local INFILE TEXT_STRING
|
|||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
|
|
|
|
||||||
LOAD TABLE_SYM table_ident FROM MASTER_SYM
|
LOAD TABLE_SYM table_ident FROM MASTER_SYM
|
||||||
{
|
{
|
||||||
Lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
|
Lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
|
||||||
if (!add_table_to_list($3,NULL))
|
if (!add_table_to_list($3,NULL))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
opt_local:
|
opt_local:
|
||||||
/* empty */ { $$=0;}
|
/* empty */ { $$=0;}
|
||||||
@ -2307,7 +2308,7 @@ ident:
|
|||||||
|
|
||||||
ident_or_text:
|
ident_or_text:
|
||||||
ident { $$=$1;}
|
ident { $$=$1;}
|
||||||
| TEXT_STRING { $$=$1;}
|
| TEXT_STRING { $$=$1;}
|
||||||
| LEX_HOSTNAME { $$=$1;}
|
| LEX_HOSTNAME { $$=$1;}
|
||||||
|
|
||||||
user:
|
user:
|
||||||
@ -2390,10 +2391,10 @@ keyword:
|
|||||||
| PROCESSLIST_SYM {}
|
| PROCESSLIST_SYM {}
|
||||||
| QUICK {}
|
| QUICK {}
|
||||||
| RAID_0_SYM {}
|
| RAID_0_SYM {}
|
||||||
| RAID_CHUNKS {}
|
| RAID_CHUNKS {}
|
||||||
| RAID_CHUNKSIZE {}
|
| RAID_CHUNKSIZE {}
|
||||||
| RAID_STRIPED_SYM {}
|
| RAID_STRIPED_SYM {}
|
||||||
| RAID_TYPE {}
|
| RAID_TYPE {}
|
||||||
| RELOAD {}
|
| RELOAD {}
|
||||||
| REPAIR {}
|
| REPAIR {}
|
||||||
| ROLLBACK_SYM {}
|
| ROLLBACK_SYM {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user