Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
87fbeb40
Commit
87fbeb40
authored
Nov 29, 2002
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
let's leave "INSERT ... SELECT ... UPDATE" for the future
parent
fd11c804
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
17 deletions
+26
-17
sql/sql_yacc.yy
sql/sql_yacc.yy
+26
-17
No files found.
sql/sql_yacc.yy
View file @
87fbeb40
...
...
@@ -682,7 +682,7 @@ query:
{
send_error(thd,ER_EMPTY_QUERY);
YYABORT;
}
}
else
{
thd->lex.sql_command = SQLCOM_EMPTY_QUERY;
...
...
@@ -810,7 +810,7 @@ create:
LEX *lex=Lex;
lex->sql_command= SQLCOM_CREATE_TABLE;
if (!lex->select_lex.add_table_to_list($5,
($2 &
($2 &
HA_LEX_CREATE_TMP_TABLE ?
&tmp_table_alias :
(LEX_STRING*) 0),1,
...
...
@@ -1073,7 +1073,7 @@ type:
$$=FIELD_TYPE_STRING; }
| char opt_binary { Lex->length=(char*) "1";
$$=FIELD_TYPE_STRING; }
| BINARY '(' NUM ')'
{ Lex->length=$3.str;
| BINARY '(' NUM ')' { Lex->length=$3.str;
Lex->charset=my_charset_bin;
$$=FIELD_TYPE_STRING; }
| varchar '(' NUM ')' opt_binary { Lex->length=$3.str;
...
...
@@ -1219,15 +1219,15 @@ attribute:
charset_name:
BINARY
{
{
if (!($$=get_charset_by_name("binary",MYF(0))))
{
net_printf(YYTHD,ER_UNKNOWN_CHARACTER_SET,"binary");
YYABORT;
}
}
| ident
{
| ident
{
if (!($$=get_charset_by_name($1.str,MYF(0))))
{
net_printf(YYTHD,ER_UNKNOWN_CHARACTER_SET,$1.str);
...
...
@@ -1373,7 +1373,7 @@ alter:
lex->alter_list.empty();
lex->select_lex.init_order();
lex->select_lex.db=lex->name=0;
bzero((char*) &lex->create_info,sizeof(lex->create_info));
bzero((char*) &lex->create_info,sizeof(lex->create_info));
lex->create_info.db_type= DB_TYPE_DEFAULT;
lex->create_info.table_charset=thd->db_charset?thd->db_charset:default_charset_info;
lex->create_info.row_type= ROW_TYPE_NOT_USED;
...
...
@@ -1617,12 +1617,12 @@ table_to_table_list:
table_to_table:
table_ident TO_SYM table_ident
{
{
SELECT_LEX_NODE *sl= Lex->current_select;
if (!sl->add_table_to_list($1,NULL,1,TL_IGNORE) ||
!sl->add_table_to_list($3,NULL,1,TL_IGNORE))
YYABORT;
};
};
/*
Select : retrieve data from table
...
...
@@ -1636,8 +1636,8 @@ select:
select_init:
SELECT_SYM select_init2
|
'(' SELECT_SYM
select_part2 ')'
{
'(' SELECT_SYM
select_part2 ')'
{
LEX *lex= Lex;
SELECT_LEX_NODE * sel= lex->current_select;
if (sel->set_braces(true))
...
...
@@ -1647,12 +1647,12 @@ select_init:
}
/* select in braces, can't contain global parameters */
sel->master_unit()->global_parameters=
sel->master_unit();
sel->master_unit();
} union_opt;
select_init2:
select_part2
{
{
LEX *lex= Lex;
if (lex->current_select->set_braces(false))
{
...
...
@@ -2901,7 +2901,7 @@ insert:
/* for subselects */
lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
} insert_lock_option
opt_ignore insert2
opt_ignore insert2
{
Select->set_lock_for_tables($3);
}
...
...
@@ -2911,7 +2911,7 @@ insert:
replace:
REPLACE
{
LEX *lex=Lex;
LEX *lex=Lex;
lex->sql_command = SQLCOM_REPLACE;
lex->duplicates= DUP_REPLACE;
}
...
...
@@ -2927,7 +2927,7 @@ insert_lock_option:
| LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; }
| DELAYED_SYM { $$= TL_WRITE_DELAYED; }
| HIGH_PRIORITY { $$= TL_WRITE; }
;
;
replace_lock_option:
opt_low_priority { $$= $1; }
...
...
@@ -3039,13 +3039,22 @@ values:
;
expr_or_default:
expr
{ $$= $1;}
expr { $$= $1;}
| DEFAULT {$$= new Item_default(); }
;
opt_insert_update:
/* empty */
| ON DUPLICATE KEY_SYM UPDATE_SYM SET update_list
{ /* for simplisity, let's forget about
INSERT ... SELECT ... UPDATE
for a moment */
if (Lex->sql_command != SQLCOM_INSERT)
{
send_error(Lex->thd, ER_SYNTAX_ERROR);
YYABORT;
}
}
;
/* Update rows in a table */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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