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
e0d42da3
Commit
e0d42da3
authored
Apr 18, 2001
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
09518126
9d36f27b
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
154 additions
and
54 deletions
+154
-54
Docs/manual.texi
Docs/manual.texi
+63
-38
acconfig.h
acconfig.h
+6
-0
acinclude.m4
acinclude.m4
+36
-0
configure.in
configure.in
+3
-2
innobase/os/os0thread.c
innobase/os/os0thread.c
+5
-1
mysql-test/include/have_default_master.inc
mysql-test/include/have_default_master.inc
+0
-3
mysql-test/r/have_default_master.require
mysql-test/r/have_default_master.require
+0
-2
mysql-test/r/lock.result
mysql-test/r/lock.result
+4
-0
mysql-test/t/lock.test
mysql-test/t/lock.test
+32
-0
mysql-test/t/rpl000014.test
mysql-test/t/rpl000014.test
+0
-1
mysql-test/t/rpl000015.test
mysql-test/t/rpl000015.test
+0
-1
mysql-test/t/rpl000016.test
mysql-test/t/rpl000016.test
+0
-1
sql/ha_myisam.cc
sql/ha_myisam.cc
+4
-2
sql/sql_select.cc
sql/sql_select.cc
+1
-3
No files found.
Docs/manual.texi
View file @
e0d42da3
...
@@ -531,10 +531,20 @@ GEMINI Tables
...
@@ -531,10 +531,20 @@ GEMINI Tables
InnoDB Tables
InnoDB Tables
* InnoDB overview::
* InnoDB overview::
InnoDB tables overview
* InnoDB start:: InnoDB startup options
* InnoDB start:: InnoDB startup options
* Using InnoDB tables:: Using InnoDB tables
* Creating an InnoDB database:: Creating an InnoDB database. Creating an InnoDB database
* InnoDB restrictions:: Some restrictions on @code{InnoDB} tables:
* Using InnoDB tables:: Creating InnoDB tables
* Adding and removing:: Adding and removing InnoDB data and log files
* Backing up:: Backing up and recovering an InnoDB database
* Moving:: Moving an InnoDB database to another machine
* InnoDB transaction model:: InnoDB transaction model. InnoDB transaction model
* Implementation:: Implementation of multiversioning
* Table and index:: Table and index structures
* File space management:: File space management and disk i/o
* Error handling:: Error handling
* InnoDB restrictions:: Some restrictions on InnoDB tables
* InnoDB contact information:: InnoDB contact information. InnoDB contact information
MySQL Tutorial
MySQL Tutorial
...
@@ -606,7 +616,6 @@ Replication in MySQL
...
@@ -606,7 +616,6 @@ Replication in MySQL
MySQL Full-text Search
MySQL Full-text Search
* Fulltext Search::
* Fulltext Fine-tuning::
* Fulltext Fine-tuning::
* Fulltext Features to Appear in MySQL 4.0::
* Fulltext Features to Appear in MySQL 4.0::
* Fulltext TODO::
* Fulltext TODO::
...
@@ -917,6 +926,7 @@ Changes in release 4.0.x (Development; Alpha)
...
@@ -917,6 +926,7 @@ Changes in release 4.0.x (Development; Alpha)
Changes in release 3.23.x (Stable)
Changes in release 3.23.x (Stable)
* News-3.23.38::
* News-3.23.37:: Changes in release 3.23.37
* News-3.23.37:: Changes in release 3.23.37
* News-3.23.36:: Changes in release 3.23.36
* News-3.23.36:: Changes in release 3.23.36
* News-3.23.35:: Changes in release 3.23.35
* News-3.23.35:: Changes in release 3.23.35
...
@@ -24354,24 +24364,24 @@ limited by @code{gemini_connection_limit}. The default is 100 users.
...
@@ -24354,24 +24364,24 @@ limited by @code{gemini_connection_limit}. The default is 100 users.
NuSphere is working on removing these limitations.
NuSphere is working on removing these limitations.
@node InnoDB,
, GEMINI, Table types
@node InnoDB,
, GEMINI, Table types
@section InnoDB Tables
@section InnoDB Tables
@menu
@menu
* InnoDB overview:: InnoDB tables overview
* InnoDB overview::
InnoDB tables overview
* InnoDB start:: InnoDB startup options
* InnoDB start::
InnoDB startup options
* Creating an InnoDB database:: Creating an InnoDB database
* Creating an InnoDB database:: Creating an InnoDB database
. Creating an InnoDB database
* Using InnoDB tables:: Creating InnoDB tables
* Using InnoDB tables::
Creating InnoDB tables
* Adding and removing:: Adding and removing InnoDB data and log files
* Adding and removing::
Adding and removing InnoDB data and log files
* Backing up:: Backing up and recovering an InnoDB database
* Backing up::
Backing up and recovering an InnoDB database
* Moving:: Moving an InnoDB database to another machine
* Moving::
Moving an InnoDB database to another machine
* InnoDB transaction model:: InnoDB transaction model
* InnoDB transaction model:: InnoDB transaction model
. InnoDB transaction model
* Implementation:: Implementation of multiversioning
* Implementation::
Implementation of multiversioning
* Table and index:: Table and index structures
* Table and index::
Table and index structures
* File space management:: File space management and disk i/o
* File space management::
File space management and disk i/o
* Error handling:: Error handling
* Error handling::
Error handling
* InnoDB restrictions:: Some restrictions on InnoDB tables
* InnoDB restrictions::
Some restrictions on InnoDB tables
* InnoDB contact information:: InnoDB contact information
* InnoDB contact information:: InnoDB contact information
. InnoDB contact information
@end menu
@end menu
@node InnoDB overview, InnoDB start, InnoDB, InnoDB
@node InnoDB overview, InnoDB start, InnoDB, InnoDB
...
@@ -24413,7 +24423,7 @@ may consist of several files. This is different from, for example,
...
@@ -24413,7 +24423,7 @@ may consist of several files. This is different from, for example,
InnoDB is distributed under the GNU GPL License Version 2 (of June 1991).
InnoDB is distributed under the GNU GPL License Version 2 (of June 1991).
In the source distribution of MySQL, InnoDB appears as a subdirectory.
In the source distribution of MySQL, InnoDB appears as a subdirectory.
@node InnoDB start
@node InnoDB start
, Creating an InnoDB database, InnoDB overview, InnoDB
@subsection InnoDB startup options
@subsection InnoDB startup options
Beginning from MySQL-3.23.37 the prefix of the options is changed
Beginning from MySQL-3.23.37 the prefix of the options is changed
...
@@ -24551,7 +24561,7 @@ InnoDB cannot notice. In cases like this the timeout is useful to
...
@@ -24551,7 +24561,7 @@ InnoDB cannot notice. In cases like this the timeout is useful to
resolve the situation.
resolve the situation.
@end multitable
@end multitable
@node Creating an InnoDB database
@node Creating an InnoDB database
, Using InnoDB tables, InnoDB start, InnoDB
@subsection Creating an InnoDB database
@subsection Creating an InnoDB database
Suppose you have installed MySQL and have edited @file{my.cnf} so that
Suppose you have installed MySQL and have edited @file{my.cnf} so that
...
@@ -24621,7 +24631,7 @@ some InnoDB tables, delete also the corresponding @file{.frm}
...
@@ -24621,7 +24631,7 @@ some InnoDB tables, delete also the corresponding @file{.frm}
files for these tables from the MySQL database directories. Then you can
files for these tables from the MySQL database directories. Then you can
try the InnoDB database creation again.
try the InnoDB database creation again.
@node Using InnoDB tables
@node Using InnoDB tables
, Adding and removing, Creating an InnoDB database, InnoDB
@subsection Creating InnoDB tables
@subsection Creating InnoDB tables
Suppose you have started the MySQL client with the command
Suppose you have started the MySQL client with the command
...
@@ -24664,7 +24674,7 @@ InnoDB has its own internal data dictionary, and you will get problems
...
@@ -24664,7 +24674,7 @@ InnoDB has its own internal data dictionary, and you will get problems
if the MySQL @file{.frm} files are out of 'sync' with the InnoDB
if the MySQL @file{.frm} files are out of 'sync' with the InnoDB
internal data dictionary.
internal data dictionary.
@node Adding and removing
@node Adding and removing
, Backing up, Using InnoDB tables, InnoDB
@subsection Adding and removing InnoDB data and log files
@subsection Adding and removing InnoDB data and log files
You cannot increase the size of an InnoDB data file. To add more into
You cannot increase the size of an InnoDB data file. To add more into
...
@@ -24686,7 +24696,7 @@ database. Delete then the old log files from the log file directory,
...
@@ -24686,7 +24696,7 @@ database. Delete then the old log files from the log file directory,
edit @file{my.cnf}, and start MySQL again. InnoDB will tell
edit @file{my.cnf}, and start MySQL again. InnoDB will tell
you at the startup that it is creating new log files.
you at the startup that it is creating new log files.
@node Backing up
@node Backing up
, Moving, Adding and removing, InnoDB
@subsection Backing up and recovering an InnoDB database
@subsection Backing up and recovering an InnoDB database
The key to safe database management is taking regular backups.
The key to safe database management is taking regular backups.
...
@@ -24798,7 +24808,7 @@ the total size of the log files as big as the buffer pool or even bigger.
...
@@ -24798,7 +24808,7 @@ the total size of the log files as big as the buffer pool or even bigger.
The drawback in big log files is that crash recovery can last longer
The drawback in big log files is that crash recovery can last longer
because there will be more log to apply to the database.
because there will be more log to apply to the database.
@node Moving
@node Moving
, InnoDB transaction model, Backing up, InnoDB
@subsection Moving an InnoDB database to another machine
@subsection Moving an InnoDB database to another machine
InnoDB data and log files are binary-compatible on all platforms
InnoDB data and log files are binary-compatible on all platforms
...
@@ -24818,7 +24828,7 @@ the big rollback segment the big import transaction will generate.
...
@@ -24818,7 +24828,7 @@ the big rollback segment the big import transaction will generate.
Do the commit only after importing a whole table or a segment of
Do the commit only after importing a whole table or a segment of
a table.
a table.
@node InnoDB transaction model
@node InnoDB transaction model
, Implementation, Moving, InnoDB
@subsection InnoDB transaction model
@subsection InnoDB transaction model
In the InnoDB transaction model the goal has been to combine the best
In the InnoDB transaction model the goal has been to combine the best
...
@@ -25046,7 +25056,7 @@ set by the SQL statement may be preserved. This is because InnoDB
...
@@ -25046,7 +25056,7 @@ set by the SQL statement may be preserved. This is because InnoDB
stores row locks in a format where it cannot afterwards know which was
stores row locks in a format where it cannot afterwards know which was
set by which SQL statement.
set by which SQL statement.
@node Implementation
@node Implementation
, Table and index, InnoDB transaction model, InnoDB
@subsection Implementation of multiversioning
@subsection Implementation of multiversioning
Since InnoDB is a multiversioned database, it must keep information
Since InnoDB is a multiversioned database, it must keep information
...
@@ -25095,7 +25105,7 @@ its index records from the database. This removal operation is
...
@@ -25095,7 +25105,7 @@ its index records from the database. This removal operation is
called a purge, and it is quite fast, usually taking the same order of
called a purge, and it is quite fast, usually taking the same order of
time as the SQL statement which did the deletion.
time as the SQL statement which did the deletion.
@node Table and index
@node Table and index
, File space management, Implementation, InnoDB
@subsection Table and index structures
@subsection Table and index structures
Every InnoDB table has a special index called the clustered index
Every InnoDB table has a special index called the clustered index
...
@@ -25208,7 +25218,7 @@ If the total length of the fields in a record is < 256 bytes, then
...
@@ -25208,7 +25218,7 @@ If the total length of the fields in a record is < 256 bytes, then
the pointer is 1 byte, else 2 bytes.
the pointer is 1 byte, else 2 bytes.
@end itemize
@end itemize
@node File space management
@node File space management
, Error handling, Table and index, InnoDB
@subsection File space management and disk i/o
@subsection File space management and disk i/o
@subsubsection Disk i/o
@subsubsection Disk i/o
...
@@ -25287,7 +25297,7 @@ but remember that deleted rows can be physically removed only in a
...
@@ -25287,7 +25297,7 @@ but remember that deleted rows can be physically removed only in a
purge operation after they are no longer needed in transaction rollback or
purge operation after they are no longer needed in transaction rollback or
consistent read.
consistent read.
@node Error handling
@node Error handling
, InnoDB restrictions, File space management, InnoDB
@subsection Error handling
@subsection Error handling
The error handling in InnoDB is not always the same as
The error handling in InnoDB is not always the same as
...
@@ -25373,7 +25383,7 @@ The maximum tablespace size is 4 billion database pages. This is also
...
@@ -25373,7 +25383,7 @@ The maximum tablespace size is 4 billion database pages. This is also
the maximum size for a table.
the maximum size for a table.
@end itemize
@end itemize
@node InnoDB contact information, , InnoDB restrictions, InnoDB
@node InnoDB contact information,
, InnoDB restrictions, InnoDB
@subsection InnoDB contact information
@subsection InnoDB contact information
Contact information of Innobase Oy, producer of the InnoDB engine:
Contact information of Innobase Oy, producer of the InnoDB engine:
...
@@ -29202,7 +29212,7 @@ have been assigned a low semantical value in @strong{a particular dataset}.
...
@@ -29202,7 +29212,7 @@ have been assigned a low semantical value in @strong{a particular dataset}.
* Fulltext TODO::
* Fulltext TODO::
@end menu
@end menu
@node Fulltext Fine-tuning, Fulltext Features to Appear in MySQL 4.0, , Fulltext Search
@node Fulltext Fine-tuning, Fulltext Features to Appear in MySQL 4.0,
Fulltext Search
, Fulltext Search
@section Fine-tuning MySQL Full-text Search
@section Fine-tuning MySQL Full-text Search
Unfortunately, full-text search has no user-tunable parameters yet,
Unfortunately, full-text search has no user-tunable parameters yet,
...
@@ -31584,7 +31594,7 @@ the following configure options:
...
@@ -31584,7 +31594,7 @@ the following configure options:
@multitable @columnfractions .3 .7
@multitable @columnfractions .3 .7
@item @strong{Option} @tab @strong{Comment}
@item @strong{Option} @tab @strong{Comment}
@item --with-server-suffix=-
m
ax @tab Add a suffix to the @code{mysqld} version string.
@item --with-server-suffix=-
M
ax @tab Add a suffix to the @code{mysqld} version string.
@item --with-bdb @tab Support for Berkeley DB (BDB) tables
@item --with-bdb @tab Support for Berkeley DB (BDB) tables
@item --with-innodb @tab Support for InnoDB tables.
@item --with-innodb @tab Support for InnoDB tables.
@item CFLAGS=-DUSE_SYMDIR @tab Symbolic links support for Windows.
@item CFLAGS=-DUSE_SYMDIR @tab Symbolic links support for Windows.
...
@@ -31597,9 +31607,10 @@ run @code{configure} with the options you want and then install the
...
@@ -31597,9 +31607,10 @@ run @code{configure} with the options you want and then install the
new @code{mysqld} binary as @code{mysqld-max} in the same directory
new @code{mysqld} binary as @code{mysqld-max} in the same directory
where your old @code{mysqld} binary is. @xref{safe_mysqld}.
where your old @code{mysqld} binary is. @xref{safe_mysqld}.
The @code{mysqld-max} RPM uses this @code{safe_mysqld} feature. It just
The @code{mysqld-max} RPM uses the above mentioned @code{safe_mysqld}
installs the @code{mysqld-max} executable and @code{safe_mysqld} will
feature. It just installs the @code{mysqld-max} executable and
automaticly use this when @code{mysqld} is restarted.
@code{safe_mysqld} will automaticly use this executable when
@code{safe_mysqld} is restarted.
@cindex tools, safe_mysqld
@cindex tools, safe_mysqld
@cindex scripts
@cindex scripts
...
@@ -41799,7 +41810,7 @@ This is a relatively low traffic list, in comparison with
...
@@ -41799,7 +41810,7 @@ This is a relatively low traffic list, in comparison with
* MySQL test suite:: MySQL test suite
* MySQL test suite:: MySQL test suite
@end menu
@end menu
@node MySQL threads, MySQL test suite, , MySQL internals
@node MySQL threads, MySQL test suite,
MySQL internals
, MySQL internals
@section MySQL Threads
@section MySQL Threads
The @strong{MySQL} server creates the following threads:
The @strong{MySQL} server creates the following threads:
...
@@ -43855,6 +43866,7 @@ users uses this code as the rest of the code and because of this we are
...
@@ -43855,6 +43866,7 @@ users uses this code as the rest of the code and because of this we are
not yet 100% confident in this code.
not yet 100% confident in this code.
@menu
@menu
* News-3.23.38::
* News-3.23.37:: Changes in release 3.23.37
* News-3.23.37:: Changes in release 3.23.37
* News-3.23.36:: Changes in release 3.23.36
* News-3.23.36:: Changes in release 3.23.36
* News-3.23.35:: Changes in release 3.23.35
* News-3.23.35:: Changes in release 3.23.35
...
@@ -43896,7 +43908,20 @@ not yet 100% confident in this code.
...
@@ -43896,7 +43908,20 @@ not yet 100% confident in this code.
* News-3.23.0:: Changes in release 3.23.0
* News-3.23.0:: Changes in release 3.23.0
@end menu
@end menu
@node News-3.23.37, News-3.23.36, News-3.23.x, News-3.23.x
@node News-3.23.38, News-3.23.37, News-3.23.x, News-3.23.x
@appendixsubsec Changes in release 3.23.38
@itemize @bullet
@item
Changed optimizer so that queries like
@code{SELECT * FROM table_name,table_name2 ... ORDER BY key_part1 LIMIT #}
will use index on @code{key_part1} instead of @code{filesort}.
@item
Fixed bug when doing
@code{LOCK TABLE to_table WRITE,...; INSERT INTO to_table... SELECT ...}
when to_table was empty.
@end itemize
@node News-3.23.37, News-3.23.36, News-3.23.38, News-3.23.x
@appendixsubsec Changes in release 3.23.37
@appendixsubsec Changes in release 3.23.37
@itemize @bullet
@itemize @bullet
@item
@item
acconfig.h
View file @
e0d42da3
...
@@ -114,6 +114,12 @@
...
@@ -114,6 +114,12 @@
/* pthread_attr_setscope */
/* pthread_attr_setscope */
#undef HAVE_PTHREAD_ATTR_SETSCOPE
#undef HAVE_PTHREAD_ATTR_SETSCOPE
/* pthread_yield that doesn't take any arguments */
#undef HAVE_PTHREAD_YIELD_ZERO_ARG
/* pthread_yield function with one argument */
#undef HAVE_PTHREAD_YIELD_ONE_ARG
/* POSIX readdir_r */
/* POSIX readdir_r */
#undef HAVE_READDIR_R
#undef HAVE_READDIR_R
...
...
acinclude.m4
View file @
e0d42da3
...
@@ -196,6 +196,42 @@ then
...
@@ -196,6 +196,42 @@ then
fi
fi
])
])
AC_DEFUN(MYSQL_PTHREAD_YIELD,
[AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg,
[AC_TRY_COMPILE([#define _GNU_SOURCE
#include <pthread.h>
#ifdef __cplusplus
extern "C"
#endif
],
[
pthread_yield();
], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)])
if test "$ac_cv_pthread_yield_zero_arg" = "yes"
then
AC_DEFINE(HAVE_PTHREAD_YIELD_ZERO_ARG)
fi
]
[AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg,
[AC_TRY_COMPILE([#define _GNU_SOURCE
#include <pthread.h>
#ifdef __cplusplus
extern "C"
#endif
],
[
pthread_yield(0);
], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)])
if test "$ac_cv_pthread_yield_one_arg" = "yes"
then
AC_DEFINE(HAVE_PTHREAD_YIELD_ONE_ARG)
fi
]
)
#---END:
#---END:
AC_DEFUN(MYSQL_CHECK_FP_EXCEPT,
AC_DEFUN(MYSQL_CHECK_FP_EXCEPT,
...
...
configure.in
View file @
e0d42da3
...
@@ -1293,10 +1293,11 @@ MYSQL_CXX_BOOL
...
@@ -1293,10 +1293,11 @@ MYSQL_CXX_BOOL
MYSQL_CHECK_LONGLONG_TO_FLOAT
MYSQL_CHECK_LONGLONG_TO_FLOAT
if
test
"
$ac_cv_conv_longlong_to_float
"
!=
"yes"
if
test
"
$ac_cv_conv_longlong_to_float
"
!=
"yes"
then
then
AC_MSG_ERROR
([
Your compiler can
'
t convert a longlong value to a float!
AC_MSG_ERROR
([
Your compiler can
no
t convert a longlong value to a float!
If you are using gcc 2.8.# you should upgrade to egcs 1.0.3 or newer and try
If you are using gcc 2.8.# you should upgrade to egcs 1.0.3 or newer and try
again]
)
;
again]
)
;
fi
fi
MYSQL_PTHREAD_YIELD
######################################################################
######################################################################
# For readline-4.0 (We simply move the mimimum amount of stuff from
# For readline-4.0 (We simply move the mimimum amount of stuff from
...
@@ -1353,7 +1354,7 @@ AC_CHECK_FUNCS(alarm bmove \
...
@@ -1353,7 +1354,7 @@ AC_CHECK_FUNCS(alarm bmove \
sigset sigthreadmask pthread_sigmask pthread_setprio pthread_setprio_np
\
sigset sigthreadmask pthread_sigmask pthread_setprio pthread_setprio_np
\
pthread_setschedparam pthread_attr_setprio pthread_attr_setschedparam
\
pthread_setschedparam pthread_attr_setprio pthread_attr_setschedparam
\
pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize
\
pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize
\
pthread_condattr_create rwlock_init pthread_rwlock_rdlock
pthread_yield
\
pthread_condattr_create rwlock_init pthread_rwlock_rdlock
\
fchmod getpass getpassphrase initgroups mlockall
)
fchmod getpass getpassphrase initgroups mlockall
)
# Sanity check: We chould not have any fseeko symbol unless
# Sanity check: We chould not have any fseeko symbol unless
...
...
innobase/os/os0thread.c
View file @
e0d42da3
...
@@ -138,7 +138,11 @@ os_thread_yield(void)
...
@@ -138,7 +138,11 @@ os_thread_yield(void)
#if defined(__WIN__)
#if defined(__WIN__)
Sleep
(
0
);
Sleep
(
0
);
#elif (defined(HAVE_SCHED_YIELD) && defined(HAVE_SCHED_H))
#elif (defined(HAVE_SCHED_YIELD) && defined(HAVE_SCHED_H))
sched_yield
();
sched_yield
();
#elif defined(HAVE_PTHREAD_YIELD_ZERO_ARG)
pthread_yield
();
#elif defined(HAVE_PTHREAD_YIELD_ONE_ARG)
pthread_yield
(
0
);
#else
#else
os_thread_sleep
(
0
);
os_thread_sleep
(
0
);
#endif
#endif
...
...
mysql-test/include/have_default_master.inc
deleted
100644 → 0
View file @
09518126
--
require
r
/
have_default_master
.
require
connection
master
;
show
variables
like
"port"
;
mysql-test/r/have_default_master.require
deleted
100644 → 0
View file @
09518126
Variable_name Value
port 9306
mysql-test/r/lock.result
View file @
e0d42da3
dummy1 count(distinct id)
dummy1 count(distinct id)
NULL 1
NULL 1
Table Op Msg_type Msg_text
test.t1 check status OK
Table Op Msg_type Msg_text
test.t2 check error Table 't2' was not locked with LOCK TABLES
mysql-test/t/lock.test
View file @
e0d42da3
...
@@ -21,3 +21,35 @@ LOCK TABLE t1 WRITE,t2 write;
...
@@ -21,3 +21,35 @@ LOCK TABLE t1 WRITE,t2 write;
insert
into
t2
SELECT
*
from
t1
;
insert
into
t2
SELECT
*
from
t1
;
update
t1
set
id
=
1
where
id
=-
1
;
update
t1
set
id
=
1
where
id
=-
1
;
drop
table
t1
,
t2
;
drop
table
t1
,
t2
;
#
# Check bug with INSERT ... SELECT with lock tables
#
CREATE
TABLE
t1
(
index1
smallint
(
6
)
default
NULL
,
nr
smallint
(
6
)
default
NULL
,
KEY
index1
(
index1
)
)
TYPE
=
MyISAM
;
CREATE
TABLE
t2
(
nr
smallint
(
6
)
default
NULL
,
name
varchar
(
20
)
default
NULL
)
TYPE
=
MyISAM
;
INSERT
INTO
t2
VALUES
(
1
,
'item1'
);
INSERT
INTO
t2
VALUES
(
2
,
'item2'
);
# problem begins here!
lock
tables
t1
write
,
t2
read
;
insert
into
t1
select
1
,
nr
from
t2
where
name
=
'item1'
;
insert
into
t1
select
2
,
nr
from
t2
where
name
=
'item2'
;
unlock
tables
;
check
table
t1
;
# Check error message
lock
tables
t1
write
;
check
table
t2
;
unlock
tables
;
drop
table
t1
,
t2
;
mysql-test/t/rpl000014.test
View file @
e0d42da3
source
include
/
master
-
slave
.
inc
;
source
include
/
master
-
slave
.
inc
;
source
include
/
have_default_master
.
inc
;
connection
master
;
connection
master
;
show
master
status
;
show
master
status
;
save_master_pos
;
save_master_pos
;
...
...
mysql-test/t/rpl000015.test
View file @
e0d42da3
connect
(
master
,
localhost
,
root
,,
test
,
0
,
mysql
-
master
.
sock
);
connect
(
master
,
localhost
,
root
,,
test
,
0
,
mysql
-
master
.
sock
);
connect
(
slave
,
localhost
,
root
,,
test
,
0
,
mysql
-
slave
.
sock
);
connect
(
slave
,
localhost
,
root
,,
test
,
0
,
mysql
-
slave
.
sock
);
source
include
/
have_default_master
.
inc
;
connection
master
;
connection
master
;
reset
master
;
reset
master
;
show
master
status
;
show
master
status
;
...
...
mysql-test/t/rpl000016.test
View file @
e0d42da3
connect
(
master
,
localhost
,
root
,,
test
,
0
,
mysql
-
master
.
sock
);
connect
(
master
,
localhost
,
root
,,
test
,
0
,
mysql
-
master
.
sock
);
connect
(
slave
,
localhost
,
root
,,
test
,
0
,
mysql
-
slave
.
sock
);
connect
(
slave
,
localhost
,
root
,,
test
,
0
,
mysql
-
slave
.
sock
);
source
include
/
have_default_master
.
inc
;
system
cat
/
dev
/
null
>
var
/
slave
-
data
/
master
.
info
;
system
cat
/
dev
/
null
>
var
/
slave
-
data
/
master
.
info
;
system
chmod
000
var
/
slave
-
data
/
master
.
info
;
system
chmod
000
var
/
slave
-
data
/
master
.
info
;
connection
slave
;
connection
slave
;
...
...
sql/ha_myisam.cc
View file @
e0d42da3
...
@@ -533,7 +533,8 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
...
@@ -533,7 +533,8 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
VOID
(
fn_format
(
fixed_name
,
file
->
filename
,
""
,
MI_NAME_IEXT
,
VOID
(
fn_format
(
fixed_name
,
file
->
filename
,
""
,
MI_NAME_IEXT
,
4
+
(
param
.
opt_follow_links
?
16
:
0
)));
4
+
(
param
.
opt_follow_links
?
16
:
0
)));
if
(
mi_lock_database
(
file
,
F_WRLCK
))
// Don't lock tables if we have used LOCK TABLE
if
(
!
thd
->
locked_tables
&&
mi_lock_database
(
file
,
F_WRLCK
))
{
{
mi_check_print_error
(
&
param
,
ER
(
ER_CANT_LOCK
),
my_errno
);
mi_check_print_error
(
&
param
,
ER
(
ER_CANT_LOCK
),
my_errno
);
DBUG_RETURN
(
HA_ADMIN_FAILED
);
DBUG_RETURN
(
HA_ADMIN_FAILED
);
...
@@ -615,7 +616,8 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
...
@@ -615,7 +616,8 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
update_state_info
(
&
param
,
file
,
0
);
update_state_info
(
&
param
,
file
,
0
);
}
}
thd
->
proc_info
=
old_proc_info
;
thd
->
proc_info
=
old_proc_info
;
mi_lock_database
(
file
,
F_UNLCK
);
if
(
!
thd
->
locked_tables
)
mi_lock_database
(
file
,
F_UNLCK
);
DBUG_RETURN
(
error
?
HA_ADMIN_FAILED
:
DBUG_RETURN
(
error
?
HA_ADMIN_FAILED
:
!
optimize_done
?
HA_ADMIN_ALREADY_DONE
:
HA_ADMIN_OK
);
!
optimize_done
?
HA_ADMIN_ALREADY_DONE
:
HA_ADMIN_OK
);
}
}
...
...
sql/sql_select.cc
View file @
e0d42da3
...
@@ -528,9 +528,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
...
@@ -528,9 +528,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
if
(
order
&&
if
(
order
&&
(
join
.
const_tables
==
join
.
tables
||
(
join
.
const_tables
==
join
.
tables
||
test_if_skip_sort_order
(
&
join
.
join_tab
[
join
.
const_tables
],
order
,
test_if_skip_sort_order
(
&
join
.
join_tab
[
join
.
const_tables
],
order
,
(
having
||
group
||
(
group
?
HA_POS_ERROR
:
thd
->
select_limit
))))
join
.
const_tables
!=
join
.
tables
-
1
)
?
HA_POS_ERROR
:
thd
->
select_limit
)))
order
=
0
;
order
=
0
;
select_describe
(
&
join
,
need_tmp
,
select_describe
(
&
join
,
need_tmp
,
(
order
!=
0
&&
(
order
!=
0
&&
...
...
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