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
3b8c3bd7
Commit
3b8c3bd7
authored
Jun 09, 2005
by
acurtis@xiphis.org
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
d08d1a88
304bb0c6
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
218 additions
and
46 deletions
+218
-46
myisam/mi_check.c
myisam/mi_check.c
+8
-0
mysql-test/r/analyze.result
mysql-test/r/analyze.result
+32
-0
mysql-test/r/create.result
mysql-test/r/create.result
+6
-0
mysql-test/r/innodb_handler.result
mysql-test/r/innodb_handler.result
+16
-0
mysql-test/r/sql_mode.result
mysql-test/r/sql_mode.result
+2
-0
mysql-test/t/analyze.test
mysql-test/t/analyze.test
+39
-0
mysql-test/t/create.test
mysql-test/t/create.test
+11
-0
mysql-test/t/innodb_handler.test
mysql-test/t/innodb_handler.test
+10
-0
mysql-test/t/sql_mode.test
mysql-test/t/sql_mode.test
+5
-0
mysys/my_fopen.c
mysys/my_fopen.c
+41
-21
ndb/test/run-test/ndb-autotest.sh
ndb/test/run-test/ndb-autotest.sh
+5
-2
sql/set_var.cc
sql/set_var.cc
+3
-0
sql/sql_acl.cc
sql/sql_acl.cc
+5
-5
sql/sql_handler.cc
sql/sql_handler.cc
+25
-13
sql/sql_table.cc
sql/sql_table.cc
+10
-5
No files found.
myisam/mi_check.c
View file @
3b8c3bd7
...
...
@@ -3871,6 +3871,14 @@ int update_state_info(MI_CHECK *param, MI_INFO *info,uint update)
if
(
!
share
->
state
.
create_time
)
share
->
state
.
create_time
=
share
->
state
.
check_time
;
}
/*
When tables are locked we haven't synched the share state and the
real state for a while so we better do it here before synching
the share state to disk. Only when table is write locked is it
necessary to perform this synch.
*/
if
(
info
->
lock_type
==
F_WRLCK
)
share
->
state
.
state
=
*
info
->
state
;
if
(
mi_state_info_write
(
share
->
kfile
,
&
share
->
state
,
1
+
2
))
goto
err
;
share
->
changed
=
0
;
...
...
mysql-test/r/analyze.result
0 → 100644
View file @
3b8c3bd7
create table t1 (a bigint);
lock tables t1 write;
insert into t1 values(0);
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
unlock tables;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
create table t1 (a bigint);
insert into t1 values(0);
lock tables t1 write;
delete from t1;
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
unlock tables;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
create table t1 (a bigint);
insert into t1 values(0);
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;
mysql-test/r/create.result
View file @
3b8c3bd7
...
...
@@ -596,3 +596,9 @@ ERROR 42000: Incorrect database name 'xyz'
create table t1(t1.name int);
create table t2(test.t2.name int);
drop table t1,t2;
create database mysqltest;
use mysqltest;
drop database mysqltest;
create table test.t1 like x;
ERROR 42000: Incorrect database name 'NULL'
drop table if exists test.t1;
mysql-test/r/innodb_handler.result
View file @
3b8c3bd7
...
...
@@ -132,6 +132,22 @@ a b
handler t2 read last;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
handler t2 close;
handler t1 open;
handler t1 read a next;
a b
14 aaa
handler t1 read a next;
a b
15 bbb
handler t1 close;
handler t1 open;
handler t1 read a prev;
a b
22 iii
handler t1 read a prev;
a b
21 hhh
handler t1 close;
handler t1 open as t2;
handler t2 read first;
a b
...
...
mysql-test/r/sql_mode.result
View file @
3b8c3bd7
...
...
@@ -138,6 +138,8 @@ t1 CREATE TABLE `t1` (
`min_num` decimal(7,6) default '0.000001'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1 ;
set @@SQL_MODE=NULL;
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'NULL'
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='';
show local variables like 'SQL_MODE';
Variable_name Value
...
...
mysql-test/t/analyze.test
0 → 100644
View file @
3b8c3bd7
#
# Bug #10901 Analyze Table on new table destroys table
# This is minimal test case to get error
# The problem was that analyze table wrote the shared state to the file and this
# didn't include the inserts while locked. A check was needed to ensure that
# state information was not updated when executing analyze table for a locked table.
# The analyze table had to be within locks and check table had to be after unlocking
# since then it brings the wrong state from disk rather than from the currently
# correct internal state. The insert is needed since it changes the file state,
# number of records.
# The fix is to synchronise the state of the shared state and the current state before
# calling mi_state_info_write
#
create
table
t1
(
a
bigint
);
lock
tables
t1
write
;
insert
into
t1
values
(
0
);
analyze
table
t1
;
unlock
tables
;
check
table
t1
;
drop
table
t1
;
create
table
t1
(
a
bigint
);
insert
into
t1
values
(
0
);
lock
tables
t1
write
;
delete
from
t1
;
analyze
table
t1
;
unlock
tables
;
check
table
t1
;
drop
table
t1
;
create
table
t1
(
a
bigint
);
insert
into
t1
values
(
0
);
analyze
table
t1
;
check
table
t1
;
drop
table
t1
;
mysql-test/t/create.test
View file @
3b8c3bd7
...
...
@@ -503,3 +503,14 @@ create table t1(t1.name int);
create
table
t2
(
test
.
t2
.
name
int
);
drop
table
t1
,
t2
;
#
# Bug#11028: Crash on create table like
#
create
database
mysqltest
;
use
mysqltest
;
drop
database
mysqltest
;
--
error
1102
create
table
test
.
t1
like
x
;
--
disable_warnings
drop
table
if
exists
test
.
t1
;
--
enable_warnings
mysql-test/t/innodb_handler.test
View file @
3b8c3bd7
...
...
@@ -69,6 +69,16 @@ handler t2 read next;
handler
t2
read
last
;
handler
t2
close
;
handler
t1
open
;
handler
t1
read
a
next
;
# this used to crash as a bug#5373
handler
t1
read
a
next
;
handler
t1
close
;
handler
t1
open
;
handler
t1
read
a
prev
;
# this used to crash as a bug#5373
handler
t1
read
a
prev
;
handler
t1
close
;
handler
t1
open
as
t2
;
handler
t2
read
first
;
alter
table
t1
engine
=
innodb
;
...
...
mysql-test/t/sql_mode.test
View file @
3b8c3bd7
...
...
@@ -80,6 +80,11 @@ create table t1 ( min_num dec(6,6) default .000001);
show
create
table
t1
;
drop
table
t1
;
#
# Bug #10732: Set SQL_MODE to NULL gives garbled error message
#
--
error
1231
set
@@
SQL_MODE
=
NULL
;
#
# test for
...
...
mysys/my_fopen.c
View file @
3b8c3bd7
...
...
@@ -158,32 +158,52 @@ FILE *my_fdopen(File Filedes, const char *name, int Flags, myf MyFlags)
DBUG_RETURN
(
fd
);
}
/* my_fdopen */
/*
make_ftype
Make a filehandler-open-typestring from ordinary inputflags
/* Make a filehandler-open-typestring from ordinary inputflags */
Note: This routine attempts to find the best possible match
between a numeric option and a string option that could be
fed to fopen. There is not a 1 to 1 mapping between the two.
r == O_RDONLY
w == O_WRONLY|O_TRUNC|O_CREAT
a == O_WRONLY|O_APPEND|O_CREAT
r+ == O_RDWR
w+ == O_RDWR|O_TRUNC|O_CREAT
a+ == O_RDWR|O_APPEND|O_CREAT
*/
static
void
make_ftype
(
register
my_string
to
,
register
int
flag
)
{
#if FILE_BINARY
/* If we have binary-files */
#if FILE_BINARY
/* If we have binary-files */
reg3
int
org_flag
=
flag
;
#endif
flag
&=
~
FILE_BINARY
;
/* remove binary bit */
if
(
flag
==
O_RDONLY
)
*
to
++=
'r'
;
else
if
(
flag
==
O_WRONLY
)
*
to
++=
'w'
;
else
{
/* Add '+' after theese */
if
(
flag
==
O_RDWR
)
#endif
flag
&=
~
FILE_BINARY
;
/* remove binary bit */
/* check some possible invalid combinations */
DBUG_ASSERT
(
flag
&
(
O_TRUNC
|
O_APPEND
)
!=
O_TRUNC
|
O_APPEND
);
if
(
flag
&
(
O_RDONLY
|
O_WRONLY
)
==
O_WRONLY
)
*
to
++=
(
flag
&
O_APPEND
)
?
'a'
:
'w'
;
else
if
(
flag
&
O_RDWR
)
{
/* Add '+' after theese */
if
(
flag
&
(
O_TRUNC
|
O_CREAT
))
*
to
++=
'w'
;
else
if
(
flag
&
O_APPEND
)
*
to
++=
'a'
;
else
*
to
++=
'r'
;
else
if
(
flag
&
O_APPEND
)
*
to
++=
'a'
;
else
*
to
++=
'w'
;
/* Create file */
*
to
++=
'+'
;
}
#if FILE_BINARY
/* If we have binary-files */
if
(
org_flag
&
FILE_BINARY
)
*
to
++=
'+'
;
}
else
*
to
++=
'r'
;
#if FILE_BINARY
/* If we have binary-files */
if
(
org_flag
&
FILE_BINARY
)
*
to
++=
'b'
;
#endif
#endif
*
to
=
'\0'
;
}
/* make_ftype */
ndb/test/run-test/ndb-autotest.sh
View file @
3b8c3bd7
...
...
@@ -13,7 +13,7 @@ save_args=$*
VERSION
=
"ndb-autotest.sh version 1.04"
DATE
=
`
date
'+%Y-%m-%d'
`
HOST
=
`
hostname
-s
`
HOST
=
`
hostname
`
export
DATE HOST
set
-e
...
...
@@ -330,7 +330,10 @@ start(){
tar
cfz /tmp/res.
$2
.
$$
.tgz
`
basename
$p2
`
/
$DATE
scp /tmp/res.
$2
.
$$
.tgz
\
$result_host
:
$result_path
/res.
$DATE
.
$HOST
.
$2
.
$$
.tgz
rm
-f
/tmp/res.
$2
.
$$
.tgz
if
[
$?
-eq
0
]
then
rm
-f
/tmp/res.
$2
.
$$
.tgz
fi
fi
}
...
...
sql/set_var.cc
View file @
3b8c3bd7
...
...
@@ -1616,7 +1616,10 @@ bool sys_var::check_set(THD *thd, set_var *var, TYPELIB *enum_names)
if
(
var
->
value
->
result_type
()
==
STRING_RESULT
)
{
if
(
!
(
res
=
var
->
value
->
val_str
(
&
str
)))
{
strmake
(
buff
,
"NULL"
,
4
);
goto
err
;
}
var
->
save_result
.
ulong_value
=
((
ulong
)
find_set
(
enum_names
,
res
->
c_ptr
(),
res
->
length
(),
...
...
sql/sql_acl.cc
View file @
3b8c3bd7
...
...
@@ -188,7 +188,7 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
ACL_HOST
host
;
update_hostname
(
&
host
.
host
,
get_field
(
&
mem
,
table
->
field
[
0
]));
host
.
db
=
get_field
(
&
mem
,
table
->
field
[
1
]);
if
(
lower_case_table_names
)
if
(
lower_case_table_names
&&
host
.
db
)
{
/*
convert db to lower case and give a warning if the db wasn't
...
...
@@ -210,7 +210,7 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
{
sql_print_warning
(
"'host' entry '%s|%s' "
"ignored in --skip-name-resolve mode."
,
host
.
host
.
hostname
,
host
.
db
,
host
.
host
.
hostname
);
host
.
host
.
hostname
,
host
.
db
?
host
.
db
:
""
);
continue
;
}
#ifndef TO_BE_REMOVED
...
...
@@ -278,7 +278,7 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
{
sql_print_warning
(
"'user' entry '%s@%s' "
"ignored in --skip-name-resolve mode."
,
user
.
user
,
user
.
host
.
hostname
,
user
.
host
.
hostname
);
user
.
user
,
user
.
host
.
hostname
);
continue
;
}
...
...
@@ -414,7 +414,7 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
{
sql_print_warning
(
"'db' entry '%s %s@%s' "
"ignored in --skip-name-resolve mode."
,
db
.
db
,
db
.
user
,
db
.
host
.
hostname
,
db
.
host
.
hostname
);
db
.
db
,
db
.
user
,
db
.
host
.
hostname
);
continue
;
}
db
.
access
=
get_access
(
table
,
3
);
...
...
@@ -3232,7 +3232,7 @@ my_bool grant_init(THD *org_thd)
sql_print_warning
(
"'procs_priv' entry '%s %s@%s' "
"ignored in --skip-name-resolve mode."
,
mem_check
->
tname
,
mem_check
->
user
,
mem_check
->
host
,
mem_check
->
host
);
mem_check
->
host
);
continue
;
}
}
...
...
sql/sql_handler.cc
View file @
3b8c3bd7
...
...
@@ -413,8 +413,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
cond
->
fix_fields
(
thd
,
tables
,
&
cond
))
||
cond
->
check_cols
(
1
)))
goto
err0
;
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
if
(
keyname
)
{
if
((
keyno
=
find_type
(
keyname
,
&
table
->
s
->
keynames
,
1
+
2
)
-
1
)
<
0
)
...
...
@@ -422,8 +420,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
my_error
(
ER_KEY_DOES_NOT_EXITS
,
MYF
(
0
),
keyname
,
tables
->
alias
);
goto
err0
;
}
table
->
file
->
ha_index_or_rnd_end
();
table
->
file
->
ha_index_init
(
keyno
);
}
if
(
insert_fields
(
thd
,
tables
,
tables
->
db
,
tables
->
alias
,
&
it
,
0
,
0
))
...
...
@@ -449,9 +445,22 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
for
(
num_rows
=
0
;
num_rows
<
select_limit_cnt
;
)
{
switch
(
mode
)
{
case
RNEXT
:
if
(
table
->
file
->
inited
!=
handler
::
NONE
)
{
error
=
keyname
?
table
->
file
->
index_next
(
table
->
record
[
0
])
:
table
->
file
->
rnd_next
(
table
->
record
[
0
]);
break
;
}
/* else fall through */
case
RFIRST
:
if
(
keyname
)
{
table
->
file
->
ha_index_or_rnd_end
();
table
->
file
->
ha_index_init
(
keyno
);
error
=
table
->
file
->
index_first
(
table
->
record
[
0
]);
}
else
{
table
->
file
->
ha_index_or_rnd_end
();
...
...
@@ -460,20 +469,21 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
mode
=
RNEXT
;
break
;
case
RPREV
:
DBUG_ASSERT
(
keyname
!=
0
);
if
(
table
->
file
->
inited
!=
handler
::
NONE
)
{
error
=
table
->
file
->
index_prev
(
table
->
record
[
0
]);
break
;
}
/* else fall through */
case
RLAST
:
DBUG_ASSERT
(
keyname
!=
0
);
table
->
file
->
ha_index_or_rnd_end
();
table
->
file
->
ha_index_init
(
keyno
);
error
=
table
->
file
->
index_last
(
table
->
record
[
0
]);
mode
=
RPREV
;
break
;
case
RNEXT
:
error
=
(
keyname
?
table
->
file
->
index_next
(
table
->
record
[
0
])
:
table
->
file
->
rnd_next
(
table
->
record
[
0
]));
break
;
case
RPREV
:
DBUG_ASSERT
(
keyname
!=
0
);
error
=
table
->
file
->
index_prev
(
table
->
record
[
0
]);
break
;
case
RNEXT_SAME
:
/* Continue scan on "(keypart1,keypart2,...)=(c1, c2, ...) */
DBUG_ASSERT
(
keyname
!=
0
);
...
...
@@ -508,6 +518,8 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
if
(
!
(
key
=
(
byte
*
)
thd
->
calloc
(
ALIGN_SIZE
(
key_len
))))
goto
err
;
table
->
file
->
ha_index_or_rnd_end
();
table
->
file
->
ha_index_init
(
keyno
);
key_copy
(
key
,
table
->
record
[
0
],
table
->
key_info
+
keyno
,
key_len
);
error
=
table
->
file
->
index_read
(
table
->
record
[
0
],
key
,
key_len
,
ha_rkey_mode
);
...
...
sql/sql_table.cc
View file @
3b8c3bd7
...
...
@@ -2589,28 +2589,33 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
char
src_path
[
FN_REFLEN
],
dst_path
[
FN_REFLEN
];
char
*
db
=
table
->
db
;
char
*
table_name
=
table
->
table_name
;
char
*
src_db
=
thd
->
db
;
char
*
src_db
;
char
*
src_table
=
table_ident
->
table
.
str
;
int
err
;
bool
res
=
TRUE
;
TABLE_LIST
src_tables_list
;
DBUG_ENTER
(
"mysql_create_like_table"
);
src_db
=
table_ident
->
db
.
str
?
table_ident
->
db
.
str
:
thd
->
db
;
/*
Validate the source table
*/
if
(
table_ident
->
table
.
length
>
NAME_LEN
||
(
table_ident
->
table
.
length
&&
check_table_name
(
src_table
,
table_ident
->
table
.
length
))
||
table_ident
->
db
.
str
&&
check_db_name
((
src_db
=
table_ident
->
db
.
str
)))
check_table_name
(
src_table
,
table_ident
->
table
.
length
)))
{
my_error
(
ER_WRONG_TABLE_NAME
,
MYF
(
0
),
src_table
);
DBUG_RETURN
(
TRUE
);
}
if
(
!
src_db
||
check_db_name
(
src_db
))
{
my_error
(
ER_WRONG_DB_NAME
,
MYF
(
0
),
src_db
?
src_db
:
"NULL"
);
DBUG_RETURN
(
-
1
);
}
bzero
((
gptr
)
&
src_tables_list
,
sizeof
(
src_tables_list
));
src_tables_list
.
db
=
table_ident
->
db
.
str
?
table_ident
->
db
.
str
:
thd
->
db
;
src_tables_list
.
table_name
=
table_ident
->
table
.
str
;
src_tables_list
.
db
=
src_
db
;
src_tables_list
.
table_name
=
src_table
;
if
(
lock_and_wait_for_table_name
(
thd
,
&
src_tables_list
))
goto
err
;
...
...
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