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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
5e127ad8
Commit
5e127ad8
authored
Jun 22, 2010
by
Jimmy Yang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Port fix for "bug #54044 Create temporary tables and using innodb crashes"
to 5.1 plugin codeline.
rb://378
, approved by Marko
parent
4bde5825
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
2 deletions
+41
-2
mysql-test/suite/innodb_plugin/r/innodb_bug54044.result
mysql-test/suite/innodb_plugin/r/innodb_bug54044.result
+3
-0
mysql-test/suite/innodb_plugin/t/innodb_bug54044.test
mysql-test/suite/innodb_plugin/t/innodb_bug54044.test
+11
-0
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/ChangeLog
+5
-0
storage/innodb_plugin/handler/ha_innodb.cc
storage/innodb_plugin/handler/ha_innodb.cc
+22
-2
No files found.
mysql-test/suite/innodb_plugin/r/innodb_bug54044.result
0 → 100644
View file @
5e127ad8
CREATE TEMPORARY TABLE TABLE_54044 ENGINE = INNODB
AS SELECT IF(NULL IS NOT NULL, NULL, NULL);
ERROR HY000: Can't create table 'test.TABLE_54044' (errno: -1)
mysql-test/suite/innodb_plugin/t/innodb_bug54044.test
0 → 100644
View file @
5e127ad8
# This is the test for bug #54044. Special handle MYSQL_TYPE_NULL type
# during create table, so it will not trigger assertion failure.
--
source
include
/
have_innodb
.
inc
# This 'create table' operation should fail because of
# using NULL datatype
--
error
ER_CANT_CREATE_TABLE
CREATE
TEMPORARY
TABLE
TABLE_54044
ENGINE
=
INNODB
AS
SELECT
IF
(
NULL
IS
NOT
NULL
,
NULL
,
NULL
);
storage/innodb_plugin/ChangeLog
View file @
5e127ad8
2010-06-22 The InnoDB Team
* handler/ha_innodb.cc, innodb_bug54044.test, innodb_bug54044.result
Fix Bug#54044, Create temporary tables and using innodb crashes.
2010-06-22 The InnoDB Team
2010-06-22 The InnoDB Team
* dict/dict0dict.c, dict/dict0mem.c, include/dict0mem.h,
* dict/dict0dict.c, dict/dict0mem.c, include/dict0mem.h,
...
...
storage/innodb_plugin/handler/ha_innodb.cc
View file @
5e127ad8
...
@@ -3950,6 +3950,11 @@ get_innobase_type_from_mysql_type(
...
@@ -3950,6 +3950,11 @@ get_innobase_type_from_mysql_type(
case
MYSQL_TYPE_BLOB
:
case
MYSQL_TYPE_BLOB
:
case
MYSQL_TYPE_LONG_BLOB
:
case
MYSQL_TYPE_LONG_BLOB
:
return
(
DATA_BLOB
);
return
(
DATA_BLOB
);
case
MYSQL_TYPE_NULL
:
/* MySQL currently accepts "NULL" datatype, but will
reject such datatype in the next release. We will cope
with it and not trigger assertion failure in 5.1 */
break
;
default:
default:
ut_error
;
ut_error
;
}
}
...
@@ -6000,7 +6005,22 @@ create_table_def(
...
@@ -6000,7 +6005,22 @@ create_table_def(
field
=
form
->
field
[
i
];
field
=
form
->
field
[
i
];
col_type
=
get_innobase_type_from_mysql_type
(
&
unsigned_type
,
col_type
=
get_innobase_type_from_mysql_type
(
&
unsigned_type
,
field
);
field
);
if
(
!
col_type
)
{
push_warning_printf
(
(
THD
*
)
trx
->
mysql_thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_CANT_CREATE_TABLE
,
"Error creating table '%s' with "
"column '%s'. Please check its "
"column type and try to re-create "
"the table with an appropriate "
"column type."
,
table
->
name
,
(
char
*
)
field
->
field_name
);
goto
err_col
;
}
if
(
field
->
null_ptr
)
{
if
(
field
->
null_ptr
)
{
nulls_allowed
=
0
;
nulls_allowed
=
0
;
}
else
{
}
else
{
...
@@ -6058,7 +6078,7 @@ create_table_def(
...
@@ -6058,7 +6078,7 @@ create_table_def(
if
(
dict_col_name_is_reserved
(
field
->
field_name
)){
if
(
dict_col_name_is_reserved
(
field
->
field_name
)){
my_error
(
ER_WRONG_COLUMN_NAME
,
MYF
(
0
),
my_error
(
ER_WRONG_COLUMN_NAME
,
MYF
(
0
),
field
->
field_name
);
field
->
field_name
);
err_col:
dict_mem_table_free
(
table
);
dict_mem_table_free
(
table
);
trx_commit_for_mysql
(
trx
);
trx_commit_for_mysql
(
trx
);
...
...
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