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
893e9276
Commit
893e9276
authored
Jul 10, 2006
by
gkodinov/kgeorge@macbook.gmz
Browse files
Options
Browse Files
Download
Plain Diff
Merge rakia:mysql/4.1/B14553
into macbook.gmz:/Users/kgeorge/mysql/work/B14553-4.1-opt
parents
6e1c8ad8
2c9f5cc7
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
3 deletions
+60
-3
mysql-test/r/odbc.result
mysql-test/r/odbc.result
+11
-0
mysql-test/r/rpl_insert_id.result
mysql-test/r/rpl_insert_id.result
+14
-0
mysql-test/t/odbc.test
mysql-test/t/odbc.test
+10
-0
mysql-test/t/rpl_insert_id.test
mysql-test/t/rpl_insert_id.test
+19
-1
sql/sql_class.cc
sql/sql_class.cc
+1
-0
sql/sql_class.h
sql/sql_class.h
+3
-0
sql/sql_select.cc
sql/sql_select.cc
+2
-2
No files found.
mysql-test/r/odbc.result
View file @
893e9276
...
...
@@ -14,3 +14,14 @@ explain select * from t1 where b is null;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
drop table t1;
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY);
INSERT INTO t1 VALUES (NULL);
SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL;
a last_insert_id()
1 1
SELECT sql_no_cache a, last_insert_id() FROM t1 WHERE a IS NULL;
a last_insert_id()
SELECT sql_no_cache a, last_insert_id() FROM t1;
a last_insert_id()
1 1
DROP TABLE t1;
mysql-test/r/rpl_insert_id.result
View file @
893e9276
...
...
@@ -73,3 +73,17 @@ CREATE TABLE t1 ( a INT UNIQUE );
SET FOREIGN_KEY_CHECKS=0;
INSERT INTO t1 VALUES (1),(1);
ERROR 23000: Duplicate entry '1' for key 1
drop table t1;
create table t1(a int auto_increment, key(a));
create table t2(a int);
insert into t1 (a) values (null);
insert into t2 (a) select a from t1 where a is null;
insert into t2 (a) select a from t1 where a is null;
select * from t2;
a
1
select * from t2;
a
1
drop table t1;
drop table t2;
mysql-test/t/odbc.test
View file @
893e9276
...
...
@@ -21,4 +21,14 @@ select * from t1 where a is null;
explain
select
*
from
t1
where
b
is
null
;
drop
table
t1
;
#
# Bug #14553: NULL in WHERE resets LAST_INSERT_ID
#
CREATE
TABLE
t1
(
a
INT
AUTO_INCREMENT
PRIMARY
KEY
);
INSERT
INTO
t1
VALUES
(
NULL
);
SELECT
sql_no_cache
a
,
last_insert_id
()
FROM
t1
WHERE
a
IS
NULL
;
SELECT
sql_no_cache
a
,
last_insert_id
()
FROM
t1
WHERE
a
IS
NULL
;
SELECT
sql_no_cache
a
,
last_insert_id
()
FROM
t1
;
DROP
TABLE
t1
;
# End of 4.1 tests
mysql-test/t/rpl_insert_id.test
View file @
893e9276
...
...
@@ -73,5 +73,23 @@ SET FOREIGN_KEY_CHECKS=0;
--
error
1062
INSERT
INTO
t1
VALUES
(
1
),(
1
);
sync_slave_with_master
;
#
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
#
connection
master
;
drop
table
t1
;
create
table
t1
(
a
int
auto_increment
,
key
(
a
));
create
table
t2
(
a
int
);
insert
into
t1
(
a
)
values
(
null
);
insert
into
t2
(
a
)
select
a
from
t1
where
a
is
null
;
insert
into
t2
(
a
)
select
a
from
t1
where
a
is
null
;
select
*
from
t2
;
sync_slave_with_master
;
connection
slave
;
select
*
from
t2
;
connection
master
;
drop
table
t1
;
drop
table
t2
;
sync_slave_with_master
;
# End of 4.1 tests
sql/sql_class.cc
View file @
893e9276
...
...
@@ -265,6 +265,7 @@ THD::THD()
ulong
tmp
=
sql_rnd_with_mutex
();
randominit
(
&
rand
,
tmp
+
(
ulong
)
&
rand
,
tmp
+
(
ulong
)
::
query_id
);
}
substitute_null_with_insert_id
=
FALSE
;
}
...
...
sql/sql_class.h
View file @
893e9276
...
...
@@ -893,6 +893,8 @@ public:
bool
last_cuted_field
;
bool
no_errors
,
password
,
is_fatal_error
;
bool
query_start_used
,
last_insert_id_used
,
insert_id_used
,
rand_used
;
/* for IS NULL => = last_insert_id() fix in remove_eq_conds() */
bool
substitute_null_with_insert_id
;
bool
time_zone_used
;
bool
in_lock_tables
;
bool
query_error
,
bootstrap
,
cleanup_done
;
...
...
@@ -988,6 +990,7 @@ public:
{
last_insert_id
=
id_arg
;
insert_id_used
=
1
;
substitute_null_with_insert_id
=
TRUE
;
}
inline
ulonglong
insert_id
(
void
)
{
...
...
sql/sql_select.cc
View file @
893e9276
...
...
@@ -4754,7 +4754,7 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
Field
*
field
=
((
Item_field
*
)
args
[
0
])
->
field
;
if
(
field
->
flags
&
AUTO_INCREMENT_FLAG
&&
!
field
->
table
->
maybe_null
&&
(
thd
->
options
&
OPTION_AUTO_IS_NULL
)
&&
thd
->
insert_id
())
thd
->
insert_id
()
&&
thd
->
substitute_null_with_insert_id
)
{
#ifdef HAVE_QUERY_CACHE
query_cache_abort
(
&
thd
->
net
);
...
...
@@ -4768,7 +4768,7 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
cond
=
new_cond
;
cond
->
fix_fields
(
thd
,
0
,
&
cond
);
}
thd
->
insert_id
(
0
);
// Clear for next request
thd
->
substitute_null_with_insert_id
=
FALSE
;
// Clear for next request
}
/* fix to replace 'NULL' dates with '0' (shreeve@uci.edu) */
else
if
(((
field
->
type
()
==
FIELD_TYPE_DATE
)
||
...
...
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