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
f75e79e0
Commit
f75e79e0
authored
Aug 01, 2006
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
After merge fix
parent
749091a9
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
84 additions
and
74 deletions
+84
-74
mysql-test/extra/rpl_tests/rpl_insert_id.test
mysql-test/extra/rpl_tests/rpl_insert_id.test
+21
-1
mysql-test/r/information_schema.result
mysql-test/r/information_schema.result
+14
-0
mysql-test/r/rpl_insert_id.result
mysql-test/r/rpl_insert_id.result
+1
-0
mysql-test/r/select.result
mysql-test/r/select.result
+1
-1
mysql-test/r/union.result
mysql-test/r/union.result
+7
-7
mysql-test/t/rpl_insert_id.test
mysql-test/t/rpl_insert_id.test
+0
-21
mysql-test/t/select.test
mysql-test/t/select.test
+20
-19
sql/field.cc
sql/field.cc
+2
-9
sql/field.h
sql/field.h
+3
-4
sql/item.cc
sql/item.cc
+5
-4
sql/sql_class.cc
sql/sql_class.cc
+1
-0
sql/sql_insert.cc
sql/sql_insert.cc
+5
-5
sql/sql_select.cc
sql/sql_select.cc
+4
-3
No files found.
mysql-test/extra/rpl_tests/rpl_insert_id.test
View file @
f75e79e0
...
@@ -84,9 +84,28 @@ SET FOREIGN_KEY_CHECKS=0;
...
@@ -84,9 +84,28 @@ SET FOREIGN_KEY_CHECKS=0;
--
error
1022
,
1062
--
error
1022
,
1062
INSERT
INTO
t1
VALUES
(
1
),(
1
);
INSERT
INTO
t1
VALUES
(
1
),(
1
);
sync_slave_with_master
;
sync_slave_with_master
;
connection
master
;
drop
table
t1
;
sync_slave_with_master
;
# End of 4.1 tests
# End of 4.1 tests
#
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
#
connection
master
;
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
;
#
#
# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
...
@@ -274,3 +293,4 @@ drop table t1, t2;
...
@@ -274,3 +293,4 @@ drop table t1, t2;
drop
function
insid
;
drop
function
insid
;
sync_slave_with_master
;
sync_slave_with_master
;
mysql-test/r/information_schema.result
View file @
f75e79e0
...
@@ -1238,7 +1238,14 @@ COLLATIONS COLLATION_NAME
...
@@ -1238,7 +1238,14 @@ COLLATIONS COLLATION_NAME
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
COLUMNS TABLE_SCHEMA
COLUMNS TABLE_SCHEMA
COLUMN_PRIVILEGES TABLE_SCHEMA
COLUMN_PRIVILEGES TABLE_SCHEMA
ENGINES ENGINE
EVENTS EVENT_SCHEMA
FILES TABLE_SCHEMA
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
PARTITIONS TABLE_SCHEMA
PLUGINS PLUGIN_NAME
PROCESSLIST ID
REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA
ROUTINES ROUTINE_SCHEMA
ROUTINES ROUTINE_SCHEMA
SCHEMATA SCHEMA_NAME
SCHEMATA SCHEMA_NAME
SCHEMA_PRIVILEGES TABLE_SCHEMA
SCHEMA_PRIVILEGES TABLE_SCHEMA
...
@@ -1269,7 +1276,14 @@ COLLATIONS COLLATION_NAME
...
@@ -1269,7 +1276,14 @@ COLLATIONS COLLATION_NAME
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME
COLUMNS TABLE_SCHEMA
COLUMNS TABLE_SCHEMA
COLUMN_PRIVILEGES TABLE_SCHEMA
COLUMN_PRIVILEGES TABLE_SCHEMA
ENGINES ENGINE
EVENTS EVENT_SCHEMA
FILES TABLE_SCHEMA
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
PARTITIONS TABLE_SCHEMA
PLUGINS PLUGIN_NAME
PROCESSLIST ID
REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA
ROUTINES ROUTINE_SCHEMA
ROUTINES ROUTINE_SCHEMA
SCHEMATA SCHEMA_NAME
SCHEMATA SCHEMA_NAME
SCHEMA_PRIVILEGES TABLE_SCHEMA
SCHEMA_PRIVILEGES TABLE_SCHEMA
...
...
mysql-test/r/rpl_insert_id.result
View file @
f75e79e0
...
@@ -73,6 +73,7 @@ CREATE TABLE t1 ( a INT UNIQUE );
...
@@ -73,6 +73,7 @@ CREATE TABLE t1 ( a INT UNIQUE );
SET FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=0;
INSERT INTO t1 VALUES (1),(1);
INSERT INTO t1 VALUES (1),(1);
Got one of the listed errors
Got one of the listed errors
drop table t1;
create table t1(a int auto_increment, key(a));
create table t1(a int auto_increment, key(a));
create table t2(a int);
create table t2(a int);
insert into t1 (a) values (null);
insert into t1 (a) values (null);
...
...
mysql-test/r/select.result
View file @
f75e79e0
...
@@ -3475,7 +3475,7 @@ SELECT 0.9888889889 * 1.011111411911;
...
@@ -3475,7 +3475,7 @@ SELECT 0.9888889889 * 1.011111411911;
0.9998769417899202067879
0.9998769417899202067879
prepare stmt from 'select 1 as " a "';
prepare stmt from 'select 1 as " a "';
Warnings:
Warnings:
Warning 1
46
6 Leading spaces are removed from name ' a '
Warning 1
54
6 Leading spaces are removed from name ' a '
execute stmt;
execute stmt;
a
a
1
1
mysql-test/r/union.result
View file @
f75e79e0
...
@@ -1311,14 +1311,14 @@ create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
...
@@ -1311,14 +1311,14 @@ create table t2 as select *, f6 as f8 from t1 union select *, f7 from t1;
show create table t2;
show create table t2;
Table Create Table
Table Create Table
t2 CREATE TABLE `t2` (
t2 CREATE TABLE `t2` (
`f1` char(1)
default
NULL,
`f1` char(1)
DEFAULT
NULL,
`f2` char(5)
default
NULL,
`f2` char(5)
DEFAULT
NULL,
`f3` binary(1)
default
NULL,
`f3` binary(1)
DEFAULT
NULL,
`f4` binary(5)
default
NULL,
`f4` binary(5)
DEFAULT
NULL,
`f5` timestamp NOT NULL
default
'0000-00-00 00:00:00',
`f5` timestamp NOT NULL
DEFAULT
'0000-00-00 00:00:00',
`f6` varchar(1)
character set utf8 default
NULL,
`f6` varchar(1)
CHARACTER SET utf8 DEFAULT
NULL,
`f7` text,
`f7` text,
`f8` text
character set
utf8
`f8` text
CHARACTER SET
utf8
) ENGINE=MyISAM DEFAULT CHARSET=latin1
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2;
drop table t1, t2;
(select avg(1)) union (select avg(1)) union (select avg(1)) union
(select avg(1)) union (select avg(1)) union (select avg(1)) union
...
...
mysql-test/t/rpl_insert_id.test
View file @
f75e79e0
...
@@ -9,24 +9,3 @@
...
@@ -9,24 +9,3 @@
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_innodb
.
inc
let
$engine_type
=
innodb
;
let
$engine_type
=
innodb
;
--
source
extra
/
rpl_tests
/
rpl_insert_id
.
test
--
source
extra
/
rpl_tests
/
rpl_insert_id
.
test
connection
master
;
drop
table
t1
;
sync_slave_with_master
;
#
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
#
connection
master
;
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
;
mysql-test/t/select.test
View file @
f75e79e0
...
@@ -2285,25 +2285,6 @@ EXPLAIN SELECT * FROM t1 FORCE INDEX (a);
...
@@ -2285,25 +2285,6 @@ EXPLAIN SELECT * FROM t1 FORCE INDEX (a);
DROP
TABLE
t1
;
DROP
TABLE
t1
;
#
# Bug #18759 "Incorrect string to numeric conversion"
#
# This test is here so that the behavior will not be changed to 4.1
# and not to 5.0 either. In 4.1 and 5.0 sending an integer as a string
# will be converted internally to real (double) value and it is not
# as accurate as bigint (longlong) for integers. Thus the results may
# vary. In 5.1 internally it is decimal, which is a string type and
# will be more accurate. Due to rather big changes needed to fix this
# in 4.1 or 5.0 it is not desired to do it in the stable versions.
#
# This test is here only to make sure that behavior is not changed in
# 4.1 and 5.0
#
CREATE
TABLE
t1
(
i
BIGINT
UNSIGNED
NOT
NULL
);
INSERT
INTO
t1
VALUES
(
10
);
SELECT
i
=
'1e+01'
,
i
=
1
e
+
01
,
i
in
(
1
e
+
01
,
1
e
+
01
),
i
in
(
'1e+01'
,
'1e+01'
)
FROM
t1
;
DROP
TABLE
t1
;
#
#
# Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
# Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
#
#
...
@@ -2319,6 +2300,7 @@ SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NUL
...
@@ -2319,6 +2300,7 @@ SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NUL
EXPLAIN
SELECT
STRAIGHT_JOIN
SQL_NO_CACHE
COUNT
(
*
)
FROM
t2
,
t1
WHERE
t1
.
b
=
t2
.
b
OR
t2
.
b
IS
NULL
;
EXPLAIN
SELECT
STRAIGHT_JOIN
SQL_NO_CACHE
COUNT
(
*
)
FROM
t2
,
t1
WHERE
t1
.
b
=
t2
.
b
OR
t2
.
b
IS
NULL
;
SELECT
STRAIGHT_JOIN
SQL_NO_CACHE
*
FROM
t2
,
t1
WHERE
t1
.
b
=
t2
.
b
OR
t2
.
b
IS
NULL
;
SELECT
STRAIGHT_JOIN
SQL_NO_CACHE
*
FROM
t2
,
t1
WHERE
t1
.
b
=
t2
.
b
OR
t2
.
b
IS
NULL
;
DROP
TABLE
IF
EXISTS
t1
,
t2
;
DROP
TABLE
IF
EXISTS
t1
,
t2
;
#
#
# Bug #20954 "avg(keyval) retuns 0.38 but max(keyval) returns an empty set"
# Bug #20954 "avg(keyval) retuns 0.38 but max(keyval) returns an empty set"
#
#
...
@@ -2349,6 +2331,25 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
...
@@ -2349,6 +2331,25 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
DROP
TABLE
t1
,
t2
;
DROP
TABLE
t1
,
t2
;
--
enable_ps_protocol
--
enable_ps_protocol
#
# Bug #18759 "Incorrect string to numeric conversion"
#
# This test is here so that the behavior will not be changed to 4.1
# and not to 5.0 either. In 4.1 and 5.0 sending an integer as a string
# will be converted internally to real (double) value and it is not
# as accurate as bigint (longlong) for integers. Thus the results may
# vary. In 5.1 internally it is decimal, which is a string type and
# will be more accurate. Due to rather big changes needed to fix this
# in 4.1 or 5.0 it is not desired to do it in the stable versions.
#
# This test is here only to make sure that behavior is not changed in
# 4.1 and 5.0
#
CREATE
TABLE
t1
(
i
BIGINT
UNSIGNED
NOT
NULL
);
INSERT
INTO
t1
VALUES
(
10
);
SELECT
i
=
'1e+01'
,
i
=
1
e
+
01
,
i
in
(
1
e
+
01
,
1
e
+
01
),
i
in
(
'1e+01'
,
'1e+01'
)
FROM
t1
;
DROP
TABLE
t1
;
# End of 4.1 tests
# End of 4.1 tests
#
#
...
...
sql/field.cc
View file @
f75e79e0
...
@@ -4587,19 +4587,12 @@ Field_timestamp::Field_timestamp(char *ptr_arg, uint32 len_arg,
...
@@ -4587,19 +4587,12 @@ Field_timestamp::Field_timestamp(char *ptr_arg, uint32 len_arg,
Field_timestamp
::
Field_timestamp
(
bool
maybe_null_arg
,
Field_timestamp
::
Field_timestamp
(
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
)
CHARSET_INFO
*
cs
)
:
Field_str
((
char
*
)
0
,
19
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
:
Field_str
((
char
*
)
0
,
19
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
NONE
,
field_name_arg
,
table_arg
,
cs
)
NONE
,
field_name_arg
,
cs
)
{
{
/* For 4.0 MYD and 4.0 InnoDB compatibility */
/* For 4.0 MYD and 4.0 InnoDB compatibility */
flags
|=
ZEROFILL_FLAG
|
UNSIGNED_FLAG
;
flags
|=
ZEROFILL_FLAG
|
UNSIGNED_FLAG
;
if
(
table
&&
!
table
->
timestamp_field
&&
unireg_check
!=
NONE
)
{
/* This timestamp has auto-update */
table
->
timestamp_field
=
this
;
flags
|=
TIMESTAMP_FLAG
;
}
}
}
...
...
sql/field.h
View file @
f75e79e0
...
@@ -793,10 +793,9 @@ public:
...
@@ -793,10 +793,9 @@ public:
Field_timestamp
(
char
*
ptr_arg
,
uint32
len_arg
,
Field_timestamp
(
char
*
ptr_arg
,
uint32
len_arg
,
uchar
*
null_ptr_arg
,
uchar
null_bit_arg
,
uchar
*
null_ptr_arg
,
uchar
null_bit_arg
,
enum
utype
unireg_check_arg
,
const
char
*
field_name_arg
,
enum
utype
unireg_check_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
TABLE_SHARE
*
share
,
CHARSET_INFO
*
cs
);
TABLE_SHARE
*
share
,
CHARSET_INFO
*
cs
);
Field_timestamp
(
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
Field_timestamp
(
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
);
CHARSET_INFO
*
cs
);
enum_field_types
type
()
const
{
return
FIELD_TYPE_TIMESTAMP
;}
enum_field_types
type
()
const
{
return
FIELD_TYPE_TIMESTAMP
;}
enum
ha_base_keytype
key_type
()
const
{
return
HA_KEYTYPE_ULONG_INT
;
}
enum
ha_base_keytype
key_type
()
const
{
return
HA_KEYTYPE_ULONG_INT
;
}
enum
Item_result
cmp_type
()
const
{
return
INT_RESULT
;
}
enum
Item_result
cmp_type
()
const
{
return
INT_RESULT
;
}
...
@@ -1148,9 +1147,9 @@ public:
...
@@ -1148,9 +1147,9 @@ public:
flags
|=
BLOB_FLAG
;
flags
|=
BLOB_FLAG
;
}
}
Field_blob
(
uint32
len_arg
,
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
Field_blob
(
uint32
len_arg
,
bool
maybe_null_arg
,
const
char
*
field_name_arg
,
struct
st_table
*
table_arg
,
CHARSET_INFO
*
cs
,
bool
set_packlength
)
CHARSET_INFO
*
cs
,
bool
set_packlength
)
:
Field_longstr
((
char
*
)
0
,
len_arg
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
:
Field_longstr
((
char
*
)
0
,
len_arg
,
maybe_null_arg
?
(
uchar
*
)
""
:
0
,
0
,
NONE
,
field_name_arg
,
table_arg
,
cs
)
NONE
,
field_name_arg
,
cs
)
{
{
flags
|=
BLOB_FLAG
;
flags
|=
BLOB_FLAG
;
packlength
=
4
;
packlength
=
4
;
...
...
sql/item.cc
View file @
f75e79e0
...
@@ -4037,7 +4037,8 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table, bool fixed_length)
...
@@ -4037,7 +4037,8 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table, bool fixed_length)
field
=
new
Field_time
(
maybe_null
,
name
,
&
my_charset_bin
);
field
=
new
Field_time
(
maybe_null
,
name
,
&
my_charset_bin
);
break
;
break
;
case
MYSQL_TYPE_TIMESTAMP
:
case
MYSQL_TYPE_TIMESTAMP
:
return
new
Field_timestamp
(
maybe_null
,
name
,
table
,
&
my_charset_bin
);
field
=
new
Field_timestamp
(
maybe_null
,
name
,
&
my_charset_bin
);
break
;
case
MYSQL_TYPE_DATETIME
:
case
MYSQL_TYPE_DATETIME
:
field
=
new
Field_datetime
(
maybe_null
,
name
,
&
my_charset_bin
);
field
=
new
Field_datetime
(
maybe_null
,
name
,
&
my_charset_bin
);
break
;
break
;
...
@@ -4072,10 +4073,10 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table, bool fixed_length)
...
@@ -4072,10 +4073,10 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table, bool fixed_length)
case
MYSQL_TYPE_BLOB
:
case
MYSQL_TYPE_BLOB
:
case
MYSQL_TYPE_GEOMETRY
:
case
MYSQL_TYPE_GEOMETRY
:
if
(
this
->
type
()
==
Item
::
TYPE_HOLDER
)
if
(
this
->
type
()
==
Item
::
TYPE_HOLDER
)
field
=
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
field
=
new
Field_blob
(
max_length
,
maybe_null
,
name
,
collation
.
collation
,
collation
.
collation
,
1
);
1
);
else
else
field
=
new
Field_blob
(
max_length
,
maybe_null
,
name
,
table
,
collation
.
collation
);
field
=
new
Field_blob
(
max_length
,
maybe_null
,
name
,
collation
.
collation
);
break
;
// Blob handled outside of case
break
;
// Blob handled outside of case
}
}
if
(
field
)
if
(
field
)
...
...
sql/sql_class.cc
View file @
f75e79e0
...
@@ -639,6 +639,7 @@ void THD::cleanup_after_query()
...
@@ -639,6 +639,7 @@ void THD::cleanup_after_query()
first_successful_insert_id_in_prev_stmt
=
first_successful_insert_id_in_prev_stmt
=
first_successful_insert_id_in_cur_stmt
;
first_successful_insert_id_in_cur_stmt
;
first_successful_insert_id_in_cur_stmt
=
0
;
first_successful_insert_id_in_cur_stmt
=
0
;
substitute_null_with_insert_id
=
TRUE
;
}
}
arg_of_last_insert_id_function
=
0
;
arg_of_last_insert_id_function
=
0
;
/* Free Items that were created during this execution */
/* Free Items that were created during this execution */
...
...
sql/sql_insert.cc
View file @
f75e79e0
...
@@ -730,7 +730,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
...
@@ -730,7 +730,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
uint
used_fields_buff_size
=
bitmap_buffer_size
(
table
->
s
->
fields
);
uint
used_fields_buff_size
=
bitmap_buffer_size
(
table
->
s
->
fields
);
uint32
*
used_fields_buff
=
(
uint32
*
)
thd
->
alloc
(
used_fields_buff_size
);
uint32
*
used_fields_buff
=
(
uint32
*
)
thd
->
alloc
(
used_fields_buff_size
);
MY_BITMAP
used_fields
;
MY_BITMAP
used_fields
;
bool
save_set_query_id
=
thd
->
set_query_id
;
enum_mark_columns
save_mark_used_columns
=
thd
->
mark_used_columns
;
DBUG_ENTER
(
"check_key_in_view"
);
DBUG_ENTER
(
"check_key_in_view"
);
if
(
!
used_fields_buff
)
if
(
!
used_fields_buff
)
...
@@ -746,20 +746,20 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
...
@@ -746,20 +746,20 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
we must not set query_id for fields as they're not
we must not set query_id for fields as they're not
really used in this context
really used in this context
*/
*/
thd
->
set_query_id
=
0
;
thd
->
mark_used_columns
=
MARK_COLUMNS_NONE
;
/* check simplicity and prepare unique test of view */
/* check simplicity and prepare unique test of view */
for
(
trans
=
trans_start
;
trans
!=
trans_end
;
trans
++
)
for
(
trans
=
trans_start
;
trans
!=
trans_end
;
trans
++
)
{
{
if
(
!
trans
->
item
->
fixed
&&
trans
->
item
->
fix_fields
(
thd
,
&
trans
->
item
))
if
(
!
trans
->
item
->
fixed
&&
trans
->
item
->
fix_fields
(
thd
,
&
trans
->
item
))
{
{
thd
->
set_query_id
=
save_set_query_id
;
thd
->
mark_used_columns
=
save_mark_used_columns
;
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
Item_field
*
field
;
Item_field
*
field
;
/* simple SELECT list entry (field without expression) */
/* simple SELECT list entry (field without expression) */
if
(
!
(
field
=
trans
->
item
->
filed_for_view_update
()))
if
(
!
(
field
=
trans
->
item
->
filed_for_view_update
()))
{
{
thd
->
set_query_id
=
save_set_query_id
;
thd
->
mark_used_columns
=
save_mark_used_columns
;
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
if
(
field
->
field
->
unireg_check
==
Field
::
NEXT_NUMBER
)
if
(
field
->
field
->
unireg_check
==
Field
::
NEXT_NUMBER
)
...
@@ -771,7 +771,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
...
@@ -771,7 +771,7 @@ static bool check_view_insertability(THD * thd, TABLE_LIST *view)
*/
*/
trans
->
item
=
field
;
trans
->
item
=
field
;
}
}
thd
->
set_query_id
=
save_set_query_id
;
thd
->
mark_used_columns
=
save_mark_used_columns
;
/* unique test */
/* unique test */
for
(
trans
=
trans_start
;
trans
!=
trans_end
;
trans
++
)
for
(
trans
=
trans_start
;
trans
!=
trans_end
;
trans
++
)
{
{
...
...
sql/sql_select.cc
View file @
f75e79e0
...
@@ -1095,7 +1095,7 @@ JOIN::optimize()
...
@@ -1095,7 +1095,7 @@ JOIN::optimize()
for
(
ORDER
*
tmp_order
=
order
;
tmp_order
;
tmp_order
=
tmp_order
->
next
)
for
(
ORDER
*
tmp_order
=
order
;
tmp_order
;
tmp_order
=
tmp_order
->
next
)
{
{
Item
*
item
=
*
tmp_order
->
item
;
Item
*
item
=
*
tmp_order
->
item
;
if
(
item
->
walk
(
&
Item
::
is_expensive_processor
,(
byte
*
)
0
))
if
(
item
->
walk
(
&
Item
::
is_expensive_processor
,
0
,
(
byte
*
)
0
))
{
{
/* Force tmp table without sort */
/* Force tmp table without sort */
need_tmp
=
1
;
simple_order
=
simple_group
=
0
;
need_tmp
=
1
;
simple_order
=
simple_group
=
0
;
...
@@ -7963,7 +7963,8 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
...
@@ -7963,7 +7963,8 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
Field
*
field
=
((
Item_field
*
)
args
[
0
])
->
field
;
Field
*
field
=
((
Item_field
*
)
args
[
0
])
->
field
;
if
(
field
->
flags
&
AUTO_INCREMENT_FLAG
&&
!
field
->
table
->
maybe_null
&&
if
(
field
->
flags
&
AUTO_INCREMENT_FLAG
&&
!
field
->
table
->
maybe_null
&&
(
thd
->
options
&
OPTION_AUTO_IS_NULL
)
&&
(
thd
->
options
&
OPTION_AUTO_IS_NULL
)
&&
(
thd
->
first_successful_insert_id_in_prev_stmt
>
0
))
(
thd
->
first_successful_insert_id_in_prev_stmt
>
0
&&
thd
->
substitute_null_with_insert_id
))
{
{
#ifdef HAVE_QUERY_CACHE
#ifdef HAVE_QUERY_CACHE
query_cache_abort
(
&
thd
->
net
);
query_cache_abort
(
&
thd
->
net
);
...
@@ -7986,7 +7987,7 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
...
@@ -7986,7 +7987,7 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
IS NULL should be mapped to LAST_INSERT_ID only for first row, so
IS NULL should be mapped to LAST_INSERT_ID only for first row, so
clear for next row
clear for next row
*/
*/
thd
->
first_successful_insert_id_in_prev_stmt
=
0
;
thd
->
substitute_null_with_insert_id
=
FALSE
;
}
}
/* fix to replace 'NULL' dates with '0' (shreeve@uci.edu) */
/* fix to replace 'NULL' dates with '0' (shreeve@uci.edu) */
else
if
(((
field
->
type
()
==
FIELD_TYPE_DATE
)
||
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