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
e01280f4
Commit
e01280f4
authored
Apr 21, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.clean
parents
8b417593
e0d8dde3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
13 deletions
+13
-13
sql/sql_insert.cc
sql/sql_insert.cc
+13
-13
No files found.
sql/sql_insert.cc
View file @
e01280f4
...
...
@@ -53,6 +53,7 @@ static bool check_view_insertability(TABLE_LIST *view, query_id_t query_id);
table The table for insert.
fields The insert fields.
values The insert values.
check_unique If duplicate values should be rejected.
NOTE
Clears TIMESTAMP_AUTO_SET_ON_INSERT from table->timestamp_field_type
...
...
@@ -64,8 +65,9 @@ static bool check_view_insertability(TABLE_LIST *view, query_id_t query_id);
-1 Error
*/
static
int
check_insert_fields
(
THD
*
thd
,
TABLE
*
table
,
List
<
Item
>
&
fields
,
List
<
Item
>
&
values
)
static
int
check_insert_fields
(
THD
*
thd
,
TABLE_LIST
*
table_list
,
List
<
Item
>
&
fields
,
List
<
Item
>
&
values
,
bool
check_unique
)
{
TABLE
*
table
=
table_list
->
table
;
...
...
@@ -87,7 +89,7 @@ static int check_insert_fields(THD *thd, TABLE *table, List<Item> &fields,
}
if
(
values
.
elements
!=
table
->
s
->
fields
)
{
my_error
(
ER_WRONG_VALUE_COUNT_ON_ROW
,
MYF
(
0
),
counter
);
my_error
(
ER_WRONG_VALUE_COUNT_ON_ROW
,
MYF
(
0
),
1
);
return
-
1
;
}
#ifndef NO_EMBEDDED_ACCESS_CHECKS
...
...
@@ -109,7 +111,7 @@ static int check_insert_fields(THD *thd, TABLE *table, List<Item> &fields,
int
res
;
if
(
fields
.
elements
!=
values
.
elements
)
{
my_error
(
ER_WRONG_VALUE_COUNT_ON_ROW
,
MYF
(
0
),
counter
);
my_error
(
ER_WRONG_VALUE_COUNT_ON_ROW
,
MYF
(
0
),
1
);
return
-
1
;
}
...
...
@@ -186,11 +188,11 @@ static int check_insert_fields(THD *thd, TABLE *table, List<Item> &fields,
-1 Error
*/
static
int
check_update_fields
(
THD
*
thd
,
TABLE
*
table
,
TABLE_LIST
*
insert_table_list
,
static
int
check_update_fields
(
THD
*
thd
,
TABLE_LIST
*
insert_table_list
,
List
<
Item
>
&
update_fields
)
{
ulong
timestamp_query_id
;
TABLE
*
table
=
insert_table_list
->
table
;
ulong
timestamp_query_id
;
LINT_INIT
(
timestamp_query_id
);
/*
...
...
@@ -200,7 +202,7 @@ static int check_update_fields(THD *thd, TABLE *table,
if
(
table
->
timestamp_field
)
{
timestamp_query_id
=
table
->
timestamp_field
->
query_id
;
table
->
timestamp_field
->
query_id
=
thd
->
query_id
-
1
;
table
->
timestamp_field
->
query_id
=
thd
->
query_id
-
1
;
}
/*
...
...
@@ -762,13 +764,12 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table,
next_local
=
table_list
->
next_local
;
table_list
->
next_local
=
0
;
if
((
values
&&
check_insert_fields
(
thd
,
table_list
,
fields
,
*
values
,
1
,
if
((
values
&&
check_insert_fields
(
thd
,
table_list
,
fields
,
*
values
,
!
insert_into_view
))
||
(
values
&&
setup_fields
(
thd
,
0
,
table_list
,
*
values
,
0
,
0
,
0
))
||
(
duplic
==
DUP_UPDATE
&&
(
check_update_fields
(
thd
,
table
,
insert_table_list
,
update_fields
)
||
((
thd
->
lex
->
select_lex
.
no_wrap_view_item
=
1
,
(
res
=
setup_fields
(
thd
,
0
,
table_list
,
update_fields
,
1
,
0
,
0
)),
(
res
=
check_update_fields
(
thd
,
table_list
,
update_fields
)),
thd
->
lex
->
select_lex
.
no_wrap_view_item
=
0
,
res
)
||
setup_fields
(
thd
,
0
,
table_list
,
update_values
,
1
,
0
,
0
))))
...
...
@@ -1860,8 +1861,7 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
DBUG_ENTER
(
"select_insert::prepare"
);
unit
=
u
;
if
(
check_insert_fields
(
thd
,
table_list
,
*
fields
,
values
,
1
,
!
insert_into_view
))
if
(
check_insert_fields
(
thd
,
table_list
,
*
fields
,
values
,
!
insert_into_view
))
DBUG_RETURN
(
1
);
/*
if it is INSERT into join view then check_insert_fields already found
...
...
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