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
d3996f2f
Commit
d3996f2f
authored
Feb 11, 2008
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-maria
into mysql.com:/home/my/mysql-maria
parents
fa8fad74
315d7b34
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
121 additions
and
27 deletions
+121
-27
KNOWN_BUGS.txt
KNOWN_BUGS.txt
+8
-2
mysql-test/r/maria.result
mysql-test/r/maria.result
+33
-0
mysql-test/r/myisam.result
mysql-test/r/myisam.result
+10
-0
mysql-test/t/maria.test
mysql-test/t/maria.test
+19
-1
mysql-test/t/myisam.test
mysql-test/t/myisam.test
+7
-0
sql/handler.cc
sql/handler.cc
+4
-5
sql/handler.h
sql/handler.h
+10
-1
sql/set_var.cc
sql/set_var.cc
+1
-1
sql/sql_table.cc
sql/sql_table.cc
+20
-8
sql/sql_tablespace.cc
sql/sql_tablespace.cc
+7
-6
sql/sql_yacc.yy
sql/sql_yacc.yy
+1
-1
sql/unireg.cc
sql/unireg.cc
+1
-2
No files found.
KNOWN_BUGS.txt
View file @
d3996f2f
...
...
@@ -20,8 +20,8 @@ http://bugs.mysql.com/ so that we can either fix it for next release
or in the worst case add it here for others to know!
Known bugs that
are planned to be fixed before next minor release
===========================================================
======
Known bugs that
we are working on and will be fixed shortly
===========================================================
- If the log files are damaged or inconsistent, Maria may fail to start.
We should fix that if this happens and mysqld is restarted (thanks to
...
...
@@ -31,9 +31,15 @@ Known bugs that are planned to be fixed before next minor release
Temporary fix is to remove or maria_log.???????? files from the data
directory, restart mysqld and run CHECK TABLE / REPAIR TABLE or
mysqlcheck on your Maria tables
- We have some instabilities in log writing that is under investigatation
This causes mainly assert to triggers in the code and sometimes
the log handler doesn't start up after restart.
- LOAD INDEX commands are for the moment ignored for Maria tables
(The code needs to be rewritten to do all reads through page cache to
avoid half-block reads)
- Freeing maria tmp table after fetching rows using prepared statements causes
a crash.
Known bugs that are planned to be fixed before Beta
===================================================
...
...
mysql-test/r/maria.result
View file @
d3996f2f
...
...
@@ -2245,3 +2245,36 @@ n c
301 c
302 d
drop table t1;
create table t1 (n int not null, c char(1)) engine=maria;
alter table t1 engine=myisam;
alter table t1 engine=maria;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`n` int(11) NOT NULL,
`c` char(1) DEFAULT NULL
)
ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
drop table t1;
create table t1 (n int not null, c char(1)) engine=maria transactional=1;
alter table t1 engine=myisam;
Warnings:
Error 1478 Table storage engine 'MyISAM' does not support the create option 'TRANSACTIONAL=1'
alter table t1 engine=maria;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`n` int(11) NOT NULL,
`c` char(1) DEFAULT NULL
)
ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
drop table t1;
create table t1 (n int not null, c char(1)) engine=myisam transactional=1;
Warnings:
Error 1478 Table storage engine 'MyISAM' does not support the create option 'TRANSACTIONAL=1'
alter table t1 engine=maria;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`n` int(11) NOT NULL,
`c` char(1) DEFAULT NULL
)
ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
drop table t1;
mysql-test/r/myisam.result
View file @
d3996f2f
...
...
@@ -2023,4 +2023,14 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
create table t1 (n int not null, c char(1)) transactional=1;
Warnings:
Error 1478 Table storage engine 'MyISAM' does not support the create option 'TRANSACTIONAL=1'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`n` int(11) NOT NULL,
`c` char(1) DEFAULT NULL
)
ENGINE=MyISAM DEFAULT CHARSET=latin1 TRANSACTIONAL=1
drop table t1;
End of 5.1 tests
mysql-test/t/maria.test
View file @
d3996f2f
...
...
@@ -1454,8 +1454,26 @@ insert into t1 values(null, "d");
select
*
from
t1
;
drop
table
t1
;
#
# Test warnings with transactional=1 with MyISAM
#
create
table
t1
(
n
int
not
null
,
c
char
(
1
))
engine
=
maria
;
alter
table
t1
engine
=
myisam
;
alter
table
t1
engine
=
maria
;
show
create
table
t1
;
drop
table
t1
;
create
table
t1
(
n
int
not
null
,
c
char
(
1
))
engine
=
maria
transactional
=
1
;
alter
table
t1
engine
=
myisam
;
alter
table
t1
engine
=
maria
;
show
create
table
t1
;
drop
table
t1
;
create
table
t1
(
n
int
not
null
,
c
char
(
1
))
engine
=
myisam
transactional
=
1
;
alter
table
t1
engine
=
maria
;
show
create
table
t1
;
drop
table
t1
;
# End of 5.
2
tests
# End of 5.
1
tests
--
disable_result_log
--
disable_query_log
...
...
mysql-test/t/myisam.test
View file @
d3996f2f
...
...
@@ -1278,5 +1278,12 @@ DELETE FROM t1 WHERE c1 >= 10;
CHECK
TABLE
t1
;
DROP
TABLE
t1
;
#
# Test warnings with transactional=1 with MyISAM
#
create
table
t1
(
n
int
not
null
,
c
char
(
1
))
transactional
=
1
;
show
create
table
t1
;
drop
table
t1
;
--
echo
End
of
5.1
tests
sql/handler.cc
View file @
d3996f2f
...
...
@@ -373,8 +373,7 @@ int ha_finalize_handlerton(st_plugin_int *plugin)
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
DBUG_ENTER
(
"ha_finalize_handlerton"
);
switch
(
hton
->
state
)
{
switch
(
hton
->
state
)
{
case
SHOW_OPTION_NO
:
case
SHOW_OPTION_DISABLED
:
break
;
...
...
@@ -647,7 +646,7 @@ int ha_prepare(THD *thd)
{
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
h
a_resolve_storage_engine_name
(
*
ht
)
);
h
ton_name
(
*
ht
)
->
str
);
}
}
}
...
...
@@ -1041,7 +1040,7 @@ static my_bool xarecover_handlerton(THD *unused, plugin_ref plugin,
while
((
got
=
hton
->
recover
(
hton
,
info
->
list
,
info
->
len
))
>
0
)
{
sql_print_information
(
"Found %d prepared transaction(s) in %s"
,
got
,
h
a_resolve_storage_engine_name
(
hton
)
);
got
,
h
ton_name
(
hton
)
->
str
);
for
(
int
i
=
0
;
i
<
got
;
i
++
)
{
my_xid
x
=
info
->
list
[
i
].
get_my_xid
();
...
...
@@ -3814,7 +3813,7 @@ bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat)
{
if
(
db_type
->
state
!=
SHOW_OPTION_YES
)
{
const
LEX_STRING
*
name
=
&
hton2plugin
[
db_type
->
slot
]
->
name
;
const
LEX_STRING
*
name
=
hton_name
(
db_type
)
;
result
=
stat_print
(
thd
,
name
->
str
,
name
->
length
,
""
,
0
,
"DISABLED"
,
8
)
?
1
:
0
;
}
...
...
sql/handler.h
View file @
d3996f2f
...
...
@@ -709,6 +709,12 @@ struct handlerton
};
inline
LEX_STRING
*
hton_name
(
const
handlerton
*
hton
)
{
return
&
(
hton2plugin
[
hton
->
slot
]
->
name
);
}
/* Possible flags of a handlerton (there can be 32 of them) */
#define HTON_NO_FLAGS 0
#define HTON_CLOSE_CURSORS_AT_COMMIT (1 << 0)
...
...
@@ -1629,6 +1635,8 @@ public:
*/
virtual
void
use_hidden_primary_key
();
LEX_STRING
*
engine_name
()
{
return
hton_name
(
ht
);
}
protected:
/* Service methods for use by storage engines. */
void
ha_statistic_increment
(
ulong
SSV
::*
offset
)
const
;
...
...
@@ -1644,6 +1652,7 @@ protected:
*/
virtual
int
rename_table
(
const
char
*
from
,
const
char
*
to
);
virtual
int
delete_table
(
const
char
*
name
);
private:
/*
Low-level primitives for storage engines. These should be
...
...
@@ -1848,7 +1857,7 @@ static inline enum legacy_db_type ha_legacy_type(const handlerton *db_type)
static
inline
const
char
*
ha_resolve_storage_engine_name
(
const
handlerton
*
db_type
)
{
return
db_type
==
NULL
?
"UNKNOWN"
:
hton
2plugin
[
db_type
->
slot
]
->
name
.
str
;
return
db_type
==
NULL
?
"UNKNOWN"
:
hton
_name
(
db_type
)
->
str
;
}
static
inline
bool
ha_check_storage_engine_flag
(
const
handlerton
*
db_type
,
uint32
flag
)
...
...
sql/set_var.cc
View file @
d3996f2f
...
...
@@ -3529,7 +3529,7 @@ uchar *sys_var_thd_storage_engine::value_ptr(THD *thd, enum_var_type type,
if
(
type
==
OPT_GLOBAL
)
plugin
=
my_plugin_lock
(
thd
,
&
(
global_system_variables
.
*
offset
));
hton
=
plugin_data
(
plugin
,
handlerton
*
);
engine_name
=
&
hton2plugin
[
hton
->
slot
]
->
name
;
engine_name
=
hton_name
(
hton
)
;
result
=
(
uchar
*
)
thd
->
strmake
(
engine_name
->
str
,
engine_name
->
length
);
if
(
type
==
OPT_GLOBAL
)
plugin_unlock
(
thd
,
plugin
);
...
...
sql/sql_table.cc
View file @
d3996f2f
...
...
@@ -3418,6 +3418,14 @@ bool mysql_create_table_no_lock(THD *thd,
goto
err
;
}
/* Give warnings for not supported table options */
if
(
create_info
->
transactional
&&
!
file
->
ht
->
commit
)
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_ILLEGAL_HA_CREATE_OPTION
,
ER
(
ER_ILLEGAL_HA_CREATE_OPTION
),
file
->
engine_name
()
->
str
,
"TRANSACTIONAL=1"
);
VOID
(
pthread_mutex_lock
(
&
LOCK_open
));
if
(
!
internal_tmp_table
&&
!
(
create_info
->
options
&
HA_LEX_CREATE_TMP_TABLE
))
{
...
...
@@ -5414,6 +5422,7 @@ bool alter_table_manage_keys(TABLE *table, int indexes_were_disabled,
Sets create_info->varchar if the table has a VARCHAR column.
Prepares alter_info->create_list and alter_info->key_list with
columns and keys of the new table.
@retval TRUE error, out of memory or a semantical error in ALTER
TABLE instructions
@retval FALSE success
...
...
@@ -5440,7 +5449,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
uint
used_fields
=
create_info
->
used_fields
;
KEY
*
key_info
=
table
->
key_info
;
bool
rc
=
TRUE
;
Create_field
*
def
;
Field
**
f_ptr
,
*
field
;
DBUG_ENTER
(
"mysql_prepare_alter_table"
);
create_info
->
varchar
=
FALSE
;
...
...
@@ -5476,18 +5486,16 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
create_info
->
tablespace
=
tablespace
;
}
restore_record
(
table
,
s
->
default_values
);
// Empty record for DEFAULT
Create_field
*
def
;
/*
First collect all fields from table which isn't in drop_list
*/
Field
**
f_ptr
,
*
field
;
for
(
f_ptr
=
table
->
field
;
(
field
=
*
f_ptr
)
;
f_ptr
++
)
{
Alter_drop
*
drop
;
if
(
field
->
type
()
==
MYSQL_TYPE_STRING
)
create_info
->
varchar
=
TRUE
;
/* Check if field should be dropped */
Alter_drop
*
drop
;
drop_it
.
rewind
();
while
((
drop
=
drop_it
++
))
{
...
...
@@ -5561,7 +5569,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
{
if
(
def
->
change
&&
!
def
->
field
)
{
my_error
(
ER_BAD_FIELD_ERROR
,
MYF
(
0
),
def
->
change
,
table
->
s
->
table_name
.
str
);
my_error
(
ER_BAD_FIELD_ERROR
,
MYF
(
0
),
def
->
change
,
table
->
s
->
table_name
.
str
);
goto
err
;
}
/*
...
...
@@ -5596,7 +5605,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
}
if
(
!
find
)
{
my_error
(
ER_BAD_FIELD_ERROR
,
MYF
(
0
),
def
->
after
,
table
->
s
->
table_name
.
str
);
my_error
(
ER_BAD_FIELD_ERROR
,
MYF
(
0
),
def
->
after
,
table
->
s
->
table_name
.
str
);
goto
err
;
}
find_it
.
after
(
def
);
// Put element after this
...
...
@@ -5646,6 +5656,8 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
continue
;
// Wrong field (from UNIREG)
const
char
*
key_part_name
=
key_part
->
field
->
field_name
;
Create_field
*
cfield
;
uint
key_part_length
;
field_it
.
rewind
();
while
((
cfield
=
field_it
++
))
{
...
...
@@ -5661,7 +5673,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
}
if
(
!
cfield
)
continue
;
// Field is removed
uint
key_part_length
=
key_part
->
length
;
key_part_length
=
key_part
->
length
;
if
(
cfield
->
field
)
// Not new field
{
/*
...
...
@@ -7312,7 +7324,7 @@ static bool check_engine(THD *thd, const char *table_name,
if
(
create_info
->
used_fields
&
HA_CREATE_USED_ENGINE
)
{
my_error
(
ER_ILLEGAL_HA_CREATE_OPTION
,
MYF
(
0
),
h
a_resolve_storage_engine_name
(
*
new_engine
)
,
"TEMPORARY"
);
h
ton_name
(
*
new_engine
)
->
str
,
"TEMPORARY"
);
*
new_engine
=
0
;
return
TRUE
;
}
...
...
sql/sql_tablespace.cc
View file @
d3996f2f
...
...
@@ -34,7 +34,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_WARN_USING_OTHER_HANDLER
,
ER
(
ER_WARN_USING_OTHER_HANDLER
),
h
a_resolve_storage_engine_name
(
hton
)
,
h
ton_name
(
hton
)
->
str
,
ts_info
->
tablespace_name
?
ts_info
->
tablespace_name
:
ts_info
->
logfile_group_name
);
}
...
...
@@ -43,13 +43,14 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
{
if
((
error
=
hton
->
alter_tablespace
(
hton
,
thd
,
ts_info
)))
{
if
(
error
==
HA_ADMIN_NOT_IMPLEMENTED
)
if
(
error
==
1
)
{
my_error
(
ER_CHECK_NOT_IMPLEMENTED
,
MYF
(
0
),
""
);
DBUG_RETURN
(
1
);
}
else
if
(
error
==
1
)
if
(
error
==
HA_ADMIN_NOT_IMPLEMENTED
)
{
DBUG_RETURN
(
1
);
my_error
(
ER_CHECK_NOT_IMPLEMENTED
,
MYF
(
0
),
""
);
}
else
{
...
...
@@ -63,7 +64,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_ILLEGAL_HA_CREATE_OPTION
,
ER
(
ER_ILLEGAL_HA_CREATE_OPTION
),
h
a_resolve_storage_engine_name
(
hton
)
,
h
ton_name
(
hton
)
->
str
,
"TABLESPACE or LOGFILE GROUP"
);
}
write_bin_log
(
thd
,
FALSE
,
thd
->
query
,
thd
->
query_length
);
...
...
sql/sql_yacc.yy
View file @
d3996f2f
...
...
@@ -1650,7 +1650,7 @@ create:
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_WARN_USING_OTHER_HANDLER,
ER(ER_WARN_USING_OTHER_HANDLER),
h
a_resolve_storage_engine_name(lex->create_info.db_type)
,
h
ton_name(lex->create_info.db_type)->str
,
$5->table.str);
}
}
...
...
sql/unireg.cc
View file @
d3996f2f
...
...
@@ -159,8 +159,7 @@ bool mysql_create_frm(THD *thd, const char *file_name,
reclength
=
uint2korr
(
forminfo
+
266
);
/* Calculate extra data segment length */
str_db_type
.
str
=
(
char
*
)
ha_resolve_storage_engine_name
(
create_info
->
db_type
);
str_db_type
.
length
=
strlen
(
str_db_type
.
str
);
str_db_type
=
*
hton_name
(
create_info
->
db_type
);
/* str_db_type */
create_info
->
extra_size
=
(
2
+
str_db_type
.
length
+
2
+
create_info
->
connect_string
.
length
);
...
...
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