mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
xtradb 5.5.13
This commit is contained in:
parent
fecd255a16
commit
54ab9ea20f
544 changed files with 25730 additions and 66664 deletions
242
CMakeLists.txt
242
CMakeLists.txt
|
@ -1,5 +1,5 @@
|
|||
# Copyright (C) 2009 Oracle/Innobase Oy
|
||||
#
|
||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
|
@ -11,43 +11,210 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
# This is the CMakeLists for InnoDB Plugin
|
||||
# This is the CMakeLists for InnoDB
|
||||
|
||||
INCLUDE(CheckFunctionExists)
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
INCLUDE(CheckCSourceRuns)
|
||||
|
||||
# OS tests
|
||||
IF(UNIX)
|
||||
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
CHECK_INCLUDE_FILES (libaio.h HAVE_LIBAIO_H)
|
||||
CHECK_LIBRARY_EXISTS(aio io_queue_init "" HAVE_LIBAIO)
|
||||
ADD_DEFINITIONS("-DUNIV_LINUX -D_GNU_SOURCE=1")
|
||||
IF(HAVE_LIBAIO_H AND HAVE_LIBAIO)
|
||||
ADD_DEFINITIONS(-DLINUX_NATIVE_AIO=1)
|
||||
LINK_LIBRARIES(aio)
|
||||
ENDIF()
|
||||
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP*")
|
||||
ADD_DEFINITIONS("-DUNIV_HPUX -DUNIV_MUST_NOT_INLINE")
|
||||
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "AIX")
|
||||
ADD_DEFINITIONS("-DUNIV_AIX -DUNIX_MUST_NOT_INLINE")
|
||||
ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
ADD_DEFINITIONS("-DUNIV_SOLARIS")
|
||||
ELSE()
|
||||
ADD_DEFINITIONS("-DUNIV_MUST_NOT_INLINE")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Enable InnoDB's UNIV_DEBUG for debug builds
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DUNIV_DEBUG")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DUNIV_DEBUG")
|
||||
|
||||
IF(NOT MSVC)
|
||||
# either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
|
||||
IF(NOT CMAKE_CROSSCOMPILING)
|
||||
CHECK_C_SOURCE_RUNS(
|
||||
"
|
||||
int main()
|
||||
{
|
||||
long x;
|
||||
long y;
|
||||
long res;
|
||||
char c;
|
||||
|
||||
x = 10;
|
||||
y = 123;
|
||||
res = __sync_bool_compare_and_swap(&x, x, y);
|
||||
if (!res || x != y) {
|
||||
return(1);
|
||||
}
|
||||
|
||||
x = 10;
|
||||
y = 123;
|
||||
res = __sync_bool_compare_and_swap(&x, x + 1, y);
|
||||
if (res || x != 10) {
|
||||
return(1);
|
||||
}
|
||||
x = 10;
|
||||
y = 123;
|
||||
res = __sync_add_and_fetch(&x, y);
|
||||
if (res != 123 + 10 || x != 123 + 10) {
|
||||
return(1);
|
||||
}
|
||||
|
||||
c = 10;
|
||||
res = __sync_lock_test_and_set(&c, 123);
|
||||
if (res != 10 || c != 123) {
|
||||
return(1);
|
||||
}
|
||||
return(0);
|
||||
}"
|
||||
HAVE_IB_GCC_ATOMIC_BUILTINS
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
IF(HAVE_IB_GCC_ATOMIC_BUILTINS)
|
||||
ADD_DEFINITIONS(-DHAVE_IB_GCC_ATOMIC_BUILTINS=1)
|
||||
ENDIF()
|
||||
|
||||
# either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
|
||||
IF(NOT CMAKE_CROSSCOMPILING)
|
||||
CHECK_C_SOURCE_RUNS(
|
||||
"
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
|
||||
int main() {
|
||||
pthread_t x1;
|
||||
pthread_t x2;
|
||||
pthread_t x3;
|
||||
|
||||
memset(&x1, 0x0, sizeof(x1));
|
||||
memset(&x2, 0x0, sizeof(x2));
|
||||
memset(&x3, 0x0, sizeof(x3));
|
||||
|
||||
__sync_bool_compare_and_swap(&x1, x2, x3);
|
||||
|
||||
return(0);
|
||||
}"
|
||||
HAVE_IB_ATOMIC_PTHREAD_T_GCC)
|
||||
ENDIF()
|
||||
IF(HAVE_IB_ATOMIC_PTHREAD_T_GCC)
|
||||
ADD_DEFINITIONS(-DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1)
|
||||
ENDIF()
|
||||
|
||||
ENDIF(NOT MSVC)
|
||||
|
||||
# Solaris atomics
|
||||
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
CHECK_FUNCTION_EXISTS(atomic_cas_ulong HAVE_ATOMIC_CAS_ULONG)
|
||||
CHECK_FUNCTION_EXISTS(atomic_cas_32 HAVE_ATOMIC_CAS_32)
|
||||
CHECK_FUNCTION_EXISTS(atomic_cas_64 HAVE_ATOMIC_CAS_64)
|
||||
CHECK_FUNCTION_EXISTS(atomic_add_long_nv HAVE_ATOMIC_ADD_LONG_NV)
|
||||
CHECK_FUNCTION_EXISTS(atomic_swap_uchar HAVE_ATOMIC_SWAP_UCHAR)
|
||||
IF(HAVE_ATOMIC_CAS_ULONG AND
|
||||
HAVE_ATOMIC_CAS_32 AND
|
||||
HAVE_ATOMIC_CAS_64 AND
|
||||
HAVE_ATOMIC_ADD_LONG_NV AND
|
||||
HAVE_ATOMIC_SWAP_UCHAR)
|
||||
SET(HAVE_IB_SOLARIS_ATOMICS 1)
|
||||
ENDIF()
|
||||
|
||||
IF(HAVE_IB_SOLARIS_ATOMICS)
|
||||
ADD_DEFINITIONS(-DHAVE_IB_SOLARIS_ATOMICS=1)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT CMAKE_CROSSCOMPILING)
|
||||
# either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
|
||||
CHECK_C_SOURCE_COMPILES(
|
||||
" #include <pthread.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
pthread_t x1;
|
||||
pthread_t x2;
|
||||
pthread_t x3;
|
||||
|
||||
memset(&x1, 0x0, sizeof(x1));
|
||||
memset(&x2, 0x0, sizeof(x2));
|
||||
memset(&x3, 0x0, sizeof(x3));
|
||||
|
||||
if (sizeof(pthread_t) == 4) {
|
||||
|
||||
atomic_cas_32(&x1, x2, x3);
|
||||
|
||||
} else if (sizeof(pthread_t) == 8) {
|
||||
|
||||
atomic_cas_64(&x1, x2, x3);
|
||||
|
||||
} else {
|
||||
|
||||
return(1);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
||||
" HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS)
|
||||
ENDIF()
|
||||
IF(HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS)
|
||||
ADD_DEFINITIONS(-DHAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=1)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
IF(UNIX)
|
||||
# this is needed to know which one of atomic_cas_32() or atomic_cas_64()
|
||||
# to use in the source
|
||||
SET(CMAKE_EXTRA_INCLUDE_FILES pthread.h)
|
||||
CHECK_TYPE_SIZE(pthread_t SIZEOF_PTHREAD_T)
|
||||
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
||||
ENDIF()
|
||||
|
||||
# Starting at 5.1.38, MySQL CMake files are simplified. But the plugin
|
||||
# CMakeLists.txt still needs to work with previous versions of MySQL.
|
||||
IF (MYSQL_VERSION_ID GREATER "50137")
|
||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
||||
ENDIF (MYSQL_VERSION_ID GREATER "50137")
|
||||
IF(SIZEOF_PTHREAD_T)
|
||||
ADD_DEFINITIONS(-DSIZEOF_PTHREAD_T=${SIZEOF_PTHREAD_T})
|
||||
ENDIF()
|
||||
|
||||
IF (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
SET(WIN64 TRUE)
|
||||
ENDIF (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
IF(MSVC)
|
||||
ADD_DEFINITIONS(-DHAVE_WINDOWS_ATOMICS)
|
||||
ENDIF()
|
||||
|
||||
# Include directories under innodb_plugin
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/innodb_plugin/include
|
||||
${CMAKE_SOURCE_DIR}/storage/innodb_plugin/handler)
|
||||
|
||||
# Include directories under mysql
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||
${CMAKE_SOURCE_DIR}/sql
|
||||
${CMAKE_SOURCE_DIR}/regex
|
||||
${CMAKE_SOURCE_DIR}/zlib
|
||||
${CMAKE_SOURCE_DIR}/extra/yassl/include)
|
||||
# Include directories under innobase
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/innobase/include
|
||||
${CMAKE_SOURCE_DIR}/storage/innobase/handler)
|
||||
|
||||
# Sun Studio bug with -xO2
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES "SunPro"
|
||||
AND CMAKE_C_FLAGS_RELEASE MATCHES "O2"
|
||||
AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
# Sun Studio 12 crashes with -xO2 flag, but not with higher optimization
|
||||
# -xO3
|
||||
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/rem/rem0rec.c
|
||||
PROPERTIES COMPILE_FLAGS -xO3)
|
||||
ENDIF()
|
||||
|
||||
# Removing compiler optimizations for innodb/mem/* files on 64-bit Windows
|
||||
# due to 64-bit compiler error, See MySQL Bug #19424, #36366, #34297
|
||||
IF (MSVC AND $(WIN64))
|
||||
IF (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
SET_SOURCE_FILES_PROPERTIES(mem/mem0mem.c mem/mem0pool.c
|
||||
PROPERTIES COMPILE_FLAGS -Od)
|
||||
ENDIF (MSVC AND $(WIN64))
|
||||
ENDIF()
|
||||
|
||||
SET(INNODB_PLUGIN_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
|
||||
SET(INNOBASE_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
|
||||
buf/buf0buddy.c buf/buf0buf.c buf/buf0flu.c buf/buf0lru.c buf/buf0rea.c
|
||||
data/data0data.c data/data0type.c
|
||||
dict/dict0boot.c dict/dict0crea.c dict/dict0dict.c dict/dict0load.c dict/dict0mem.c
|
||||
|
@ -67,22 +234,25 @@ SET(INNODB_PLUGIN_SOURCES btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea
|
|||
os/os0file.c os/os0proc.c os/os0sync.c os/os0thread.c
|
||||
page/page0cur.c page/page0page.c page/page0zip.c
|
||||
que/que0que.c
|
||||
handler/ha_innodb.cc handler/handler0alter.cc handler/i_s.cc handler/mysql_addons.cc
|
||||
handler/ha_innodb.cc handler/handler0alter.cc handler/i_s.cc
|
||||
read/read0read.c
|
||||
rem/rem0cmp.c rem/rem0rec.c
|
||||
row/row0ext.c row/row0ins.c row/row0merge.c row/row0mysql.c row/row0purge.c row/row0row.c
|
||||
row/row0sel.c row/row0uins.c row/row0umod.c row/row0undo.c row/row0upd.c row/row0vers.c
|
||||
srv/srv0que.c srv/srv0srv.c srv/srv0start.c
|
||||
srv/srv0srv.c srv/srv0start.c
|
||||
sync/sync0arr.c sync/sync0rw.c sync/sync0sync.c
|
||||
thr/thr0loc.c
|
||||
trx/trx0i_s.c trx/trx0purge.c trx/trx0rec.c trx/trx0roll.c trx/trx0rseg.c
|
||||
trx/trx0sys.c trx/trx0trx.c trx/trx0undo.c
|
||||
usr/usr0sess.c
|
||||
ut/ut0byte.c ut/ut0dbg.c ut/ut0mem.c ut/ut0rbt.c ut/ut0rnd.c ut/ut0ut.c ut/ut0vec.c
|
||||
ut/ut0list.c ut/ut0wqueue.c)
|
||||
# Windows atomics do not perform well. Disable Windows atomics by default.
|
||||
# See bug#52102 for details.
|
||||
#ADD_DEFINITIONS(-DHAVE_WINDOWS_ATOMICS -DINNODB_RW_LOCKS_USE_ATOMICS -DHAVE_IB_PAUSE_INSTRUCTION)
|
||||
ADD_DEFINITIONS(-DHAVE_IB_PAUSE_INSTRUCTION)
|
||||
ut/ut0byte.c ut/ut0dbg.c ut/ut0list.c ut/ut0mem.c ut/ut0rbt.c ut/ut0rnd.c
|
||||
ut/ut0ut.c ut/ut0vec.c ut/ut0wqueue.c ut/ut0bh.c)
|
||||
|
||||
MYSQL_STORAGE_ENGINE(INNODB_PLUGIN)
|
||||
IF(WITH_INNODB)
|
||||
# Legacy option
|
||||
SET(WITH_INNOBASE_STORAGE_ENGINE TRUE)
|
||||
ENDIF()
|
||||
|
||||
MYSQL_ADD_PLUGIN(innobase ${INNOBASE_SOURCES} STORAGE_ENGINE
|
||||
DEFAULT
|
||||
MODULE_OUTPUT_NAME ha_innodb
|
||||
LINK_LIBRARIES ${ZLIB_LIBRARY})
|
||||
|
|
351
COPYING
351
COPYING
|
@ -1,351 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
========
|
||||
|
||||
The licenses for most software are designed to take away your freedom
|
||||
to share and change it. By contrast, the GNU General Public License is
|
||||
intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price.
|
||||
Our General Public Licenses are designed to make sure that you have
|
||||
the freedom to distribute copies of free software (and charge for this
|
||||
service if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid anyone
|
||||
to deny you these rights or to ask you to surrender the rights. These
|
||||
restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that you
|
||||
have. You must make sure that they, too, receive or can get the source
|
||||
code. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software patents.
|
||||
We wish to avoid the danger that redistributors of a free program will
|
||||
individually obtain patent licenses, in effect making the program
|
||||
proprietary. To prevent this, we have made it clear that any patent
|
||||
must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
0. This License applies to any program or other work which contains a
|
||||
notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program",
|
||||
below, refers to any such program or work, and a "work based on
|
||||
the Program" means either the Program or any derivative work under
|
||||
copyright law: that is to say, a work containing the Program or a
|
||||
portion of it, either verbatim or with modifications and/or
|
||||
translated into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".) Each
|
||||
licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are
|
||||
not covered by this License; they are outside its scope. The act
|
||||
of running the Program is not restricted, and the output from the
|
||||
Program is covered only if its contents constitute a work based on
|
||||
the Program (independent of having been made by running the
|
||||
Program). Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any
|
||||
warranty; and give any other recipients of the Program a copy of
|
||||
this License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange
|
||||
for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a. You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b. You must cause any work that you distribute or publish, that
|
||||
in whole or in part contains or is derived from the Program
|
||||
or any part thereof, to be licensed as a whole at no charge
|
||||
to all third parties under the terms of this License.
|
||||
|
||||
c. If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display
|
||||
an announcement including an appropriate copyright notice and
|
||||
a notice that there is no warranty (or else, saying that you
|
||||
provide a warranty) and that users may redistribute the
|
||||
program under these conditions, and telling the user how to
|
||||
view a copy of this License. (Exception: if the Program
|
||||
itself is interactive but does not normally print such an
|
||||
announcement, your work based on the Program is not required
|
||||
to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the
|
||||
Program, and can be reasonably considered independent and separate
|
||||
works in themselves, then this License, and its terms, do not
|
||||
apply to those sections when you distribute them as separate
|
||||
works. But when you distribute the same sections as part of a
|
||||
whole which is a work based on the Program, the distribution of
|
||||
the whole must be on the terms of this License, whose permissions
|
||||
for other licensees extend to the entire whole, and thus to each
|
||||
and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or
|
||||
contest your rights to work written entirely by you; rather, the
|
||||
intent is to exercise the right to control the distribution of
|
||||
derivative or collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the
|
||||
Program with the Program (or with a work based on the Program) on
|
||||
a volume of a storage or distribution medium does not bring the
|
||||
other work under the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms
|
||||
of Sections 1 and 2 above provided that you also do one of the
|
||||
following:
|
||||
|
||||
a. Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of
|
||||
Sections 1 and 2 above on a medium customarily used for
|
||||
software interchange; or,
|
||||
|
||||
b. Accompany it with a written offer, valid for at least three
|
||||
years, to give any third-party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange; or,
|
||||
|
||||
c. Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with
|
||||
such an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete
|
||||
source code means all the source code for all modules it contains,
|
||||
plus any associated interface definition files, plus the scripts
|
||||
used to control compilation and installation of the executable.
|
||||
However, as a special exception, the source code distributed need
|
||||
not include anything that is normally distributed (in either
|
||||
source or binary form) with the major components (compiler,
|
||||
kernel, and so on) of the operating system on which the executable
|
||||
runs, unless that component itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this
|
||||
License. However, parties who have received copies, or rights,
|
||||
from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify
|
||||
or distribute the Program or its derivative works. These actions
|
||||
are prohibited by law if you do not accept this License.
|
||||
Therefore, by modifying or distributing the Program (or any work
|
||||
based on the Program), you indicate your acceptance of this
|
||||
License to do so, and all its terms and conditions for copying,
|
||||
distributing or modifying the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program
|
||||
subject to these terms and conditions. You may not impose any
|
||||
further restrictions on the recipients' exercise of the rights
|
||||
granted herein. You are not responsible for enforcing compliance
|
||||
by third parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent
|
||||
issues), conditions are imposed on you (whether by court order,
|
||||
agreement or otherwise) that contradict the conditions of this
|
||||
License, they do not excuse you from the conditions of this
|
||||
License. If you cannot distribute so as to satisfy simultaneously
|
||||
your obligations under this License and any other pertinent
|
||||
obligations, then as a consequence you may not distribute the
|
||||
Program at all. For example, if a patent license would not permit
|
||||
royalty-free redistribution of the Program by all those who
|
||||
receive copies directly or indirectly through you, then the only
|
||||
way you could satisfy both it and this License would be to refrain
|
||||
entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable
|
||||
under any particular circumstance, the balance of the section is
|
||||
intended to apply and the section as a whole is intended to apply
|
||||
in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of
|
||||
any such claims; this section has the sole purpose of protecting
|
||||
the integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is
|
||||
willing to distribute software through any other system and a
|
||||
licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed
|
||||
to be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces,
|
||||
the original copyright holder who places the Program under this
|
||||
License may add an explicit geographical distribution limitation
|
||||
excluding those countries, so that distribution is permitted only
|
||||
in or among countries not thus excluded. In such case, this
|
||||
License incorporates the limitation as if written in the body of
|
||||
this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new
|
||||
versions of the General Public License from time to time. Such
|
||||
new versions will be similar in spirit to the present version, but
|
||||
may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies a version number of this License which applies
|
||||
to it and "any later version", you have the option of following
|
||||
the terms and conditions either of that version or of any later
|
||||
version published by the Free Software Foundation. If the Program
|
||||
does not specify a version number of this License, you may choose
|
||||
any version ever published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the
|
||||
author to ask for permission. For software which is copyrighted
|
||||
by the Free Software Foundation, write to the Free Software
|
||||
Foundation; we sometimes make exceptions for this. Our decision
|
||||
will be guided by the two goals of preserving the free status of
|
||||
all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
|
||||
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
|
||||
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
|
||||
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
|
||||
SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
|
||||
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
|
||||
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
|
||||
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
|
||||
OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
|
||||
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
How to Apply These Terms to Your New Programs
|
||||
=============================================
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these
|
||||
terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to
|
||||
attach them to the start of each source file to most effectively convey
|
||||
the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
|
||||
Copyright (C) YYYY NAME OF AUTHOR
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the
|
||||
appropriate parts of the General Public License. Of course, the
|
||||
commands you use may be called something other than `show w' and `show
|
||||
c'; they could even be mouse-clicks or menu items--whatever suits your
|
||||
program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
SIGNATURE OF TY COON, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library,
|
||||
you may consider it more useful to permit linking proprietary
|
||||
applications with the library. If this is what you want to do, use the
|
||||
GNU Library General Public License instead of this License.
|
|
@ -1,31 +0,0 @@
|
|||
Portions of this software contain modifications contributed by
|
||||
Sun Microsystems, Inc. These contributions are used with the following
|
||||
license:
|
||||
|
||||
Copyright (c) 2009, Sun Microsystems, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
* Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
Doxyfile
2
Doxyfile
|
@ -565,7 +565,7 @@ RECURSIVE = YES
|
|||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
|
||||
EXCLUDE = ut0auxconf_*
|
||||
EXCLUDE =
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
|
||||
# directories that are symbolic links (a Unix filesystem feature) are excluded
|
||||
|
|
345
Makefile.am
345
Makefile.am
|
@ -1,345 +0,0 @@
|
|||
# Copyright (C) 2001, 2004, 2006 MySQL AB & Innobase Oy
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Process this file with automake to create Makefile.in
|
||||
|
||||
MYSQLDATAdir= $(localstatedir)
|
||||
MYSQLSHAREdir= $(pkgdatadir)
|
||||
MYSQLBASEdir= $(prefix)
|
||||
MYSQLLIBdir= $(pkglibdir)
|
||||
pkgplugindir= $(pkglibdir)/plugin
|
||||
INCLUDES= -I$(top_srcdir)/include -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(srcdir)/include \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir) @ZLIB_INCLUDES@
|
||||
|
||||
DEFS= @DEFS@
|
||||
|
||||
|
||||
noinst_HEADERS= \
|
||||
handler/ha_innodb.h \
|
||||
handler/i_s.h \
|
||||
include/btr0btr.h \
|
||||
include/btr0btr.ic \
|
||||
include/btr0cur.h \
|
||||
include/btr0cur.ic \
|
||||
include/btr0pcur.h \
|
||||
include/btr0pcur.ic \
|
||||
include/btr0sea.h \
|
||||
include/btr0sea.ic \
|
||||
include/btr0types.h \
|
||||
include/buf0buddy.h \
|
||||
include/buf0buddy.ic \
|
||||
include/buf0buf.h \
|
||||
include/buf0buf.ic \
|
||||
include/buf0flu.h \
|
||||
include/buf0flu.ic \
|
||||
include/buf0lru.h \
|
||||
include/buf0lru.ic \
|
||||
include/buf0rea.h \
|
||||
include/buf0types.h \
|
||||
include/data0data.h \
|
||||
include/data0data.ic \
|
||||
include/data0type.h \
|
||||
include/data0type.ic \
|
||||
include/data0types.h \
|
||||
include/db0err.h \
|
||||
include/dict0boot.h \
|
||||
include/dict0boot.ic \
|
||||
include/dict0crea.h \
|
||||
include/dict0crea.ic \
|
||||
include/dict0dict.h \
|
||||
include/dict0dict.ic \
|
||||
include/dict0load.h \
|
||||
include/dict0load.ic \
|
||||
include/dict0mem.h \
|
||||
include/dict0mem.ic \
|
||||
include/dict0types.h \
|
||||
include/dyn0dyn.h \
|
||||
include/dyn0dyn.ic \
|
||||
include/eval0eval.h \
|
||||
include/eval0eval.ic \
|
||||
include/eval0proc.h \
|
||||
include/eval0proc.ic \
|
||||
include/fil0fil.h \
|
||||
include/fsp0fsp.h \
|
||||
include/fsp0fsp.ic \
|
||||
include/fsp0types.h \
|
||||
include/fut0fut.h \
|
||||
include/fut0fut.ic \
|
||||
include/fut0lst.h \
|
||||
include/fut0lst.ic \
|
||||
include/ha0ha.h \
|
||||
include/ha0ha.ic \
|
||||
include/ha0storage.h \
|
||||
include/ha0storage.ic \
|
||||
include/ha_prototypes.h \
|
||||
include/handler0alter.h \
|
||||
include/hash0hash.h \
|
||||
include/hash0hash.ic \
|
||||
include/ibuf0ibuf.h \
|
||||
include/ibuf0ibuf.ic \
|
||||
include/ibuf0types.h \
|
||||
include/lock0iter.h \
|
||||
include/lock0lock.h \
|
||||
include/lock0lock.ic \
|
||||
include/lock0priv.h \
|
||||
include/lock0priv.ic \
|
||||
include/lock0types.h \
|
||||
include/log0log.h \
|
||||
include/log0log.ic \
|
||||
include/log0recv.h \
|
||||
include/log0recv.ic \
|
||||
include/mach0data.h \
|
||||
include/mach0data.ic \
|
||||
include/mem0dbg.h \
|
||||
include/mem0dbg.ic \
|
||||
include/mem0mem.h \
|
||||
include/mem0mem.ic \
|
||||
include/mem0pool.h \
|
||||
include/mem0pool.ic \
|
||||
include/mtr0log.h \
|
||||
include/mtr0log.ic \
|
||||
include/mtr0mtr.h \
|
||||
include/mtr0mtr.ic \
|
||||
include/mtr0types.h \
|
||||
include/mysql_addons.h \
|
||||
include/os0file.h \
|
||||
include/os0proc.h \
|
||||
include/os0proc.ic \
|
||||
include/os0sync.h \
|
||||
include/os0sync.ic \
|
||||
include/os0thread.h \
|
||||
include/os0thread.ic \
|
||||
include/page0cur.h \
|
||||
include/page0cur.ic \
|
||||
include/page0page.h \
|
||||
include/page0page.ic \
|
||||
include/page0types.h \
|
||||
include/page0zip.h \
|
||||
include/page0zip.ic \
|
||||
include/pars0grm.h \
|
||||
include/pars0opt.h \
|
||||
include/pars0opt.ic \
|
||||
include/pars0pars.h \
|
||||
include/pars0pars.ic \
|
||||
include/pars0sym.h \
|
||||
include/pars0sym.ic \
|
||||
include/pars0types.h \
|
||||
include/que0que.h \
|
||||
include/que0que.ic \
|
||||
include/que0types.h \
|
||||
include/read0read.h \
|
||||
include/read0read.ic \
|
||||
include/read0types.h \
|
||||
include/rem0cmp.h \
|
||||
include/rem0cmp.ic \
|
||||
include/rem0rec.h \
|
||||
include/rem0rec.ic \
|
||||
include/rem0types.h \
|
||||
include/row0ext.h \
|
||||
include/row0ext.ic \
|
||||
include/row0ins.h \
|
||||
include/row0ins.ic \
|
||||
include/row0merge.h \
|
||||
include/row0mysql.h \
|
||||
include/row0mysql.ic \
|
||||
include/row0purge.h \
|
||||
include/row0purge.ic \
|
||||
include/row0row.h \
|
||||
include/row0row.ic \
|
||||
include/row0sel.h \
|
||||
include/row0sel.ic \
|
||||
include/row0types.h \
|
||||
include/row0uins.h \
|
||||
include/row0uins.ic \
|
||||
include/row0umod.h \
|
||||
include/row0umod.ic \
|
||||
include/row0undo.h \
|
||||
include/row0undo.ic \
|
||||
include/row0upd.h \
|
||||
include/row0upd.ic \
|
||||
include/row0vers.h \
|
||||
include/row0vers.ic \
|
||||
include/srv0que.h \
|
||||
include/srv0srv.h \
|
||||
include/srv0srv.ic \
|
||||
include/srv0start.h \
|
||||
include/sync0arr.h \
|
||||
include/sync0arr.ic \
|
||||
include/sync0rw.h \
|
||||
include/sync0rw.ic \
|
||||
include/sync0sync.h \
|
||||
include/sync0sync.ic \
|
||||
include/sync0types.h \
|
||||
include/thr0loc.h \
|
||||
include/thr0loc.ic \
|
||||
include/trx0i_s.h \
|
||||
include/trx0purge.h \
|
||||
include/trx0purge.ic \
|
||||
include/trx0rec.h \
|
||||
include/trx0rec.ic \
|
||||
include/trx0roll.h \
|
||||
include/trx0roll.ic \
|
||||
include/trx0rseg.h \
|
||||
include/trx0rseg.ic \
|
||||
include/trx0sys.h \
|
||||
include/trx0sys.ic \
|
||||
include/trx0trx.h \
|
||||
include/trx0trx.ic \
|
||||
include/trx0types.h \
|
||||
include/trx0undo.h \
|
||||
include/trx0undo.ic \
|
||||
include/trx0xa.h \
|
||||
include/univ.i \
|
||||
include/usr0sess.h \
|
||||
include/usr0sess.ic \
|
||||
include/usr0types.h \
|
||||
include/ut0auxconf.h \
|
||||
include/ut0byte.h \
|
||||
include/ut0byte.ic \
|
||||
include/ut0dbg.h \
|
||||
include/ut0list.h \
|
||||
include/ut0list.ic \
|
||||
include/ut0lst.h \
|
||||
include/ut0mem.h \
|
||||
include/ut0mem.ic \
|
||||
include/ut0rbt.h \
|
||||
include/ut0rnd.h \
|
||||
include/ut0rnd.ic \
|
||||
include/ut0sort.h \
|
||||
include/ut0ut.h \
|
||||
include/ut0ut.ic \
|
||||
include/ut0vec.h \
|
||||
include/ut0vec.ic \
|
||||
include/ut0wqueue.h \
|
||||
handler/innodb_patch_info.h \
|
||||
mem/mem0dbg.c
|
||||
|
||||
EXTRA_LIBRARIES= libinnobase.a
|
||||
noinst_LIBRARIES= @plugin_innodb_plugin_static_target@
|
||||
libinnobase_a_SOURCES= \
|
||||
btr/btr0btr.c \
|
||||
btr/btr0cur.c \
|
||||
btr/btr0pcur.c \
|
||||
btr/btr0sea.c \
|
||||
buf/buf0buddy.c \
|
||||
buf/buf0buf.c \
|
||||
buf/buf0flu.c \
|
||||
buf/buf0lru.c \
|
||||
buf/buf0rea.c \
|
||||
data/data0data.c \
|
||||
data/data0type.c \
|
||||
dict/dict0boot.c \
|
||||
dict/dict0crea.c \
|
||||
dict/dict0dict.c \
|
||||
dict/dict0load.c \
|
||||
dict/dict0mem.c \
|
||||
dyn/dyn0dyn.c \
|
||||
eval/eval0eval.c \
|
||||
eval/eval0proc.c \
|
||||
fil/fil0fil.c \
|
||||
fsp/fsp0fsp.c \
|
||||
fut/fut0fut.c \
|
||||
fut/fut0lst.c \
|
||||
ha/ha0ha.c \
|
||||
ha/ha0storage.c \
|
||||
ha/hash0hash.c \
|
||||
handler/ha_innodb.cc \
|
||||
handler/handler0alter.cc \
|
||||
handler/i_s.cc \
|
||||
handler/mysql_addons.cc \
|
||||
ibuf/ibuf0ibuf.c \
|
||||
lock/lock0iter.c \
|
||||
lock/lock0lock.c \
|
||||
log/log0log.c \
|
||||
log/log0recv.c \
|
||||
mach/mach0data.c \
|
||||
mem/mem0mem.c \
|
||||
mem/mem0pool.c \
|
||||
mtr/mtr0log.c \
|
||||
mtr/mtr0mtr.c \
|
||||
os/os0file.c \
|
||||
os/os0proc.c \
|
||||
os/os0sync.c \
|
||||
os/os0thread.c \
|
||||
page/page0cur.c \
|
||||
page/page0page.c \
|
||||
page/page0zip.c \
|
||||
pars/lexyy.c \
|
||||
pars/pars0grm.c \
|
||||
pars/pars0opt.c \
|
||||
pars/pars0pars.c \
|
||||
pars/pars0sym.c \
|
||||
que/que0que.c \
|
||||
read/read0read.c \
|
||||
rem/rem0cmp.c \
|
||||
rem/rem0rec.c \
|
||||
row/row0ext.c \
|
||||
row/row0ins.c \
|
||||
row/row0merge.c \
|
||||
row/row0mysql.c \
|
||||
row/row0purge.c \
|
||||
row/row0row.c \
|
||||
row/row0sel.c \
|
||||
row/row0uins.c \
|
||||
row/row0umod.c \
|
||||
row/row0undo.c \
|
||||
row/row0upd.c \
|
||||
row/row0vers.c \
|
||||
srv/srv0que.c \
|
||||
srv/srv0srv.c \
|
||||
srv/srv0start.c \
|
||||
sync/sync0arr.c \
|
||||
sync/sync0rw.c \
|
||||
sync/sync0sync.c \
|
||||
thr/thr0loc.c \
|
||||
trx/trx0i_s.c \
|
||||
trx/trx0purge.c \
|
||||
trx/trx0rec.c \
|
||||
trx/trx0roll.c \
|
||||
trx/trx0rseg.c \
|
||||
trx/trx0sys.c \
|
||||
trx/trx0trx.c \
|
||||
trx/trx0undo.c \
|
||||
usr/usr0sess.c \
|
||||
ut/ut0byte.c \
|
||||
ut/ut0dbg.c \
|
||||
ut/ut0list.c \
|
||||
ut/ut0mem.c \
|
||||
ut/ut0rbt.c \
|
||||
ut/ut0rnd.c \
|
||||
ut/ut0ut.c \
|
||||
ut/ut0vec.c \
|
||||
ut/ut0wqueue.c
|
||||
|
||||
libinnobase_a_CXXFLAGS= $(AM_CXXFLAGS)
|
||||
libinnobase_a_CFLAGS= $(AM_CFLAGS)
|
||||
|
||||
EXTRA_LTLIBRARIES= ha_innodb_plugin.la
|
||||
pkgplugin_LTLIBRARIES= @plugin_innodb_plugin_shared_target@
|
||||
|
||||
ha_innodb_plugin_la_LDFLAGS= -module -rpath $(pkgplugindir)
|
||||
ha_innodb_plugin_la_CXXFLAGS= $(AM_CXXFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
ha_innodb_plugin_la_CFLAGS= $(AM_CFLAGS) $(INNODB_DYNAMIC_CFLAGS)
|
||||
ha_innodb_plugin_la_SOURCES= $(libinnobase_a_SOURCES)
|
||||
|
||||
EXTRA_DIST= CMakeLists.txt plug.in \
|
||||
pars/make_bison.sh pars/make_flex.sh \
|
||||
pars/pars0grm.y pars/pars0lex.l
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
3346
Makefile.in
3346
Makefile.in
File diff suppressed because it is too large
Load diff
32
README
32
README
|
@ -1,32 +0,0 @@
|
|||
This is the source of the InnoDB Plugin 1.0.6 for MySQL 5.1
|
||||
===========================================================
|
||||
|
||||
Instructions for compiling the plugin:
|
||||
--------------------------------------
|
||||
|
||||
1. Get the latest MySQL 5.1 sources from
|
||||
http://dev.mysql.com/downloads/mysql/5.1.html#source
|
||||
|
||||
2. Replace the contents of the mysql-5.1.N/storage/innobase/ directory
|
||||
with the contents of this directory.
|
||||
|
||||
3. Optional (only necessary if you are going to run tests from the
|
||||
mysql-test suite): cd into the innobase directory and run ./setup.sh
|
||||
|
||||
4. Compile MySQL as usual.
|
||||
If compiling MySQL 5.1.38 or newer, disable the InnoDB Plugin that comes
|
||||
with MySQL in storage/innodb_plugin with the configure option
|
||||
--without-plugin-innodb_plugin
|
||||
|
||||
5. Enjoy!
|
||||
|
||||
See the online documentation for more detailed instructions:
|
||||
http://www.innodb.com/doc/innodb_plugin-1.0/innodb-plugin-installation.html
|
||||
|
||||
For more information about InnoDB visit
|
||||
http://www.innodb.com
|
||||
|
||||
Please report any problems or issues with the plugin in the InnoDB Forums
|
||||
http://forums.innodb.com/ or in the MySQL Bugs database http://bugs.mysql.com
|
||||
|
||||
Thank you for using the InnoDB plugin!
|
604
btr/btr0btr.c
604
btr/btr0btr.c
|
@ -42,6 +42,560 @@ Created 6/2/1994 Heikki Tuuri
|
|||
#include "ibuf0ibuf.h"
|
||||
#include "trx0trx.h"
|
||||
|
||||
#ifdef UNIV_BLOB_DEBUG
|
||||
# include "srv0srv.h"
|
||||
# include "ut0rbt.h"
|
||||
|
||||
/** TRUE when messages about index->blobs modification are enabled. */
|
||||
static ibool btr_blob_dbg_msg;
|
||||
|
||||
/** Issue a message about an operation on index->blobs.
|
||||
@param op operation
|
||||
@param b the entry being subjected to the operation
|
||||
@param ctx the context of the operation */
|
||||
#define btr_blob_dbg_msg_issue(op, b, ctx) \
|
||||
fprintf(stderr, op " %u:%u:%u->%u %s(%u,%u,%u)\n", \
|
||||
(b)->ref_page_no, (b)->ref_heap_no, \
|
||||
(b)->ref_field_no, (b)->blob_page_no, ctx, \
|
||||
(b)->owner, (b)->always_owner, (b)->del)
|
||||
|
||||
/** Insert to index->blobs a reference to an off-page column.
|
||||
@param index the index tree
|
||||
@param b the reference
|
||||
@param ctx context (for logging) */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_rbt_insert(
|
||||
/*====================*/
|
||||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const btr_blob_dbg_t* b, /*!< in: the reference */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
if (btr_blob_dbg_msg) {
|
||||
btr_blob_dbg_msg_issue("insert", b, ctx);
|
||||
}
|
||||
mutex_enter(&index->blobs_mutex);
|
||||
rbt_insert(index->blobs, b, b);
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
}
|
||||
|
||||
/** Remove from index->blobs a reference to an off-page column.
|
||||
@param index the index tree
|
||||
@param b the reference
|
||||
@param ctx context (for logging) */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_rbt_delete(
|
||||
/*====================*/
|
||||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const btr_blob_dbg_t* b, /*!< in: the reference */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
if (btr_blob_dbg_msg) {
|
||||
btr_blob_dbg_msg_issue("delete", b, ctx);
|
||||
}
|
||||
mutex_enter(&index->blobs_mutex);
|
||||
ut_a(rbt_delete(index->blobs, b));
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Comparator for items (btr_blob_dbg_t) in index->blobs.
|
||||
The key in index->blobs is (ref_page_no, ref_heap_no, ref_field_no).
|
||||
@return negative, 0 or positive if *a<*b, *a=*b, *a>*b */
|
||||
static
|
||||
int
|
||||
btr_blob_dbg_cmp(
|
||||
/*=============*/
|
||||
const void* a, /*!< in: first btr_blob_dbg_t to compare */
|
||||
const void* b) /*!< in: second btr_blob_dbg_t to compare */
|
||||
{
|
||||
const btr_blob_dbg_t* aa = a;
|
||||
const btr_blob_dbg_t* bb = b;
|
||||
|
||||
ut_ad(aa != NULL);
|
||||
ut_ad(bb != NULL);
|
||||
|
||||
if (aa->ref_page_no != bb->ref_page_no) {
|
||||
return(aa->ref_page_no < bb->ref_page_no ? -1 : 1);
|
||||
}
|
||||
if (aa->ref_heap_no != bb->ref_heap_no) {
|
||||
return(aa->ref_heap_no < bb->ref_heap_no ? -1 : 1);
|
||||
}
|
||||
if (aa->ref_field_no != bb->ref_field_no) {
|
||||
return(aa->ref_field_no < bb->ref_field_no ? -1 : 1);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Add a reference to an off-page column to the index->blobs map. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_add_blob(
|
||||
/*==================*/
|
||||
const rec_t* rec, /*!< in: clustered index record */
|
||||
ulint field_no, /*!< in: off-page column number */
|
||||
ulint page_no, /*!< in: start page of the column */
|
||||
dict_index_t* index, /*!< in/out: index tree */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
btr_blob_dbg_t b;
|
||||
const page_t* page = page_align(rec);
|
||||
|
||||
ut_a(index->blobs);
|
||||
|
||||
b.blob_page_no = page_no;
|
||||
b.ref_page_no = page_get_page_no(page);
|
||||
b.ref_heap_no = page_rec_get_heap_no(rec);
|
||||
b.ref_field_no = field_no;
|
||||
ut_a(b.ref_field_no >= index->n_uniq);
|
||||
b.always_owner = b.owner = TRUE;
|
||||
b.del = FALSE;
|
||||
ut_a(!rec_get_deleted_flag(rec, page_is_comp(page)));
|
||||
btr_blob_dbg_rbt_insert(index, &b, ctx);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Add to index->blobs any references to off-page columns from a record.
|
||||
@return number of references added */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
btr_blob_dbg_add_rec(
|
||||
/*=================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: offsets */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
ulint count = 0;
|
||||
ulint i;
|
||||
btr_blob_dbg_t b;
|
||||
ibool del;
|
||||
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
|
||||
if (!rec_offs_any_extern(offsets)) {
|
||||
return(0);
|
||||
}
|
||||
|
||||
b.ref_page_no = page_get_page_no(page_align(rec));
|
||||
b.ref_heap_no = page_rec_get_heap_no(rec);
|
||||
del = (rec_get_deleted_flag(rec, rec_offs_comp(offsets)) != 0);
|
||||
|
||||
for (i = 0; i < rec_offs_n_fields(offsets); i++) {
|
||||
if (rec_offs_nth_extern(offsets, i)) {
|
||||
ulint len;
|
||||
const byte* field_ref = rec_get_nth_field(
|
||||
rec, offsets, i, &len);
|
||||
|
||||
ut_a(len != UNIV_SQL_NULL);
|
||||
ut_a(len >= BTR_EXTERN_FIELD_REF_SIZE);
|
||||
field_ref += len - BTR_EXTERN_FIELD_REF_SIZE;
|
||||
|
||||
if (!memcmp(field_ref, field_ref_zero,
|
||||
BTR_EXTERN_FIELD_REF_SIZE)) {
|
||||
/* the column has not been stored yet */
|
||||
continue;
|
||||
}
|
||||
|
||||
b.ref_field_no = i;
|
||||
b.blob_page_no = mach_read_from_4(
|
||||
field_ref + BTR_EXTERN_PAGE_NO);
|
||||
ut_a(b.ref_field_no >= index->n_uniq);
|
||||
b.always_owner = b.owner
|
||||
= !(field_ref[BTR_EXTERN_LEN]
|
||||
& BTR_EXTERN_OWNER_FLAG);
|
||||
b.del = del;
|
||||
|
||||
btr_blob_dbg_rbt_insert(index, &b, ctx);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return(count);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Display the references to off-page columns.
|
||||
This function is to be called from a debugger,
|
||||
for example when a breakpoint on ut_dbg_assertion_failed is hit. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_print(
|
||||
/*===============*/
|
||||
const dict_index_t* index) /*!< in: index tree */
|
||||
{
|
||||
const ib_rbt_node_t* node;
|
||||
|
||||
if (!index->blobs) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* We intentionally do not acquire index->blobs_mutex here.
|
||||
This function is to be called from a debugger, and the caller
|
||||
should make sure that the index->blobs_mutex is held. */
|
||||
|
||||
for (node = rbt_first(index->blobs);
|
||||
node != NULL; node = rbt_next(index->blobs, node)) {
|
||||
const btr_blob_dbg_t* b
|
||||
= rbt_value(btr_blob_dbg_t, node);
|
||||
fprintf(stderr, "%u:%u:%u->%u%s%s%s\n",
|
||||
b->ref_page_no, b->ref_heap_no, b->ref_field_no,
|
||||
b->blob_page_no,
|
||||
b->owner ? "" : "(disowned)",
|
||||
b->always_owner ? "" : "(has disowned)",
|
||||
b->del ? "(deleted)" : "");
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Remove from index->blobs any references to off-page columns from a record.
|
||||
@return number of references removed */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
btr_blob_dbg_remove_rec(
|
||||
/*====================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: offsets */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
ulint i;
|
||||
ulint count = 0;
|
||||
btr_blob_dbg_t b;
|
||||
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
|
||||
if (!rec_offs_any_extern(offsets)) {
|
||||
return(0);
|
||||
}
|
||||
|
||||
b.ref_page_no = page_get_page_no(page_align(rec));
|
||||
b.ref_heap_no = page_rec_get_heap_no(rec);
|
||||
|
||||
for (i = 0; i < rec_offs_n_fields(offsets); i++) {
|
||||
if (rec_offs_nth_extern(offsets, i)) {
|
||||
ulint len;
|
||||
const byte* field_ref = rec_get_nth_field(
|
||||
rec, offsets, i, &len);
|
||||
|
||||
ut_a(len != UNIV_SQL_NULL);
|
||||
ut_a(len >= BTR_EXTERN_FIELD_REF_SIZE);
|
||||
field_ref += len - BTR_EXTERN_FIELD_REF_SIZE;
|
||||
|
||||
b.ref_field_no = i;
|
||||
b.blob_page_no = mach_read_from_4(
|
||||
field_ref + BTR_EXTERN_PAGE_NO);
|
||||
|
||||
switch (b.blob_page_no) {
|
||||
case 0:
|
||||
/* The column has not been stored yet.
|
||||
The BLOB pointer must be all zero.
|
||||
There cannot be a BLOB starting at
|
||||
page 0, because page 0 is reserved for
|
||||
the tablespace header. */
|
||||
ut_a(!memcmp(field_ref, field_ref_zero,
|
||||
BTR_EXTERN_FIELD_REF_SIZE));
|
||||
/* fall through */
|
||||
case FIL_NULL:
|
||||
/* the column has been freed already */
|
||||
continue;
|
||||
}
|
||||
|
||||
btr_blob_dbg_rbt_delete(index, &b, ctx);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return(count);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Check that there are no references to off-page columns from or to
|
||||
the given page. Invoked when freeing or clearing a page.
|
||||
@return TRUE when no orphan references exist */
|
||||
UNIV_INTERN
|
||||
ibool
|
||||
btr_blob_dbg_is_empty(
|
||||
/*==================*/
|
||||
dict_index_t* index, /*!< in: index */
|
||||
ulint page_no) /*!< in: page number */
|
||||
{
|
||||
const ib_rbt_node_t* node;
|
||||
ibool success = TRUE;
|
||||
|
||||
if (!index->blobs) {
|
||||
return(success);
|
||||
}
|
||||
|
||||
mutex_enter(&index->blobs_mutex);
|
||||
|
||||
for (node = rbt_first(index->blobs);
|
||||
node != NULL; node = rbt_next(index->blobs, node)) {
|
||||
const btr_blob_dbg_t* b
|
||||
= rbt_value(btr_blob_dbg_t, node);
|
||||
|
||||
if (b->ref_page_no != page_no && b->blob_page_no != page_no) {
|
||||
continue;
|
||||
}
|
||||
|
||||
fprintf(stderr,
|
||||
"InnoDB: orphan BLOB ref%s%s%s %u:%u:%u->%u\n",
|
||||
b->owner ? "" : "(disowned)",
|
||||
b->always_owner ? "" : "(has disowned)",
|
||||
b->del ? "(deleted)" : "",
|
||||
b->ref_page_no, b->ref_heap_no, b->ref_field_no,
|
||||
b->blob_page_no);
|
||||
|
||||
if (b->blob_page_no != page_no || b->owner || !b->del) {
|
||||
success = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
return(success);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Count and process all references to off-page columns on a page.
|
||||
@return number of references processed */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
btr_blob_dbg_op(
|
||||
/*============*/
|
||||
const page_t* page, /*!< in: B-tree leaf page */
|
||||
const rec_t* rec, /*!< in: record to start from
|
||||
(NULL to process the whole page) */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx, /*!< in: context (for logging) */
|
||||
const btr_blob_dbg_op_f op) /*!< in: operation on records */
|
||||
{
|
||||
ulint count = 0;
|
||||
mem_heap_t* heap = NULL;
|
||||
ulint offsets_[REC_OFFS_NORMAL_SIZE];
|
||||
ulint* offsets = offsets_;
|
||||
rec_offs_init(offsets_);
|
||||
|
||||
ut_a(fil_page_get_type(page) == FIL_PAGE_INDEX);
|
||||
ut_a(!rec || page_align(rec) == page);
|
||||
|
||||
if (!index->blobs || !page_is_leaf(page)
|
||||
|| !dict_index_is_clust(index)) {
|
||||
return(0);
|
||||
}
|
||||
|
||||
if (rec == NULL) {
|
||||
rec = page_get_infimum_rec(page);
|
||||
}
|
||||
|
||||
do {
|
||||
offsets = rec_get_offsets(rec, index, offsets,
|
||||
ULINT_UNDEFINED, &heap);
|
||||
count += op(rec, index, offsets, ctx);
|
||||
rec = page_rec_get_next_const(rec);
|
||||
} while (!page_rec_is_supremum(rec));
|
||||
|
||||
if (UNIV_LIKELY_NULL(heap)) {
|
||||
mem_heap_free(heap);
|
||||
}
|
||||
|
||||
return(count);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Count and add to index->blobs any references to off-page columns
|
||||
from records on a page.
|
||||
@return number of references added */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
btr_blob_dbg_add(
|
||||
/*=============*/
|
||||
const page_t* page, /*!< in: rewritten page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
btr_blob_dbg_assert_empty(index, page_get_page_no(page));
|
||||
|
||||
return(btr_blob_dbg_op(page, NULL, index, ctx, btr_blob_dbg_add_rec));
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Count and remove from index->blobs any references to off-page columns
|
||||
from records on a page.
|
||||
Used when reorganizing a page, before copying the records.
|
||||
@return number of references removed */
|
||||
UNIV_INTERN
|
||||
ulint
|
||||
btr_blob_dbg_remove(
|
||||
/*================*/
|
||||
const page_t* page, /*!< in: b-tree page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
ulint count;
|
||||
|
||||
count = btr_blob_dbg_op(page, NULL, index, ctx,
|
||||
btr_blob_dbg_remove_rec);
|
||||
|
||||
/* Check that no references exist. */
|
||||
btr_blob_dbg_assert_empty(index, page_get_page_no(page));
|
||||
|
||||
return(count);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Restore in index->blobs any references to off-page columns
|
||||
Used when page reorganize fails due to compressed page overflow. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_restore(
|
||||
/*=================*/
|
||||
const page_t* npage, /*!< in: page that failed to compress */
|
||||
const page_t* page, /*!< in: copy of original page */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const char* ctx) /*!< in: context (for logging) */
|
||||
{
|
||||
ulint removed;
|
||||
ulint added;
|
||||
|
||||
ut_a(page_get_page_no(npage) == page_get_page_no(page));
|
||||
ut_a(page_get_space_id(npage) == page_get_space_id(page));
|
||||
|
||||
removed = btr_blob_dbg_remove(npage, index, ctx);
|
||||
added = btr_blob_dbg_add(page, index, ctx);
|
||||
ut_a(added == removed);
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Modify the 'deleted' flag of a record. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_set_deleted_flag(
|
||||
/*==========================*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: rec_get_offs(rec, index) */
|
||||
ibool del) /*!< in: TRUE=deleted, FALSE=exists */
|
||||
{
|
||||
const ib_rbt_node_t* node;
|
||||
btr_blob_dbg_t b;
|
||||
btr_blob_dbg_t* c;
|
||||
ulint i;
|
||||
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
ut_a(dict_index_is_clust(index));
|
||||
ut_a(del == !!del);/* must be FALSE==0 or TRUE==1 */
|
||||
|
||||
if (!rec_offs_any_extern(offsets) || !index->blobs) {
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
b.ref_page_no = page_get_page_no(page_align(rec));
|
||||
b.ref_heap_no = page_rec_get_heap_no(rec);
|
||||
|
||||
for (i = 0; i < rec_offs_n_fields(offsets); i++) {
|
||||
if (rec_offs_nth_extern(offsets, i)) {
|
||||
ulint len;
|
||||
const byte* field_ref = rec_get_nth_field(
|
||||
rec, offsets, i, &len);
|
||||
|
||||
ut_a(len != UNIV_SQL_NULL);
|
||||
ut_a(len >= BTR_EXTERN_FIELD_REF_SIZE);
|
||||
field_ref += len - BTR_EXTERN_FIELD_REF_SIZE;
|
||||
|
||||
b.ref_field_no = i;
|
||||
b.blob_page_no = mach_read_from_4(
|
||||
field_ref + BTR_EXTERN_PAGE_NO);
|
||||
|
||||
switch (b.blob_page_no) {
|
||||
case 0:
|
||||
ut_a(memcmp(field_ref, field_ref_zero,
|
||||
BTR_EXTERN_FIELD_REF_SIZE));
|
||||
/* page number 0 is for the
|
||||
page allocation bitmap */
|
||||
case FIL_NULL:
|
||||
/* the column has been freed already */
|
||||
ut_error;
|
||||
}
|
||||
|
||||
mutex_enter(&index->blobs_mutex);
|
||||
node = rbt_lookup(index->blobs, &b);
|
||||
ut_a(node);
|
||||
|
||||
c = rbt_value(btr_blob_dbg_t, node);
|
||||
/* The flag should be modified. */
|
||||
c->del = del;
|
||||
if (btr_blob_dbg_msg) {
|
||||
b = *c;
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
btr_blob_dbg_msg_issue("del_mk", &b, "");
|
||||
} else {
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************//**
|
||||
Change the ownership of an off-page column. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_blob_dbg_owner(
|
||||
/*===============*/
|
||||
const rec_t* rec, /*!< in: record */
|
||||
dict_index_t* index, /*!< in/out: index */
|
||||
const ulint* offsets,/*!< in: rec_get_offs(rec, index) */
|
||||
ulint i, /*!< in: ith field in rec */
|
||||
ibool own) /*!< in: TRUE=owned, FALSE=disowned */
|
||||
{
|
||||
const ib_rbt_node_t* node;
|
||||
btr_blob_dbg_t b;
|
||||
const byte* field_ref;
|
||||
ulint len;
|
||||
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
ut_a(rec_offs_nth_extern(offsets, i));
|
||||
|
||||
field_ref = rec_get_nth_field(rec, offsets, i, &len);
|
||||
ut_a(len != UNIV_SQL_NULL);
|
||||
ut_a(len >= BTR_EXTERN_FIELD_REF_SIZE);
|
||||
field_ref += len - BTR_EXTERN_FIELD_REF_SIZE;
|
||||
|
||||
b.ref_page_no = page_get_page_no(page_align(rec));
|
||||
b.ref_heap_no = page_rec_get_heap_no(rec);
|
||||
b.ref_field_no = i;
|
||||
b.owner = !(field_ref[BTR_EXTERN_LEN] & BTR_EXTERN_OWNER_FLAG);
|
||||
b.blob_page_no = mach_read_from_4(field_ref + BTR_EXTERN_PAGE_NO);
|
||||
|
||||
ut_a(b.owner == own);
|
||||
|
||||
mutex_enter(&index->blobs_mutex);
|
||||
node = rbt_lookup(index->blobs, &b);
|
||||
/* row_ins_clust_index_entry_by_modify() invokes
|
||||
btr_cur_unmark_extern_fields() also for the newly inserted
|
||||
references, which are all zero bytes until the columns are stored.
|
||||
The node lookup must fail if and only if that is the case. */
|
||||
ut_a(!memcmp(field_ref, field_ref_zero, BTR_EXTERN_FIELD_REF_SIZE)
|
||||
== !node);
|
||||
|
||||
if (node) {
|
||||
btr_blob_dbg_t* c = rbt_value(btr_blob_dbg_t, node);
|
||||
/* Some code sets ownership from TRUE to TRUE.
|
||||
We do not allow changing ownership from FALSE to FALSE. */
|
||||
ut_a(own || c->owner);
|
||||
|
||||
c->owner = own;
|
||||
if (!own) {
|
||||
c->always_owner = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
mutex_exit(&index->blobs_mutex);
|
||||
}
|
||||
#endif /* UNIV_BLOB_DEBUG */
|
||||
|
||||
/*
|
||||
Latching strategy of the InnoDB B-tree
|
||||
--------------------------------------
|
||||
|
@ -289,7 +843,7 @@ btr_get_next_user_rec(
|
|||
/**************************************************************//**
|
||||
Creates a new index page (not the root, and also not
|
||||
used in page reorganization). @see btr_page_empty(). */
|
||||
static
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_page_create(
|
||||
/*============*/
|
||||
|
@ -302,6 +856,7 @@ btr_page_create(
|
|||
page_t* page = buf_block_get_frame(block);
|
||||
|
||||
ut_ad(mtr_memo_contains(mtr, block, MTR_MEMO_PAGE_X_FIX));
|
||||
btr_blob_dbg_assert_empty(index, buf_block_get_page_no(block));
|
||||
|
||||
if (UNIV_LIKELY_NULL(page_zip)) {
|
||||
page_create_zip(block, index, level, mtr);
|
||||
|
@ -501,6 +1056,7 @@ btr_page_free_low(
|
|||
modify clock */
|
||||
|
||||
buf_block_modify_clock_inc(block);
|
||||
btr_blob_dbg_assert_empty(index, buf_block_get_page_no(block));
|
||||
|
||||
if (dict_index_is_ibuf(index)) {
|
||||
|
||||
|
@ -631,6 +1187,7 @@ btr_page_get_father_node_ptr_func(
|
|||
ut_ad(dict_index_get_page(index) != page_no);
|
||||
|
||||
level = btr_page_get_level(btr_cur_get_page(cursor), mtr);
|
||||
|
||||
user_rec = btr_cur_get_rec(cursor);
|
||||
ut_a(page_rec_is_user_rec(user_rec));
|
||||
tuple = dict_index_build_node_ptr(index, user_rec, 0, heap, level);
|
||||
|
@ -746,7 +1303,7 @@ btr_create(
|
|||
ulint space, /*!< in: space where created */
|
||||
ulint zip_size,/*!< in: compressed page size in bytes
|
||||
or 0 for uncompressed pages */
|
||||
dulint index_id,/*!< in: index id */
|
||||
index_id_t index_id,/*!< in: index id */
|
||||
dict_index_t* index, /*!< in: index */
|
||||
mtr_t* mtr) /*!< in: mini-transaction handle */
|
||||
{
|
||||
|
@ -785,6 +1342,14 @@ btr_create(
|
|||
block = buf_page_get(space, zip_size, page_no,
|
||||
RW_X_LATCH, mtr);
|
||||
} else {
|
||||
#ifdef UNIV_BLOB_DEBUG
|
||||
if ((type & DICT_CLUSTERED) && !index->blobs) {
|
||||
mutex_create(PFS_NOT_INSTRUMENTED,
|
||||
&index->blobs_mutex, SYNC_ANY_LATCH);
|
||||
index->blobs = rbt_create(sizeof(btr_blob_dbg_t),
|
||||
btr_blob_dbg_cmp);
|
||||
}
|
||||
#endif /* UNIV_BLOB_DEBUG */
|
||||
block = fseg_create(space, 0,
|
||||
PAGE_HEADER + PAGE_BTR_SEG_TOP, mtr);
|
||||
}
|
||||
|
@ -953,7 +1518,7 @@ btr_free_root(
|
|||
}
|
||||
ut_a(block);
|
||||
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, NULL);
|
||||
|
||||
header = buf_block_get_frame(block) + PAGE_HEADER + PAGE_BTR_SEG_TOP;
|
||||
#ifdef UNIV_BTR_DEBUG
|
||||
|
@ -979,6 +1544,7 @@ btr_page_reorganize_low(
|
|||
dict_index_t* index, /*!< in: record descriptor */
|
||||
mtr_t* mtr) /*!< in: mtr */
|
||||
{
|
||||
buf_pool_t* buf_pool = buf_pool_from_bpage(&block->page);
|
||||
page_t* page = buf_block_get_frame(block);
|
||||
page_zip_des_t* page_zip = buf_block_get_page_zip(block);
|
||||
buf_block_t* temp_block;
|
||||
|
@ -1009,7 +1575,7 @@ btr_page_reorganize_low(
|
|||
log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE);
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
temp_block = buf_block_alloc();
|
||||
temp_block = buf_block_alloc(buf_pool);
|
||||
#else /* !UNIV_HOTBACKUP */
|
||||
ut_ad(block == back_block1);
|
||||
temp_block = back_block2;
|
||||
|
@ -1021,11 +1587,12 @@ btr_page_reorganize_low(
|
|||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
if (UNIV_LIKELY(!recovery)) {
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
}
|
||||
|
||||
block->check_index_page_at_flush = TRUE;
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
btr_blob_dbg_remove(page, index, "btr_page_reorganize");
|
||||
|
||||
/* Recreate the page: note that global data on page (possible
|
||||
segment headers, next page-field, etc.) is preserved intact */
|
||||
|
@ -1046,7 +1613,7 @@ btr_page_reorganize_low(
|
|||
/* In crash recovery, dict_index_is_sec_or_ibuf() always
|
||||
returns TRUE, even for clustered indexes. max_trx_id is
|
||||
unused in clustered index pages. */
|
||||
ut_ad(!ut_dulint_is_zero(max_trx_id) || recovery);
|
||||
ut_ad(max_trx_id != 0 || recovery);
|
||||
}
|
||||
|
||||
if (UNIV_LIKELY_NULL(page_zip)
|
||||
|
@ -1054,6 +1621,8 @@ btr_page_reorganize_low(
|
|||
(!page_zip_compress(page_zip, page, index, NULL))) {
|
||||
|
||||
/* Restore the old page and exit. */
|
||||
btr_blob_dbg_restore(page, temp_page, index,
|
||||
"btr_page_reorganize_compress_fail");
|
||||
|
||||
#if defined UNIV_DEBUG || defined UNIV_ZIP_DEBUG
|
||||
/* Check that the bytes that we skip are identical. */
|
||||
|
@ -1168,7 +1737,7 @@ btr_parse_page_reorganize(
|
|||
#ifndef UNIV_HOTBACKUP
|
||||
/*************************************************************//**
|
||||
Empties an index page. @see btr_page_create(). */
|
||||
static
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_page_empty(
|
||||
/*===========*/
|
||||
|
@ -1186,7 +1755,8 @@ btr_page_empty(
|
|||
ut_a(!page_zip || page_zip_validate(page_zip, page));
|
||||
#endif /* UNIV_ZIP_DEBUG */
|
||||
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
btr_blob_dbg_remove(page, index, "btr_page_empty");
|
||||
|
||||
/* Recreate the page: note that global data on page (possible
|
||||
segment headers, next page-field, etc.) is preserved intact */
|
||||
|
@ -1729,7 +2299,7 @@ btr_insert_on_non_leaf_level_func(
|
|||
/**************************************************************//**
|
||||
Attaches the halves of an index page on the appropriate level in an
|
||||
index tree. */
|
||||
static
|
||||
UNIV_INTERN
|
||||
void
|
||||
btr_attach_half_pages(
|
||||
/*==================*/
|
||||
|
@ -2495,7 +3065,7 @@ btr_lift_page_up(
|
|||
mem_heap_free(heap);
|
||||
}
|
||||
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
|
||||
/* Make the father empty */
|
||||
btr_page_empty(father_block, father_page_zip, index, page_level, mtr);
|
||||
|
@ -2527,6 +3097,7 @@ btr_lift_page_up(
|
|||
index);
|
||||
}
|
||||
|
||||
btr_blob_dbg_remove(page, index, "btr_lift_page_up");
|
||||
lock_update_copy_and_discard(father_block, block);
|
||||
|
||||
/* Go upward to root page, decrementing levels by one. */
|
||||
|
@ -2718,7 +3289,7 @@ err_exit:
|
|||
goto err_exit;
|
||||
}
|
||||
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
|
||||
/* Remove the page from the level list */
|
||||
btr_level_list_remove(space, zip_size, page, mtr);
|
||||
|
@ -2759,7 +3330,7 @@ err_exit:
|
|||
goto err_exit;
|
||||
}
|
||||
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
|
||||
#ifdef UNIV_BTR_DEBUG
|
||||
if (UNIV_LIKELY_NULL(merge_page_zip)) {
|
||||
|
@ -2788,6 +3359,7 @@ err_exit:
|
|||
lock_update_merge_right(merge_block, orig_succ, block);
|
||||
}
|
||||
|
||||
btr_blob_dbg_remove(page, index, "btr_compress");
|
||||
mem_heap_free(heap);
|
||||
|
||||
if (!dict_index_is_clust(index) && page_is_leaf(merge_page)) {
|
||||
|
@ -2873,7 +3445,7 @@ btr_discard_only_page_on_level(
|
|||
ut_a(btr_page_get_next(page, mtr) == FIL_NULL);
|
||||
|
||||
ut_ad(mtr_memo_contains(mtr, block, MTR_MEMO_PAGE_X_FIX));
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
|
||||
btr_page_get_father(index, block, mtr, &cursor);
|
||||
father = btr_cur_get_block(&cursor);
|
||||
|
@ -2908,7 +3480,7 @@ btr_discard_only_page_on_level(
|
|||
ibuf_reset_free_bits(block);
|
||||
|
||||
if (page_is_leaf(buf_block_get_frame(block))) {
|
||||
ut_a(!ut_dulint_is_zero(max_trx_id));
|
||||
ut_a(max_trx_id);
|
||||
page_set_max_trx_id(block,
|
||||
buf_block_get_page_zip(block),
|
||||
max_trx_id, mtr);
|
||||
|
@ -2978,7 +3550,7 @@ btr_discard_page(
|
|||
|
||||
page = buf_block_get_frame(block);
|
||||
ut_a(page_is_comp(merge_page) == page_is_comp(page));
|
||||
btr_search_drop_page_hash_index(block);
|
||||
btr_search_drop_page_hash_index(block, index);
|
||||
|
||||
if (left_page_no == FIL_NULL && !page_is_leaf(page)) {
|
||||
|
||||
|
@ -3018,6 +3590,8 @@ btr_discard_page(
|
|||
block);
|
||||
}
|
||||
|
||||
btr_blob_dbg_remove(page, index, "btr_discard_page");
|
||||
|
||||
/* Free the file page */
|
||||
btr_page_free(index, block, mtr);
|
||||
|
||||
|
|
768
btr/btr0cur.c
768
btr/btr0cur.c
File diff suppressed because it is too large
Load diff
590
btr/btr0sea.c
590
btr/btr0sea.c
File diff suppressed because it is too large
Load diff
284
buf/buf0buddy.c
284
buf/buf0buddy.c
|
@ -34,17 +34,6 @@ Created December 2006 by Marko Makela
|
|||
#include "buf0flu.h"
|
||||
#include "page0zip.h"
|
||||
|
||||
/* Statistic counters */
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
/** Number of frames allocated from the buffer pool to the buddy system.
|
||||
Protected by buf_pool_mutex. */
|
||||
static ulint buf_buddy_n_frames;
|
||||
#endif /* UNIV_DEBUG */
|
||||
/** Statistics of the buddy system, indexed by block size.
|
||||
Protected by buf_pool_mutex. */
|
||||
UNIV_INTERN buf_buddy_stat_t buf_buddy_stat[BUF_BUDDY_SIZES_MAX + 1];
|
||||
|
||||
/**********************************************************************//**
|
||||
Get the offset of the buddy of a compressed page frame.
|
||||
@return the buddy relative of page */
|
||||
|
@ -73,8 +62,10 @@ UNIV_INLINE
|
|||
void
|
||||
buf_buddy_add_to_free(
|
||||
/*==================*/
|
||||
buf_page_t* bpage, /*!< in,own: block to be freed */
|
||||
ulint i) /*!< in: index of buf_pool->zip_free[] */
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
buf_page_t* bpage, /*!< in,own: block to be freed */
|
||||
ulint i) /*!< in: index of
|
||||
buf_pool->zip_free[] */
|
||||
{
|
||||
#ifdef UNIV_DEBUG_VALGRIND
|
||||
buf_page_t* b = UT_LIST_GET_FIRST(buf_pool->zip_free[i]);
|
||||
|
@ -82,8 +73,8 @@ buf_buddy_add_to_free(
|
|||
if (b) UNIV_MEM_VALID(b, BUF_BUDDY_LOW << i);
|
||||
#endif /* UNIV_DEBUG_VALGRIND */
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(mutex_own(&zip_free_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->zip_free_mutex));
|
||||
ut_ad(buf_page_get_state(bpage) == BUF_BLOCK_ZIP_FREE);
|
||||
ut_ad(buf_pool->zip_free[i].start != bpage);
|
||||
UT_LIST_ADD_FIRST(zip_list, buf_pool->zip_free[i], bpage);
|
||||
|
@ -100,8 +91,10 @@ UNIV_INLINE
|
|||
void
|
||||
buf_buddy_remove_from_free(
|
||||
/*=======================*/
|
||||
buf_page_t* bpage, /*!< in: block to be removed */
|
||||
ulint i) /*!< in: index of buf_pool->zip_free[] */
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
buf_page_t* bpage, /*!< in: block to be removed */
|
||||
ulint i) /*!< in: index of
|
||||
buf_pool->zip_free[] */
|
||||
{
|
||||
#ifdef UNIV_DEBUG_VALGRIND
|
||||
buf_page_t* prev = UT_LIST_GET_PREV(zip_list, bpage);
|
||||
|
@ -114,8 +107,8 @@ buf_buddy_remove_from_free(
|
|||
ut_ad(!next || buf_page_get_state(next) == BUF_BLOCK_ZIP_FREE);
|
||||
#endif /* UNIV_DEBUG_VALGRIND */
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(mutex_own(&zip_free_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->zip_free_mutex));
|
||||
ut_ad(buf_page_get_state(bpage) == BUF_BLOCK_ZIP_FREE);
|
||||
UT_LIST_REMOVE(zip_list, buf_pool->zip_free[i], bpage);
|
||||
|
||||
|
@ -132,12 +125,13 @@ static
|
|||
void*
|
||||
buf_buddy_alloc_zip(
|
||||
/*================*/
|
||||
ulint i) /*!< in: index of buf_pool->zip_free[] */
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
ulint i) /*!< in: index of buf_pool->zip_free[] */
|
||||
{
|
||||
buf_page_t* bpage;
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(mutex_own(&zip_free_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->zip_free_mutex));
|
||||
ut_a(i < BUF_BUDDY_SIZES);
|
||||
|
||||
#ifndef UNIV_DEBUG_VALGRIND
|
||||
|
@ -152,19 +146,19 @@ buf_buddy_alloc_zip(
|
|||
UNIV_MEM_VALID(bpage, BUF_BUDDY_LOW << i);
|
||||
ut_a(buf_page_get_state(bpage) == BUF_BLOCK_ZIP_FREE);
|
||||
|
||||
buf_buddy_remove_from_free(bpage, i);
|
||||
buf_buddy_remove_from_free(buf_pool, bpage, i);
|
||||
} else if (i + 1 < BUF_BUDDY_SIZES) {
|
||||
/* Attempt to split. */
|
||||
bpage = buf_buddy_alloc_zip(i + 1);
|
||||
bpage = buf_buddy_alloc_zip(buf_pool, i + 1);
|
||||
|
||||
if (bpage) {
|
||||
buf_page_t* buddy = (buf_page_t*)
|
||||
(((char*) bpage) + (BUF_BUDDY_LOW << i));
|
||||
|
||||
ut_ad(!buf_pool_contains_zip(buddy));
|
||||
ut_ad(!buf_pool_contains_zip(buf_pool, buddy));
|
||||
ut_d(memset(buddy, i, BUF_BUDDY_LOW << i));
|
||||
buddy->state = BUF_BLOCK_ZIP_FREE;
|
||||
buf_buddy_add_to_free(buddy, i);
|
||||
buf_buddy_add_to_free(buf_pool, buddy, i);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -185,18 +179,19 @@ static
|
|||
void
|
||||
buf_buddy_block_free(
|
||||
/*=================*/
|
||||
void* buf, /*!< in: buffer frame to deallocate */
|
||||
ibool have_page_hash_mutex)
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
void* buf, /*!< in: buffer frame to deallocate */
|
||||
ibool have_page_hash_mutex)
|
||||
{
|
||||
const ulint fold = BUF_POOL_ZIP_FOLD_PTR(buf);
|
||||
buf_page_t* bpage;
|
||||
buf_block_t* block;
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(!mutex_own(&buf_pool_zip_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(!mutex_own(&buf_pool->zip_mutex));
|
||||
ut_a(!ut_align_offset(buf, UNIV_PAGE_SIZE));
|
||||
|
||||
mutex_enter(&zip_hash_mutex);
|
||||
mutex_enter(&buf_pool->zip_hash_mutex);
|
||||
|
||||
HASH_SEARCH(hash, buf_pool->zip_hash, fold, buf_page_t*, bpage,
|
||||
ut_ad(buf_page_get_state(bpage) == BUF_BLOCK_MEMORY
|
||||
|
@ -209,7 +204,7 @@ buf_buddy_block_free(
|
|||
ut_d(bpage->in_zip_hash = FALSE);
|
||||
HASH_DELETE(buf_page_t, hash, buf_pool->zip_hash, fold, bpage);
|
||||
|
||||
mutex_exit(&zip_hash_mutex);
|
||||
mutex_exit(&buf_pool->zip_hash_mutex);
|
||||
|
||||
ut_d(memset(buf, 0, UNIV_PAGE_SIZE));
|
||||
UNIV_MEM_INVALID(buf, UNIV_PAGE_SIZE);
|
||||
|
@ -219,8 +214,8 @@ buf_buddy_block_free(
|
|||
buf_LRU_block_free_non_file_page(block, have_page_hash_mutex);
|
||||
mutex_exit(&block->mutex);
|
||||
|
||||
ut_ad(buf_buddy_n_frames > 0);
|
||||
ut_d(buf_buddy_n_frames--);
|
||||
ut_ad(buf_pool->buddy_n_frames > 0);
|
||||
ut_d(buf_pool->buddy_n_frames--);
|
||||
}
|
||||
|
||||
/**********************************************************************//**
|
||||
|
@ -231,9 +226,10 @@ buf_buddy_block_register(
|
|||
/*=====================*/
|
||||
buf_block_t* block) /*!< in: buffer frame to allocate */
|
||||
{
|
||||
buf_pool_t* buf_pool = buf_pool_from_block(block);
|
||||
const ulint fold = BUF_POOL_ZIP_FOLD(block);
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(!mutex_own(&buf_pool_zip_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(!mutex_own(&buf_pool->zip_mutex));
|
||||
ut_ad(buf_block_get_state(block) == BUF_BLOCK_READY_FOR_USE);
|
||||
|
||||
buf_block_set_state(block, BUF_BLOCK_MEMORY);
|
||||
|
@ -245,11 +241,11 @@ buf_buddy_block_register(
|
|||
ut_ad(!block->page.in_zip_hash);
|
||||
ut_d(block->page.in_zip_hash = TRUE);
|
||||
|
||||
mutex_enter(&zip_hash_mutex);
|
||||
mutex_enter(&buf_pool->zip_hash_mutex);
|
||||
HASH_INSERT(buf_page_t, hash, buf_pool->zip_hash, fold, &block->page);
|
||||
mutex_exit(&zip_hash_mutex);
|
||||
mutex_exit(&buf_pool->zip_hash_mutex);
|
||||
|
||||
ut_d(buf_buddy_n_frames++);
|
||||
ut_d(buf_pool->buddy_n_frames++);
|
||||
}
|
||||
|
||||
/**********************************************************************//**
|
||||
|
@ -259,10 +255,12 @@ static
|
|||
void*
|
||||
buf_buddy_alloc_from(
|
||||
/*=================*/
|
||||
void* buf, /*!< in: a block that is free to use */
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[] */
|
||||
ulint j) /*!< in: size of buf as an index
|
||||
of buf_pool->zip_free[] */
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
void* buf, /*!< in: a block that is free to use */
|
||||
ulint i, /*!< in: index of
|
||||
buf_pool->zip_free[] */
|
||||
ulint j) /*!< in: size of buf as an index
|
||||
of buf_pool->zip_free[] */
|
||||
{
|
||||
ulint offs = BUF_BUDDY_LOW << j;
|
||||
ut_ad(j <= BUF_BUDDY_SIZES);
|
||||
|
@ -286,7 +284,7 @@ buf_buddy_alloc_from(
|
|||
ut_list_node_313)
|
||||
== BUF_BLOCK_ZIP_FREE)));
|
||||
#endif /* !UNIV_DEBUG_VALGRIND */
|
||||
buf_buddy_add_to_free(bpage, j);
|
||||
buf_buddy_add_to_free(buf_pool, bpage, j);
|
||||
}
|
||||
|
||||
return(buf);
|
||||
|
@ -294,41 +292,43 @@ buf_buddy_alloc_from(
|
|||
|
||||
/**********************************************************************//**
|
||||
Allocate a block. The thread calling this function must hold
|
||||
buf_pool_mutex and must not hold buf_pool_zip_mutex or any block->mutex.
|
||||
The buf_pool_mutex may only be released and reacquired if lru != NULL.
|
||||
buf_pool->mutex and must not hold buf_pool->zip_mutex or any block->mutex.
|
||||
The buf_pool->mutex may only be released and reacquired if lru != NULL.
|
||||
@return allocated block, possibly NULL if lru==NULL */
|
||||
UNIV_INTERN
|
||||
void*
|
||||
buf_buddy_alloc_low(
|
||||
/*================*/
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[],
|
||||
or BUF_BUDDY_SIZES */
|
||||
ibool* lru, /*!< in: pointer to a variable that will be assigned
|
||||
TRUE if storage was allocated from the LRU list
|
||||
and buf_pool_mutex was temporarily released,
|
||||
or NULL if the LRU list should not be used */
|
||||
ibool have_page_hash_mutex)
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[],
|
||||
or BUF_BUDDY_SIZES */
|
||||
ibool* lru, /*!< in: pointer to a variable that
|
||||
will be assigned TRUE if storage was
|
||||
allocated from the LRU list and
|
||||
buf_pool->mutex was temporarily
|
||||
released, or NULL if the LRU list
|
||||
should not be used */
|
||||
ibool have_page_hash_mutex)
|
||||
{
|
||||
buf_block_t* block;
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(!mutex_own(&buf_pool_zip_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->LRU_list_mutex));
|
||||
ut_ad(!mutex_own(&buf_pool->zip_mutex));
|
||||
|
||||
if (i < BUF_BUDDY_SIZES) {
|
||||
/* Try to allocate from the buddy system. */
|
||||
mutex_enter(&zip_free_mutex);
|
||||
block = buf_buddy_alloc_zip(i);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
block = buf_buddy_alloc_zip(buf_pool, i);
|
||||
|
||||
if (block) {
|
||||
|
||||
goto func_exit;
|
||||
}
|
||||
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
}
|
||||
|
||||
/* Try allocating from the buf_pool->free list. */
|
||||
block = buf_LRU_get_free_only();
|
||||
block = buf_LRU_get_free_only(buf_pool);
|
||||
|
||||
if (block) {
|
||||
|
||||
|
@ -341,28 +341,29 @@ buf_buddy_alloc_low(
|
|||
}
|
||||
|
||||
/* Try replacing an uncompressed page in the buffer pool. */
|
||||
//buf_pool_mutex_exit();
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
//buf_pool_mutex_exit(buf_pool);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
if (have_page_hash_mutex) {
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
block = buf_LRU_get_free_block();
|
||||
block = buf_LRU_get_free_block(buf_pool);
|
||||
*lru = TRUE;
|
||||
//buf_pool_mutex_enter();
|
||||
mutex_enter(&LRU_list_mutex);
|
||||
//buf_pool_mutex_enter(buf_pool);
|
||||
mutex_enter(&buf_pool->LRU_list_mutex);
|
||||
if (have_page_hash_mutex) {
|
||||
rw_lock_x_lock(&page_hash_latch);
|
||||
rw_lock_x_lock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
|
||||
alloc_big:
|
||||
buf_buddy_block_register(block);
|
||||
|
||||
mutex_enter(&zip_free_mutex);
|
||||
block = buf_buddy_alloc_from(block->frame, i, BUF_BUDDY_SIZES);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
block = buf_buddy_alloc_from(
|
||||
buf_pool, block->frame, i, BUF_BUDDY_SIZES);
|
||||
|
||||
func_exit:
|
||||
buf_buddy_stat[i].used++;
|
||||
mutex_exit(&zip_free_mutex);
|
||||
buf_pool->buddy_stat[i].used++;
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
|
||||
return(block);
|
||||
}
|
||||
|
@ -378,10 +379,11 @@ buf_buddy_relocate_block(
|
|||
buf_page_t* dpage) /*!< in: free block to relocate to */
|
||||
{
|
||||
buf_page_t* b;
|
||||
buf_pool_t* buf_pool = buf_pool_from_bpage(bpage);
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&page_hash_latch, RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&buf_pool->page_hash_latch, RW_LOCK_EX));
|
||||
#endif
|
||||
|
||||
switch (buf_page_get_state(bpage)) {
|
||||
|
@ -400,18 +402,19 @@ buf_buddy_relocate_block(
|
|||
break;
|
||||
}
|
||||
|
||||
mutex_enter(&buf_pool_zip_mutex);
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_enter(&buf_pool->zip_mutex);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
|
||||
if (!buf_page_can_relocate(bpage)) {
|
||||
mutex_exit(&buf_pool_zip_mutex);
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
if (bpage != buf_page_hash_get(bpage->space, bpage->offset)) {
|
||||
mutex_exit(&buf_pool_zip_mutex);
|
||||
mutex_exit(&zip_free_mutex);
|
||||
if (bpage != buf_page_hash_get(buf_pool,
|
||||
bpage->space, bpage->offset)) {
|
||||
mutex_exit(&buf_pool->zip_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
|
@ -419,7 +422,6 @@ buf_buddy_relocate_block(
|
|||
ut_d(bpage->state = BUF_BLOCK_ZIP_FREE);
|
||||
|
||||
/* relocate buf_pool->zip_clean */
|
||||
mutex_enter(&flush_list_mutex);
|
||||
b = UT_LIST_GET_PREV(zip_list, dpage);
|
||||
UT_LIST_REMOVE(zip_list, buf_pool->zip_clean, dpage);
|
||||
|
||||
|
@ -428,12 +430,11 @@ buf_buddy_relocate_block(
|
|||
} else {
|
||||
UT_LIST_ADD_FIRST(zip_list, buf_pool->zip_clean, dpage);
|
||||
}
|
||||
mutex_exit(&flush_list_mutex);
|
||||
|
||||
UNIV_MEM_INVALID(bpage, sizeof *bpage);
|
||||
|
||||
mutex_exit(&buf_pool_zip_mutex);
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
@ -444,18 +445,20 @@ static
|
|||
ibool
|
||||
buf_buddy_relocate(
|
||||
/*===============*/
|
||||
void* src, /*!< in: block to relocate */
|
||||
void* dst, /*!< in: free block to relocate to */
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[] */
|
||||
ibool have_page_hash_mutex)
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
void* src, /*!< in: block to relocate */
|
||||
void* dst, /*!< in: free block to relocate to */
|
||||
ulint i, /*!< in: index of
|
||||
buf_pool->zip_free[] */
|
||||
ibool have_page_hash_mutex)
|
||||
{
|
||||
buf_page_t* bpage;
|
||||
const ulint size = BUF_BUDDY_LOW << i;
|
||||
ullint usec = ut_time_us(NULL);
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(mutex_own(&zip_free_mutex));
|
||||
ut_ad(!mutex_own(&buf_pool_zip_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->zip_free_mutex));
|
||||
ut_ad(!mutex_own(&buf_pool->zip_mutex));
|
||||
ut_ad(!ut_align_offset(src, size));
|
||||
ut_ad(!ut_align_offset(dst, size));
|
||||
UNIV_MEM_ASSERT_W(dst, size);
|
||||
|
@ -478,9 +481,9 @@ buf_buddy_relocate(
|
|||
ulint space, page_no;
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_enter(&LRU_list_mutex);
|
||||
rw_lock_x_lock(&page_hash_latch);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
mutex_enter(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_lock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
|
||||
/* The src block may be split into smaller blocks,
|
||||
|
@ -499,7 +502,7 @@ buf_buddy_relocate(
|
|||
on uninitialized value. */
|
||||
UNIV_MEM_VALID(&space, sizeof space);
|
||||
UNIV_MEM_VALID(&page_no, sizeof page_no);
|
||||
bpage = buf_page_hash_get(space, page_no);
|
||||
bpage = buf_page_hash_get(buf_pool, space, page_no);
|
||||
|
||||
if (!bpage || bpage->zip.data != src) {
|
||||
/* The block has probably been freshly
|
||||
|
@ -508,13 +511,15 @@ buf_buddy_relocate(
|
|||
it cannot be relocated. */
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
ut_ad(!buf_pool_watch_is_sentinel(buf_pool, bpage));
|
||||
|
||||
if (page_zip_get_size(&bpage->zip) != size) {
|
||||
/* The block is of different size. We would
|
||||
have to relocate all blocks covered by src.
|
||||
|
@ -522,16 +527,16 @@ buf_buddy_relocate(
|
|||
ut_ad(page_zip_get_size(&bpage->zip) < size);
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/* To keep latch order */
|
||||
if (have_page_hash_mutex)
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
|
||||
/* The block must have been allocated, but it may
|
||||
contain uninitialized data. */
|
||||
|
@ -539,7 +544,7 @@ buf_buddy_relocate(
|
|||
|
||||
mutex = buf_page_get_mutex_enter(bpage);
|
||||
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
|
||||
if (mutex && buf_page_can_relocate(bpage)) {
|
||||
/* Relocate the compressed page. */
|
||||
|
@ -551,22 +556,22 @@ success:
|
|||
UNIV_MEM_INVALID(src, size);
|
||||
{
|
||||
buf_buddy_stat_t* buddy_stat
|
||||
= &buf_buddy_stat[i];
|
||||
= &buf_pool->buddy_stat[i];
|
||||
buddy_stat->relocated++;
|
||||
buddy_stat->relocated_usec
|
||||
+= ut_time_us(NULL) - usec;
|
||||
}
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
|
||||
if (mutex) {
|
||||
|
@ -581,29 +586,29 @@ success:
|
|||
UNIV_MEM_ASSERT_RW(src, size);
|
||||
#endif
|
||||
|
||||
mutex_exit(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_enter(&LRU_list_mutex);
|
||||
rw_lock_x_lock(&page_hash_latch);
|
||||
mutex_enter(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_lock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
|
||||
if (buf_buddy_relocate_block(src, dst)) {
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
|
||||
goto success;
|
||||
}
|
||||
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
|
||||
if (!have_page_hash_mutex) {
|
||||
mutex_exit(&LRU_list_mutex);
|
||||
rw_lock_x_unlock(&page_hash_latch);
|
||||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
rw_lock_x_unlock(&buf_pool->page_hash_latch);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -616,36 +621,37 @@ UNIV_INTERN
|
|||
void
|
||||
buf_buddy_free_low(
|
||||
/*===============*/
|
||||
void* buf, /*!< in: block to be freed, must not be
|
||||
pointed to by the buffer pool */
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[],
|
||||
or BUF_BUDDY_SIZES */
|
||||
ibool have_page_hash_mutex)
|
||||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
void* buf, /*!< in: block to be freed, must not be
|
||||
pointed to by the buffer pool */
|
||||
ulint i, /*!< in: index of buf_pool->zip_free[],
|
||||
or BUF_BUDDY_SIZES */
|
||||
ibool have_page_hash_mutex)
|
||||
{
|
||||
buf_page_t* bpage;
|
||||
buf_page_t* buddy;
|
||||
|
||||
//ut_ad(buf_pool_mutex_own());
|
||||
ut_ad(mutex_own(&zip_free_mutex));
|
||||
ut_ad(!mutex_own(&buf_pool_zip_mutex));
|
||||
//ut_ad(buf_pool_mutex_own(buf_pool));
|
||||
ut_ad(mutex_own(&buf_pool->zip_free_mutex));
|
||||
ut_ad(!mutex_own(&buf_pool->zip_mutex));
|
||||
ut_ad(i <= BUF_BUDDY_SIZES);
|
||||
ut_ad(buf_buddy_stat[i].used > 0);
|
||||
ut_ad(buf_pool->buddy_stat[i].used > 0);
|
||||
|
||||
buf_buddy_stat[i].used--;
|
||||
buf_pool->buddy_stat[i].used--;
|
||||
recombine:
|
||||
UNIV_MEM_ASSERT_AND_ALLOC(buf, BUF_BUDDY_LOW << i);
|
||||
ut_d(((buf_page_t*) buf)->state = BUF_BLOCK_ZIP_FREE);
|
||||
|
||||
if (i == BUF_BUDDY_SIZES) {
|
||||
mutex_exit(&zip_free_mutex);
|
||||
buf_buddy_block_free(buf, have_page_hash_mutex);
|
||||
mutex_enter(&zip_free_mutex);
|
||||
mutex_exit(&buf_pool->zip_free_mutex);
|
||||
buf_buddy_block_free(buf_pool, buf, have_page_hash_mutex);
|
||||
mutex_enter(&buf_pool->zip_free_mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
ut_ad(i < BUF_BUDDY_SIZES);
|
||||
ut_ad(buf == ut_align_down(buf, BUF_BUDDY_LOW << i));
|
||||
ut_ad(!buf_pool_contains_zip(buf));
|
||||
ut_ad(!buf_pool_contains_zip(buf_pool, buf));
|
||||
|
||||
/* Try to combine adjacent blocks. */
|
||||
|
||||
|
@ -671,10 +677,10 @@ recombine:
|
|||
if (bpage == buddy) {
|
||||
buddy_free:
|
||||
/* The buddy is free: recombine */
|
||||
buf_buddy_remove_from_free(bpage, i);
|
||||
buf_buddy_remove_from_free(buf_pool, bpage, i);
|
||||
buddy_free2:
|
||||
ut_ad(buf_page_get_state(buddy) == BUF_BLOCK_ZIP_FREE);
|
||||
ut_ad(!buf_pool_contains_zip(buddy));
|
||||
ut_ad(!buf_pool_contains_zip(buf_pool, buddy));
|
||||
i++;
|
||||
buf = ut_align_down(buf, BUF_BUDDY_LOW << i);
|
||||
|
||||
|
@ -706,16 +712,16 @@ buddy_nonfree:
|
|||
buf_buddy_relocate() will overwrite bpage->list. */
|
||||
|
||||
UNIV_MEM_VALID(bpage, BUF_BUDDY_LOW << i);
|
||||
buf_buddy_remove_from_free(bpage, i);
|
||||
buf_buddy_remove_from_free(buf_pool, bpage, i);
|
||||
|
||||
/* Try to relocate the buddy of buf to the free block. */
|
||||
if (buf_buddy_relocate(buddy, bpage, i, have_page_hash_mutex)) {
|
||||
if (buf_buddy_relocate(buf_pool, buddy, bpage, i, have_page_hash_mutex)) {
|
||||
|
||||
ut_d(buddy->state = BUF_BLOCK_ZIP_FREE);
|
||||
goto buddy_free2;
|
||||
}
|
||||
|
||||
buf_buddy_add_to_free(bpage, i);
|
||||
buf_buddy_add_to_free(buf_pool, bpage, i);
|
||||
|
||||
/* Try to relocate the buddy of the free block to buf. */
|
||||
buddy = (buf_page_t*) buf_buddy_get(((byte*) bpage),
|
||||
|
@ -736,7 +742,7 @@ buddy_nonfree:
|
|||
&& ut_list_node_313 != buddy)));
|
||||
#endif /* !UNIV_DEBUG_VALGRIND */
|
||||
|
||||
if (buf_buddy_relocate(buddy, buf, i, have_page_hash_mutex)) {
|
||||
if (buf_buddy_relocate(buf_pool, buddy, buf, i, have_page_hash_mutex)) {
|
||||
|
||||
buf = bpage;
|
||||
UNIV_MEM_VALID(bpage, BUF_BUDDY_LOW << i);
|
||||
|
@ -799,5 +805,5 @@ buddy_nonfree:
|
|||
}
|
||||
#endif /* UNIV_DEBUG */
|
||||
bpage->state = BUF_BLOCK_ZIP_FREE;
|
||||
buf_buddy_add_to_free(bpage, i);
|
||||
buf_buddy_add_to_free(buf_pool, bpage, i);
|
||||
}
|
||||
|
|
3135
buf/buf0buf.c
3135
buf/buf0buf.c
File diff suppressed because it is too large
Load diff
1146
buf/buf0flu.c
1146
buf/buf0flu.c
File diff suppressed because it is too large
Load diff
888
buf/buf0lru.c
888
buf/buf0lru.c
File diff suppressed because it is too large
Load diff
|
@ -37,6 +37,8 @@ Created 11/5/1995 Heikki Tuuri
|
|||
#include "os0file.h"
|
||||
#include "srv0start.h"
|
||||
#include "srv0srv.h"
|
||||
#include "mysql/plugin.h"
|
||||
#include "mysql/service_thd_wait.h"
|
||||
|
||||
/** The linear read-ahead area size */
|
||||
#define BUF_READ_AHEAD_LINEAR_AREA BUF_READ_AHEAD_AREA
|
||||
|
@ -178,6 +180,7 @@ not_to_recover:
|
|||
|
||||
ut_ad(buf_page_in_file(bpage));
|
||||
|
||||
thd_wait_begin(NULL, THD_WAIT_DISKIO);
|
||||
if (zip_size) {
|
||||
*err = _fil_io(OS_FILE_READ | wake_later,
|
||||
sync, space, zip_size, offset, 0, zip_size,
|
||||
|
@ -189,6 +192,7 @@ not_to_recover:
|
|||
sync, space, 0, offset, 0, UNIV_PAGE_SIZE,
|
||||
((buf_block_t*) bpage)->frame, bpage, trx);
|
||||
}
|
||||
thd_wait_end(NULL);
|
||||
|
||||
if (srv_pass_corrupt_table) {
|
||||
if (*err != DB_SUCCESS) {
|
||||
|
@ -201,7 +205,7 @@ not_to_recover:
|
|||
if (sync) {
|
||||
/* The i/o is already completed when we arrive from
|
||||
fil_read */
|
||||
buf_page_io_complete(bpage, trx);
|
||||
buf_page_io_complete(bpage);
|
||||
}
|
||||
|
||||
return(1);
|
||||
|
@ -222,6 +226,7 @@ buf_read_page(
|
|||
ulint offset, /*!< in: page number */
|
||||
trx_t* trx)
|
||||
{
|
||||
buf_pool_t* buf_pool = buf_pool_get(space, offset);
|
||||
ib_int64_t tablespace_version;
|
||||
ulint count;
|
||||
ulint err;
|
||||
|
@ -246,7 +251,7 @@ buf_read_page(
|
|||
}
|
||||
|
||||
/* Flush pages from the end of the LRU list if necessary */
|
||||
buf_flush_free_margin(FALSE);
|
||||
buf_flush_free_margin(buf_pool, TRUE);
|
||||
|
||||
/* Increment number of I/O operations used for LRU policy. */
|
||||
buf_LRU_stat_inc_io();
|
||||
|
@ -282,12 +287,13 @@ UNIV_INTERN
|
|||
ulint
|
||||
buf_read_ahead_linear(
|
||||
/*==================*/
|
||||
ulint space, /*!< in: space id */
|
||||
ulint zip_size,/*!< in: compressed page size in bytes, or 0 */
|
||||
ulint offset, /*!< in: page number of a page; NOTE: the current thread
|
||||
must want access to this page (see NOTE 3 above) */
|
||||
ulint space, /*!< in: space id */
|
||||
ulint zip_size, /*!< in: compressed page size in bytes, or 0 */
|
||||
ulint offset, /*!< in: page number; see NOTE 3 above */
|
||||
ibool inside_ibuf, /*!< in: TRUE if we are inside ibuf routine */
|
||||
trx_t* trx)
|
||||
{
|
||||
buf_pool_t* buf_pool = buf_pool_get(space, offset);
|
||||
ib_int64_t tablespace_version;
|
||||
buf_page_t* bpage;
|
||||
buf_frame_t* frame;
|
||||
|
@ -303,12 +309,12 @@ buf_read_ahead_linear(
|
|||
ulint err;
|
||||
ulint i;
|
||||
const ulint buf_read_ahead_linear_area
|
||||
= BUF_READ_AHEAD_LINEAR_AREA;
|
||||
= BUF_READ_AHEAD_LINEAR_AREA(buf_pool);
|
||||
ulint threshold;
|
||||
|
||||
if (!(srv_read_ahead & 2)) {
|
||||
return(0);
|
||||
}
|
||||
if (!(srv_read_ahead & 2)) {
|
||||
return(0);
|
||||
}
|
||||
|
||||
if (UNIV_UNLIKELY(srv_startup_is_before_trx_rollback_phase)) {
|
||||
/* No read-ahead to avoid thread deadlocks */
|
||||
|
@ -342,12 +348,10 @@ buf_read_ahead_linear(
|
|||
|
||||
tablespace_version = fil_space_get_version(space);
|
||||
|
||||
//buf_pool_mutex_enter();
|
||||
mutex_enter(&buf_pool_mutex);
|
||||
buf_pool_mutex_enter(buf_pool);
|
||||
|
||||
if (high > fil_space_get_size(space)) {
|
||||
//buf_pool_mutex_exit();
|
||||
mutex_exit(&buf_pool_mutex);
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
/* The area is not whole, return */
|
||||
|
||||
return(0);
|
||||
|
@ -355,12 +359,11 @@ buf_read_ahead_linear(
|
|||
|
||||
if (buf_pool->n_pend_reads
|
||||
> buf_pool->curr_size / BUF_READ_AHEAD_PEND_LIMIT) {
|
||||
//buf_pool_mutex_exit();
|
||||
mutex_exit(&buf_pool_mutex);
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
return(0);
|
||||
}
|
||||
mutex_exit(&buf_pool_mutex);
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
/* Check that almost all pages in the area have been accessed; if
|
||||
offset == low, the accesses must be in a descending order, otherwise,
|
||||
|
@ -375,15 +378,15 @@ buf_read_ahead_linear(
|
|||
/* How many out of order accessed pages can we ignore
|
||||
when working out the access pattern for linear readahead */
|
||||
threshold = ut_min((64 - srv_read_ahead_threshold),
|
||||
BUF_READ_AHEAD_AREA);
|
||||
BUF_READ_AHEAD_AREA(buf_pool));
|
||||
|
||||
fail_count = 0;
|
||||
|
||||
rw_lock_s_lock(&page_hash_latch);
|
||||
rw_lock_s_lock(&buf_pool->page_hash_latch);
|
||||
for (i = low; i < high; i++) {
|
||||
bpage = buf_page_hash_get(space, i);
|
||||
bpage = buf_page_hash_get(buf_pool, space, i);
|
||||
|
||||
if ((bpage == NULL) || !buf_page_is_accessed(bpage)) {
|
||||
if (bpage == NULL || !buf_page_is_accessed(bpage)) {
|
||||
/* Not accessed */
|
||||
fail_count++;
|
||||
|
||||
|
@ -407,8 +410,8 @@ buf_read_ahead_linear(
|
|||
|
||||
if (fail_count > threshold) {
|
||||
/* Too many failures: return */
|
||||
//buf_pool_mutex_exit();
|
||||
rw_lock_s_unlock(&page_hash_latch);
|
||||
//buf_pool_mutex_exit(buf_pool);
|
||||
rw_lock_s_unlock(&buf_pool->page_hash_latch);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -420,11 +423,11 @@ buf_read_ahead_linear(
|
|||
/* If we got this far, we know that enough pages in the area have
|
||||
been accessed in the right order: linear read-ahead can be sensible */
|
||||
|
||||
bpage = buf_page_hash_get(space, offset);
|
||||
bpage = buf_page_hash_get(buf_pool, space, offset);
|
||||
|
||||
if (bpage == NULL) {
|
||||
//buf_pool_mutex_exit();
|
||||
rw_lock_s_unlock(&page_hash_latch);
|
||||
//buf_pool_mutex_exit(buf_pool);
|
||||
rw_lock_s_unlock(&buf_pool->page_hash_latch);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
@ -450,8 +453,8 @@ buf_read_ahead_linear(
|
|||
pred_offset = fil_page_get_prev(frame);
|
||||
succ_offset = fil_page_get_next(frame);
|
||||
|
||||
//buf_pool_mutex_exit();
|
||||
rw_lock_s_unlock(&page_hash_latch);
|
||||
//buf_pool_mutex_exit(buf_pool);
|
||||
rw_lock_s_unlock(&buf_pool->page_hash_latch);
|
||||
|
||||
if ((offset == low) && (succ_offset == offset + 1)) {
|
||||
|
||||
|
@ -487,11 +490,9 @@ buf_read_ahead_linear(
|
|||
|
||||
/* If we got this far, read-ahead can be sensible: do it */
|
||||
|
||||
if (ibuf_inside()) {
|
||||
ibuf_mode = BUF_READ_IBUF_PAGES_ONLY;
|
||||
} else {
|
||||
ibuf_mode = BUF_READ_ANY_PAGE;
|
||||
}
|
||||
ibuf_mode = inside_ibuf
|
||||
? BUF_READ_IBUF_PAGES_ONLY | OS_AIO_SIMULATED_WAKE_LATER
|
||||
: BUF_READ_ANY_PAGE | OS_AIO_SIMULATED_WAKE_LATER;
|
||||
|
||||
count = 0;
|
||||
|
||||
|
@ -508,7 +509,7 @@ buf_read_ahead_linear(
|
|||
if (!ibuf_bitmap_page(zip_size, i)) {
|
||||
count += buf_read_page_low(
|
||||
&err, FALSE,
|
||||
ibuf_mode | OS_AIO_SIMULATED_WAKE_LATER,
|
||||
ibuf_mode,
|
||||
space, zip_size, FALSE, tablespace_version, i, trx);
|
||||
if (err == DB_TABLESPACE_DELETED) {
|
||||
ut_print_timestamp(stderr);
|
||||
|
@ -530,7 +531,7 @@ buf_read_ahead_linear(
|
|||
os_aio_simulated_wake_handler_threads();
|
||||
|
||||
/* Flush pages from the end of the LRU list if necessary */
|
||||
buf_flush_free_margin(FALSE);
|
||||
buf_flush_free_margin(buf_pool, TRUE);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
if (buf_debug_prints && (count > 0)) {
|
||||
|
@ -578,18 +579,21 @@ buf_read_ibuf_merge_pages(
|
|||
{
|
||||
ulint i;
|
||||
|
||||
ut_ad(!ibuf_inside());
|
||||
#ifdef UNIV_IBUF_DEBUG
|
||||
ut_a(n_stored < UNIV_PAGE_SIZE);
|
||||
#endif
|
||||
while (buf_pool->n_pend_reads
|
||||
> buf_pool->curr_size / BUF_READ_AHEAD_PEND_LIMIT) {
|
||||
os_thread_sleep(500000);
|
||||
}
|
||||
|
||||
for (i = 0; i < n_stored; i++) {
|
||||
ulint zip_size = fil_space_get_zip_size(space_ids[i]);
|
||||
ulint err;
|
||||
ulint err;
|
||||
buf_pool_t* buf_pool;
|
||||
ulint zip_size = fil_space_get_zip_size(space_ids[i]);
|
||||
|
||||
buf_pool = buf_pool_get(space_ids[i], page_nos[i]);
|
||||
|
||||
while (buf_pool->n_pend_reads
|
||||
> buf_pool->curr_size / BUF_READ_AHEAD_PEND_LIMIT) {
|
||||
os_thread_sleep(500000);
|
||||
}
|
||||
|
||||
if (UNIV_UNLIKELY(zip_size == ULINT_UNDEFINED)) {
|
||||
|
||||
|
@ -614,8 +618,8 @@ tablespace_deleted:
|
|||
|
||||
os_aio_simulated_wake_handler_threads();
|
||||
|
||||
/* Flush pages from the end of the LRU list if necessary */
|
||||
buf_flush_free_margin(FALSE);
|
||||
/* Flush pages from the end of all the LRU lists if necessary */
|
||||
buf_flush_free_margins(FALSE);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
if (buf_debug_prints) {
|
||||
|
@ -708,11 +712,12 @@ not_to_recover:
|
|||
tablespace_version = fil_space_get_version(space);
|
||||
|
||||
for (i = 0; i < n_stored; i++) {
|
||||
buf_pool_t* buf_pool;
|
||||
|
||||
count = 0;
|
||||
|
||||
os_aio_print_debug = FALSE;
|
||||
|
||||
buf_pool = buf_pool_get(space, page_nos[i]);
|
||||
while (buf_pool->n_pend_reads >= recv_n_pool_free_frames / 2) {
|
||||
|
||||
os_aio_simulated_wake_handler_threads();
|
||||
|
@ -751,8 +756,8 @@ not_to_recover:
|
|||
|
||||
os_aio_simulated_wake_handler_threads();
|
||||
|
||||
/* Flush pages from the end of the LRU list if necessary */
|
||||
buf_flush_free_margin(FALSE);
|
||||
/* Flush pages from the end of all the LRU lists if necessary */
|
||||
buf_flush_free_margins(FALSE);
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
if (buf_debug_prints) {
|
||||
|
|
|
@ -1,116 +0,0 @@
|
|||
|
||||
###########################
|
||||
## FIXME for 5.1 ##
|
||||
###########################
|
||||
|
||||
* put this trigger-recreation thing into the init scripts -- what?!
|
||||
* Let debian-i10n-english review all template changes before the translaters start.
|
||||
* Mark debconf translations as obsolete with debconf-updatepo.
|
||||
|
||||
###########################################################################
|
||||
# Here are some information that are only of interest for the current and #
|
||||
# following Debian maintainers of MySQL. #
|
||||
###########################################################################
|
||||
|
||||
The debian/ directory is under SVN control, see debian/control for URL.
|
||||
|
||||
#
|
||||
# Preparing a new version
|
||||
#
|
||||
The new orig.tar.gz (without non-free documentation) is created in /tmp/ when
|
||||
running this command:
|
||||
|
||||
debian/rules get-orig-source
|
||||
|
||||
#
|
||||
# mysqlreport
|
||||
#
|
||||
The authors e-mail address is <public@codenode.com>.
|
||||
|
||||
#
|
||||
# Remarks to dependencies
|
||||
#
|
||||
libwrap0-dev (>= 7.6-8.3)
|
||||
According to bug report 114582 where where build problems on
|
||||
IA-64/sid with at least two prior versions.
|
||||
psmisc
|
||||
/usr/bin/killall in the initscript
|
||||
|
||||
zlib1g in libmysqlclient-dev:
|
||||
"mysql_config --libs" ads "-lz"
|
||||
|
||||
Build-Dep:
|
||||
|
||||
debhelper (>=4.1.16):
|
||||
See po-debconf(7).
|
||||
|
||||
autoconf (>= 2.13-20), automake1.7
|
||||
Try to get rid of them.
|
||||
|
||||
doxygen, tetex-bin, tetex-extra, gs
|
||||
for ndb/docs/*tex
|
||||
|
||||
#
|
||||
# Remarks to the start scripts
|
||||
#
|
||||
|
||||
## initscripts rely on mysqladmin from a different package
|
||||
We have the problem that "/etc/init.d/mysql stop" relies on mysqladmin which
|
||||
is in another package (mysql-client) and a passwordless access that's maybe
|
||||
only available if the user configured his /root/.my.cnf. Can this be a problem?
|
||||
* normal mode: not because the user is required to have it. Else:
|
||||
* purge/remove: not, same as normal mode
|
||||
* upgrade: not, same as normal mode
|
||||
* first install: not, it depends on mysql-client which at least is unpacked
|
||||
so mysqladmin is there (to ping). It is not yet configured
|
||||
passwordles but if there's a server running then there's a
|
||||
/root/.my.cnf. Anyways, we simply kill anything that's mysqld.
|
||||
|
||||
## Passwordless access for the maintainer scripts
|
||||
Another issue is that the scripts needs passwordless access. To ensure this
|
||||
a debian-sys-maint user is configured which has process and shutdown privs.
|
||||
The file with the randomly (that's important!) generated password must be
|
||||
present as long as the databases remain installed because else a new install
|
||||
would have no access. This file should be used like:
|
||||
mysqladmin --defaults-file=/etc/mysql/debian.cnf restart
|
||||
to avoid providing the password in plaintext on a commandline where it would
|
||||
be visible to any user via the "ps" command.
|
||||
|
||||
## When to start the daemon?
|
||||
We aim to give the admin full control on when MySQL is running.
|
||||
Issues to be faced here:
|
||||
OLD:
|
||||
1. Debconf asks whether MySQL should be started on boot so update-rc.d is
|
||||
only run if the answer has been yes. The admin is likely to forget
|
||||
this decision but update-rc.d checks for an existing line in
|
||||
/etc/runlevel.conf and leaves it intact.
|
||||
2. On initial install, if the answer is yes, the daemon has to be started.
|
||||
3. On upgrades it should only be started if it was already running, everything
|
||||
else is confusing. Especiall relying on an debconf decision made month ago
|
||||
is considered suboptimal. See bug #274264
|
||||
Implementation so far:
|
||||
prerm (called on upgrade before stopping the server):
|
||||
check for a running server and set flag if necessary
|
||||
preinst (called on initial install and before unpacking when upgrading):
|
||||
check for the debconf variable and set flag if necessary
|
||||
postinst (called on initial install and after each upgrade after unpacking):
|
||||
call update-rc.d if debconf says yes
|
||||
call invoce-rc.d if the flag has been set
|
||||
Problems remaining:
|
||||
dpkg-reconfigure and setting mysql start on boot to yes did not start mysql
|
||||
(ok "start on boot" literally does not mean "start now" so that might have been ok)
|
||||
NEW:
|
||||
1. --- no debconf anymore for the sake of simplicity. We have runlevel.conf,
|
||||
the admin should use it
|
||||
2. On initial install the server is started.
|
||||
3. On upgrades the server is started exactly if it was running before so the
|
||||
runlevel configuration is irrelevant. It will be preserved by the mean of
|
||||
update-rc.d's builtin check.
|
||||
Implementation:
|
||||
prerm (called on upgrade before stopping the server):
|
||||
check for a running server and set flag if necessary
|
||||
preinst (called on initial install and before unpacking when upgrading):
|
||||
check for $1 beeing (initial) "install" and set flag
|
||||
postinst (called on initial install and after each upgrade after unpacking):
|
||||
call update-rc.d
|
||||
call invoce-rc.d if the flag has been set
|
|
@ -1,6 +0,0 @@
|
|||
all:
|
||||
|
||||
distclean:
|
||||
-rm -f Makefile
|
||||
|
||||
.PHONY: all distclean clean install check
|
|
@ -1,6 +0,0 @@
|
|||
all:
|
||||
|
||||
distclean:
|
||||
-rm -f Makefile
|
||||
|
||||
.PHONY: all distclean clean install check
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# This script is executed by "/etc/init.d/mysql" on every (re)start.
|
||||
#
|
||||
# Changes to this file will be preserved when updating the Debian package.
|
||||
#
|
||||
|
||||
source /usr/share/mysql/debian-start.inc.sh
|
||||
|
||||
MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"
|
||||
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
|
||||
MYUPGRADE="/usr/bin/mysql_upgrade --defaults-extra-file=/etc/mysql/debian.cnf"
|
||||
MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
|
||||
MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
|
||||
MYCHECK_PARAMS="--all-databases --fast --silent"
|
||||
MYCHECK_RCPT="root"
|
||||
|
||||
# The following commands should be run when the server is up but in background
|
||||
# where they do not block the server start and in one shell instance so that
|
||||
# they run sequentially. They are supposed not to echo anything to stdout.
|
||||
# If you want to disable the check for crashed tables comment
|
||||
# "check_for_crashed_tables" out.
|
||||
# (There may be no output to stdout inside the background process!)
|
||||
echo "Checking for corrupt, not cleanly closed and upgrade needing tables."
|
||||
(
|
||||
upgrade_system_tables_if_necessary;
|
||||
check_root_accounts;
|
||||
check_for_crashed_tables;
|
||||
) >&2 &
|
||||
|
||||
exit 0
|
|
@ -1,72 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# This file is included by /etc/mysql/debian-start
|
||||
#
|
||||
|
||||
## Check all unclosed tables.
|
||||
# - Requires the server to be up.
|
||||
# - Is supposed to run silently in background.
|
||||
function check_for_crashed_tables() {
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# But do it in the background to not stall the boot process.
|
||||
logger -p daemon.info -i -t$0 "Triggering myisam-recover for all MyISAM tables"
|
||||
|
||||
# Checking for $? is unreliable so the size of the output is checked.
|
||||
# Some table handlers like HEAP do not support CHECK TABLE.
|
||||
tempfile=`tempfile`
|
||||
# We have to use xargs in this case, because a for loop barfs on the
|
||||
# spaces in the thing to be looped over.
|
||||
LC_ALL=C $MYSQL --skip-column-names --batch -e '
|
||||
select concat("select count(*) into @discard from `",
|
||||
TABLE_SCHEMA, "`.`", TABLE_NAME, "`")
|
||||
from information_schema.TABLES where ENGINE="MyISAM"' | \
|
||||
xargs -i $MYSQL --skip-column-names --silent --batch \
|
||||
--force -e "{}" >$tempfile
|
||||
if [ -s $tempfile ]; then
|
||||
(
|
||||
/bin/echo -e "\n" \
|
||||
"Improperly closed tables are also reported if clients are accessing\n" \
|
||||
"the tables *now*. A list of current connections is below.\n";
|
||||
$MYADMIN processlist status
|
||||
) >> $tempfile
|
||||
# Check for presence as a dependency on mailx would require an MTA.
|
||||
if [ -x /usr/bin/mailx ]; then
|
||||
mailx -e -s"$MYCHECK_SUBJECT" $MYCHECK_RCPT < $tempfile
|
||||
fi
|
||||
(echo "$MYCHECK_SUBJECT"; cat $tempfile) | logger -p daemon.warn -i -t$0
|
||||
fi
|
||||
rm $tempfile
|
||||
}
|
||||
|
||||
## Check for tables needing an upgrade.
|
||||
# - Requires the server to be up.
|
||||
# - Is supposed to run silently in background.
|
||||
function upgrade_system_tables_if_necessary() {
|
||||
set -e
|
||||
set -u
|
||||
|
||||
logger -p daemon.info -i -t$0 "Upgrading MySQL tables if necessary."
|
||||
|
||||
# Filter all "duplicate column", "duplicate key" and "unknown column"
|
||||
# errors as the script is designed to be idempotent.
|
||||
LC_ALL=C $MYUPGRADE \
|
||||
2>&1 \
|
||||
| egrep -v '^(1|@had|ERROR (1054|1060|1061))' \
|
||||
| logger -p daemon.warn -i -t$0
|
||||
}
|
||||
|
||||
## Check for the presence of both, root accounts with and without password.
|
||||
# This might have been caused by a bug related to mysql_install_db (#418672).
|
||||
function check_root_accounts() {
|
||||
set -e
|
||||
set -u
|
||||
|
||||
logger -p daemon.info -i -t$0 "Checking for insecure root accounts."
|
||||
|
||||
ret=$( echo "SELECT count(*) FROM mysql.user WHERE user='root' and password='';" | $MYSQL --skip-column-names )
|
||||
if [ "$ret" -ne "0" ]; then
|
||||
logger -p daemon.warn -i -t$0 "WARNING: mysql.user contains $ret root accounts without password!"
|
||||
fi
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/bash
|
||||
echo "$*" 1>&2
|
File diff suppressed because it is too large
Load diff
|
@ -1,318 +0,0 @@
|
|||
Changelog for innotop and InnoDBParser:
|
||||
|
||||
2007-11-09: version 1.6.0
|
||||
|
||||
* S mode crashed on non-numeric values.
|
||||
* New user-defined columns crashed upon restart.
|
||||
* Added --color option to control terminal coloring.
|
||||
|
||||
2007-09-18: version 1.5.2
|
||||
|
||||
* Added the ability to monitor InnoDB status from a file.
|
||||
* Changed W mode to L mode; it monitors all locks, not just lock waits.
|
||||
|
||||
2007-09-16: version 1.5.1
|
||||
|
||||
* Added C (Command Summary) mode.
|
||||
* Fixed a bug in the 'avg' aggregate function.
|
||||
|
||||
2007-09-10: version 1.5.0
|
||||
|
||||
Changes:
|
||||
* Added plugin functionality.
|
||||
* Added group-by functionality.
|
||||
* Moved the configuration file to a directory.
|
||||
* Enhanced filtering and sorting on pivoted tables.
|
||||
* Many small bug fixes.
|
||||
|
||||
2007-07-16: version 1.4.3
|
||||
|
||||
Changes:
|
||||
* Added standard --version command-line option
|
||||
* Changed colors to cyan instead of blue; more visible on dark terminals.
|
||||
* Added information to the filter-choosing dialog.
|
||||
* Added column auto-completion when entering a filter expression.
|
||||
* Changed Term::ReadKey from optional to mandatory.
|
||||
* Clarified username in password prompting.
|
||||
* Ten thousand words of documentation!
|
||||
|
||||
Bugs fixed:
|
||||
* innotop crashed in W mode when InnoDB status data was truncated.
|
||||
* innotop didn't display errors in tables if debug was enabled.
|
||||
* The colored() subroutine wasn't being created in non-interactive mode.
|
||||
* Don't prompt to save password except the first time.
|
||||
|
||||
2007-05-03: version 1.4.2
|
||||
|
||||
This version contains all changes to the trunk until revision 239; some
|
||||
changes in revisions 240:250 are included.
|
||||
|
||||
MAJOR CHANGES:
|
||||
|
||||
* Quick-filters to easily filter any column in any display
|
||||
* Compatibility with MySQL 3.23 through 6.0
|
||||
* Improved error handling when a server is down, permissions denied, etc
|
||||
* Use additional SHOW INNODB STATUS information in 5.1.x
|
||||
* Make all modes use tables consistently, so they can all be edited,
|
||||
filtered, colored and sorted consistently
|
||||
* Combine V, G and S modes into S mode, with v, g, and s hot-keys
|
||||
* Let DBD driver read MySQL option files; permit connections without
|
||||
user/pass/etc
|
||||
* Compile SQL-like expressions into Perl subroutines; eliminate need to
|
||||
know Perl
|
||||
* Do not save all config data to config file, only save user's customizations
|
||||
* Rewritten and improved command-line option handling
|
||||
* Added --count, --delay, and other command-line options to support
|
||||
run-and-exit operation
|
||||
* Improve built-in variable sets
|
||||
* Improve help screen with three-part balanced-column layout
|
||||
* Simplify table-editor and improve hotkey support
|
||||
* Require Perl to have high-resolution time support (Time::HiRes)
|
||||
* Help the user choose a query to analyze or kill
|
||||
* Enable EXPLAIN, show-full-query in T mode just like Q mode
|
||||
* Let data-extraction access current, previous and incremental data sets
|
||||
all at once
|
||||
|
||||
MINOR CHANGES:
|
||||
|
||||
* Column stabilizing for Q mode
|
||||
* New color rules for T, Q, W modes
|
||||
* Apply slave I/O filter to Q mode
|
||||
* Improve detection of server version and other meta-data
|
||||
* Make connection timeout a config variable
|
||||
* Improve cross-version-compatible SQL syntax
|
||||
* Get some information from the DBD driver instead of asking MySQL for it
|
||||
* Improved error messages
|
||||
* Improve server group creation/editing
|
||||
* Improve connection/thread killing
|
||||
* Fix broken key bindings and restore previously mapped hot-keys for
|
||||
choosing columns
|
||||
* Some documentation updates (but not nearly enough)
|
||||
* Allow the user to specify graphing char in S mode (formerly G mode)
|
||||
* Allow easy switching between variable sets in S mode
|
||||
* Bind 'n' key globally to choose the 'next' server connection
|
||||
* Bind '%' key globally to filter displayed tables
|
||||
* Allow aligning columns on the decimal place for easy readability
|
||||
* Add hide_hdr config variable to hide column headers in tables
|
||||
* Add a feature to smartly run PURGE MASTER LOGS in Replication mode
|
||||
* Enable debug mode as a globally configurable variable
|
||||
* Improve error messages when an expression or filter doesn't compile or has
|
||||
a run-time error; die on error when debug is enabled
|
||||
* Allow user-configurable delays after executing SQL (to let the server
|
||||
settle down before taking another measurement)
|
||||
* Add an expression to show how long until a transaction is finished
|
||||
* Add skip_innodb as a global config variable
|
||||
* Add '%' after percentages to help disambiguate (user-configurable)
|
||||
* Add column to M mode to help see how fast slave is catching up to master
|
||||
|
||||
BUG FIXES:
|
||||
|
||||
* T and W modes had wrong value for wait_status column
|
||||
* Error tracking on connections didn't reset when the connection recovered
|
||||
* wait_timeout on connections couldn't be set before MySQL 4.0.3
|
||||
* There was a crash on 3.23 when wiping deadlocks
|
||||
* Lettercase changes in some result sets (SHOW MASTER/SLAVE STATUS) between
|
||||
MySQL versions crashed innotop
|
||||
* Inactive connections crashed innotop upon access to DBD driver
|
||||
* set_precision did not respect user defaults for number of digits
|
||||
* --inc command-line option could not be negated
|
||||
* InnoDB status parsing was not always parsing all needed information
|
||||
* S mode (formerly G mode) could crash trying to divide non-numeric data
|
||||
* M table didn't show Slave_open_temp_tables variable; incorrect lettercase
|
||||
* DBD drivers with broken AutoCommit would crash innotop
|
||||
* Some key bindings had incorrect labels
|
||||
* Some config-file loading routines could load data for things that didn't
|
||||
exist
|
||||
* Headers printed too often in S mode
|
||||
* High-resolution time was not used even when the user had it
|
||||
* Non-interactive mode printed blank lines sometimes
|
||||
* Q-mode header and statusbar showed different QPS numbers
|
||||
* Formulas for key-cache and query-cache hit ratios were wrong
|
||||
* Mac OS "Darwin" machines were mis-identified as Microsoft Windows
|
||||
* Some multiplications crashed when given undefined input
|
||||
* The commify transformation did not check its input and could crash
|
||||
* Specifying an invalid mode on the command line or config file could crash
|
||||
innotop
|
||||
|
||||
2007-03-29: version 1.4.1
|
||||
|
||||
* More tweaks to display of connection errors.
|
||||
* Fixed a problem with skip-innodb in MySQL 5.1.
|
||||
* Fix a bug with dead connections in single-connection mode.
|
||||
* Fix a regex to allow parsing more data from truncated deadlocks.
|
||||
* Don't load active cxns from the config file if the cxn isn't defined.
|
||||
|
||||
2007-03-03: version 1.4.0
|
||||
|
||||
* Further tweak error handling and display of connection errors
|
||||
* More centralization of querying
|
||||
* Fix forking so it doesn't kill all database connections
|
||||
* Allow user to run innotop without permissions for GLOBAL variables and status
|
||||
|
||||
2007-02-11: version 1.3.6
|
||||
|
||||
* Handle some connection failures so innotop doesn't crash because of one server.
|
||||
* Enable incremental display in more modes.
|
||||
* Tweaks to colorizing, color editor, and default color rules.
|
||||
* Tweaks to default sorting rules.
|
||||
* Use prepared statements for efficiency.
|
||||
* Bug fixes and code cleanups.
|
||||
* Data storage is keyed on clock ticks now.
|
||||
|
||||
2007-02-03: version 1.3.5
|
||||
|
||||
* Bug fixes.
|
||||
* More tools for editing configuration from within innotop.
|
||||
* Filters and transformations are constrained to valid values.
|
||||
* Support for colorizing rows.
|
||||
* Sorting by multiple columns.
|
||||
* Compress headers when display is very wide.
|
||||
* Stabilize and limit column widths.
|
||||
* Check config file formats when upgrading so upgrades go smoothly.
|
||||
* Make D mode handle many connections at once.
|
||||
* Extract simple expressions from data sets in column src property.
|
||||
This makes innotop more awk-ish.
|
||||
|
||||
2007-01-16: version 1.3
|
||||
|
||||
* Readline support.
|
||||
* Can be used unattended, or in a pipe-and-filter mode
|
||||
where it outputs tab-separated data to standard output.
|
||||
* You can specify a config file on the command line.
|
||||
Config files can be marked read-only.
|
||||
* Monitor multiple servers simultaneously.
|
||||
* Server groups to help manage many servers conveniently.
|
||||
* Monitor master/slave status, and control slaves.
|
||||
* Columns can have user-defined expressions as their data sources.
|
||||
* Better configuration tools.
|
||||
* InnoDB status information is merged into SHOW VARIABLES and
|
||||
SHOW STATUS information, so you can access it all together.
|
||||
* High-precision time support in more places.
|
||||
* Lots of tweaks to make things display more readably and compactly.
|
||||
* Column transformations and filters.
|
||||
|
||||
2007-01-16: version 1.0.1
|
||||
* NOTE: innotop is now hosted at Sourceforge, in Subversion not CVS.
|
||||
The new project homepage is http://sourceforge.net/projects/innotop/
|
||||
* Tweak default T/Q mode sort columns to match what people expect.
|
||||
* Fix broken InnoDBParser.pm documentation (and hence man page).
|
||||
|
||||
2007-01-06: version 1.0
|
||||
* NOTE: innotop is now hosted at Sourceforge, in Subversion not CVS.
|
||||
The new project homepage is http://sourceforge.net/projects/innotop/
|
||||
* Prevent control characters from freaking terminal out.
|
||||
* Set timeout to keep busy servers from closing connection.
|
||||
* There is only one InnoDB insert buffer.
|
||||
* Make licenses clear and consistent.
|
||||
|
||||
2006-11-14: innotop 0.1.160, InnoDBParser version 1.69
|
||||
* Support for ANSI color on Microsoft Windows (more readable, compact
|
||||
display; thanks Gisbert W. Selke).
|
||||
* Better handling of $ENV{HOME} on Windows.
|
||||
* Added a LICENSE file to the package as per Gentoo bug:
|
||||
http://bugs.gentoo.org/show_bug.cgi?id=147600
|
||||
|
||||
2006-11-11: innotop 0.1.157, InnoDBParser version 1.69
|
||||
* Add Microsoft Windows support.
|
||||
|
||||
2006-10-19: innotop 0.1.154, InnoDBParser version 1.69
|
||||
* Add O (Open Tables) mode
|
||||
* Add some more checks to handle incomplete InnoDB status information
|
||||
|
||||
2006-09-30: innotop 0.1.152, InnoDBParser version 1.69
|
||||
* Figured out what was wrong with package $VERSION variable: it wasn't
|
||||
after the package declaration!
|
||||
|
||||
2006-09-28: innotop 0.1.152, InnoDBParser version 1.67
|
||||
* Make more efforts towards crash-resistance and tolerance of completely
|
||||
messed-up inputs. If innotop itself is broken, it is now much harder to
|
||||
tell, because it just keeps on running without complaining.
|
||||
* Fix a small bug parsing out some information and displaying it.
|
||||
|
||||
2006-09-05: innotop 0.1.149, InnoDBParser version 1.64
|
||||
* Try to find and eliminate any parsing code that assumes pattern matches
|
||||
will succeed.
|
||||
|
||||
2006-09-05: innotop 0.1.149, InnoDBParser version 1.62
|
||||
* Make innotop crash-resistant, so I can declare it STABLE finally.
|
||||
* Instead of using SQL conditional comments, detect MySQL version.
|
||||
|
||||
2006-08-22: innotop 0.1.147, InnoDBParser version 1.60
|
||||
* Fix some innotop bugs with undefined values, bad formatting etc.
|
||||
|
||||
2006-08-19: innotop 0.1.146, InnoDBParser version 1.60
|
||||
* Make innotop handle some unexpected NULL values in Q mode.
|
||||
* Add OS wait information to W mode, so it is now "everything that waits."
|
||||
* Center section captions better.
|
||||
* Make R mode more readable and compact.
|
||||
* Make InnoDBParser parse lock waits even when they've been waiting 0 secs.
|
||||
|
||||
2006-08-12: innotop 0.1.139, InnoDBParser version 1.59
|
||||
* Add more documentation
|
||||
* Tweak V mode to show more info in less space.
|
||||
* Fix a bug in G mode.
|
||||
|
||||
2006-08-10: innotop 0.1.132, InnoDBParser version 1.58
|
||||
* Handle yet more types of FK error... it will never end!
|
||||
* Handle some special cases when DEADLOCK info truncated
|
||||
* Add a bit more FK info to F mode in innotop
|
||||
* More tests added to the test suite
|
||||
|
||||
2006-08-07: innotop 0.1.131, InnoDBParser version 1.55
|
||||
* Fix another issue with configuration
|
||||
* Handle another type of FK error
|
||||
|
||||
2006-08-03: innotop 0.1.130, InnoDBParser version 1.54
|
||||
* Fix an issue loading config file
|
||||
* Add heap_no to 'D' (InnoDB Deadlock) mode to ease deadlock debugging.
|
||||
|
||||
2006-08-02: innotop 0.1.128, InnoDBParser version 1.54
|
||||
* Parse lock wait information from the TRANSACTION section.
|
||||
* Even more OS-specific parsing... pain in the butt...
|
||||
* Add 'W' (InnoDB Lock Wait) mode.
|
||||
* Fix some minor display issues with statusbar.
|
||||
|
||||
2006-08-02: innotop 0.1.125, InnoDBParser version 1.50
|
||||
* Don't try to get references to Perl built-in functions like time()
|
||||
* Handle more OS-specific variations of InnoDB status text
|
||||
* Add some more information to various places in innotop
|
||||
|
||||
2006-08-01: innotop 0.1.123, InnoDBParser version 1.47
|
||||
|
||||
* Enhance S and G modes: clear screen and re-print headers
|
||||
* Don't crash when deadlock data is truncated
|
||||
* Make Analyze mode say how to get back to whatever you came from
|
||||
* Display 'nothing to display' when there is nothing
|
||||
* Add ability to read InnoDB status text from a file (mostly helps test)
|
||||
* Add table of Wait Array Information in Row Op/Semaphore mode
|
||||
* Add table of lock information in InnoDB deadlock mode
|
||||
* Ensure new features in upgrades don't get masked by existing config files
|
||||
* Tweak default column choices for T mode
|
||||
* Enhance foreign key parsing
|
||||
* Enhance physical record and data tuple parsing
|
||||
* Enhance lock parsing (handle old-style and new-style formats)
|
||||
|
||||
2006-07-24: innotop 0.1.112, InnoDBParser version 1.36
|
||||
|
||||
* InnoDBParser enhancements for FK error messages.
|
||||
* A fix to innotop to prevent it from crashing while trying to display a FK
|
||||
error message.
|
||||
* Some minor cosmetic changes to number formatting in innotop.
|
||||
|
||||
2006-07-22: innotop 0.1.106, InnoDBParser version 1.35
|
||||
|
||||
* InnoDBParser is much more complete and accurate.
|
||||
* Tons of bug fixes.
|
||||
* Add partitions to EXPLAIN mode.
|
||||
* Enhance Q mode header, add T mode header.
|
||||
* Share some configuration variables across modes.
|
||||
* Add formatted time columns to Q, T modes.
|
||||
* Add command-line argument parsing.
|
||||
* Turn off echo when asking for password.
|
||||
* Add option to specify port when connecting.
|
||||
* Let display-optimized-query display multiple notes.
|
||||
* Lots of small improvements, such as showing more info in statusbar.
|
||||
|
||||
2006-07-02: innotop 0.1.74, InnoDBParser version 1.24
|
||||
|
||||
* Initial release for public consumption.
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
msql2mysql \- MySQL importer for msql style data.
|
||||
.SH SYNOPSIS
|
||||
msql2mysql [options]
|
||||
.SH DESCRIPTION
|
||||
This program imports old msql database files.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,129 +0,0 @@
|
|||
#
|
||||
# The MySQL database server configuration file.
|
||||
#
|
||||
# You can copy this to one of:
|
||||
# - "/etc/mysql/my.cnf" to set global options,
|
||||
# - "~/.my.cnf" to set user-specific options.
|
||||
#
|
||||
# One can use all long options that the program supports.
|
||||
# Run program with --help to get a list of available options and with
|
||||
# --print-defaults to see which it would actually understand and use.
|
||||
#
|
||||
# For explanations see
|
||||
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
|
||||
|
||||
# This will be passed to all mysql clients
|
||||
# It has been reported that passwords should be enclosed with ticks/quotes
|
||||
# escpecially if they contain "#" chars...
|
||||
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
|
||||
[client]
|
||||
port = 3306
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
|
||||
# Here is entries for some specific programs
|
||||
# The following values assume you have at least 32M ram
|
||||
|
||||
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
|
||||
[mysqld_safe]
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
nice = 0
|
||||
|
||||
[mysqld]
|
||||
#
|
||||
# * Basic Settings
|
||||
#
|
||||
user = mysql
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
port = 3306
|
||||
basedir = /usr
|
||||
datadir = /var/lib/mysql
|
||||
tmpdir = /tmp
|
||||
language = /usr/share/mysql/english
|
||||
skip-external-locking
|
||||
#
|
||||
# For compatibility to other Debian packages that still use
|
||||
# libmysqlclient10 and libmysqlclient12.
|
||||
old_passwords = 1
|
||||
#
|
||||
# Instead of skip-networking the default is now to listen only on
|
||||
# localhost which is more compatible and is not less secure.
|
||||
bind-address = 127.0.0.1
|
||||
#
|
||||
# * Fine Tuning
|
||||
#
|
||||
key_buffer = 16M
|
||||
max_allowed_packet = 16M
|
||||
thread_stack = 128K
|
||||
thread_cache_size = 8
|
||||
# This replaces the startup script and checks MyISAM tables if needed
|
||||
# the first time they are touched
|
||||
myisam-recover = BACKUP
|
||||
#max_connections = 100
|
||||
#table_cache = 64
|
||||
#thread_concurrency = 10
|
||||
#
|
||||
# * Query Cache Configuration
|
||||
#
|
||||
query_cache_limit = 1M
|
||||
query_cache_size = 16M
|
||||
#
|
||||
# * Logging and Replication
|
||||
#
|
||||
# Both location gets rotated by the cronjob.
|
||||
# Be aware that this log type is a performance killer.
|
||||
# As of 5.1 you can enable the at runtime!
|
||||
#log_type = FILE
|
||||
#general_log = /var/log/mysql/mysql.log
|
||||
#
|
||||
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
|
||||
#
|
||||
# Here you can see queries with especially long duration
|
||||
#log_slow_queries = /var/log/mysql/mysql-slow.log
|
||||
#long_query_time = 2
|
||||
#log-queries-not-using-indexes
|
||||
#
|
||||
# The following can be used as easy to replay backup logs or for replication.
|
||||
# note: if you are setting up a replication slave, see README.Debian about
|
||||
# other settings you may need to change.
|
||||
#server-id = 1
|
||||
#log_bin = /var/log/mysql/mysql-bin.log
|
||||
expire_logs_days = 10
|
||||
max_binlog_size = 100M
|
||||
#binlog_do_db = include_database_name
|
||||
#binlog_ignore_db = include_database_name
|
||||
#
|
||||
# * InnoDB
|
||||
#
|
||||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
|
||||
# Read the manual for more InnoDB related options. There are many!
|
||||
#
|
||||
# * Security Features
|
||||
#
|
||||
# Read the manual, too, if you want chroot!
|
||||
# chroot = /var/lib/mysql/
|
||||
#
|
||||
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
|
||||
#
|
||||
# ssl-ca=/etc/mysql/cacert.pem
|
||||
# ssl-cert=/etc/mysql/server-cert.pem
|
||||
# ssl-key=/etc/mysql/server-key.pem
|
||||
|
||||
|
||||
|
||||
[mysqldump]
|
||||
quick
|
||||
quote-names
|
||||
max_allowed_packet = 16M
|
||||
|
||||
[mysql]
|
||||
#no-auto-rehash # faster start of mysql but no tab completition
|
||||
|
||||
[isamchk]
|
||||
key_buffer = 16M
|
||||
|
||||
#
|
||||
# * IMPORTANT: Additional settings that can override those from this file!
|
||||
# The files must end with '.cnf', otherwise they'll be ignored.
|
||||
#
|
||||
!includedir /etc/mysql/conf.d/
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
my_print_defaults \- MySQL helper script that prints defaults.
|
||||
.SH SYNOPSIS
|
||||
my_print_defaults [options]
|
||||
.SH DESCRIPTION
|
||||
Prints all arguments that is give to some program using the default files.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
myisam_ftdump \- Dumps full text tables.
|
||||
.SH SYNOPSIS
|
||||
myisam_ftdump [options]
|
||||
.SH DESCRIPTION
|
||||
Dumps information and contents of full text tables.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,17 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
myisamchk \- Checks MySQL myisam type databases.
|
||||
.SH SYNOPSIS
|
||||
myisamchk [options]
|
||||
.SH DESCRIPTION
|
||||
Description, check and repair of ISAM tables.
|
||||
Used without options all tables on the command will be checked for errors
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
myisamlog \- MySQL helper script.
|
||||
.SH SYNOPSIS
|
||||
myisamlog [options]
|
||||
.SH DESCRIPTION
|
||||
Function unknown. Mail to ch@debian.org.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,19 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
myisampack \- Compresses MySQL database files.
|
||||
.SH SYNOPSIS
|
||||
myisampack [options]
|
||||
.SH DESCRIPTION
|
||||
Pack a MyISAM-table to take much less space.
|
||||
Keys are not updated, you must run myisamchk -rq on the datafile
|
||||
afterwards to update the keys.
|
||||
You should give the .MYI file as the filename argument.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,2 +0,0 @@
|
|||
W: mysql-dfsg source: maintainer-script-lacks-debhelper-token debian/percona-xtradb-server.postinst
|
||||
W: percona-xtradb-server: possible-bashism-in-maintainer-script postinst:68 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
|
|
@ -1,17 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlconfig \- MySQL compile settings.
|
||||
.SH SYNOPSIS
|
||||
mysqlconfig [options]
|
||||
.SH DESCRIPTION
|
||||
This program is only useful for people who want to compile agains
|
||||
libmysqlclient.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,17 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_convert_table_format \- MySQL table converter.
|
||||
.SH SYNOPSIS
|
||||
mysql_convert_table_format [options]
|
||||
.SH DESCRIPTION
|
||||
Conversion of a MySQL tables to other table types.
|
||||
If no tables has been specifed, all tables in the database will be converted.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,18 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_find_rows \- MySQL shell skript for searching in update logs.
|
||||
.SH SYNOPSIS
|
||||
mysql_find_rows [options]
|
||||
.SH DESCRIPTION
|
||||
Prints all SQL queries that matches a regexp or contains a 'use
|
||||
database' or 'set ..' command to stdout. A SQL query may contain
|
||||
newlines. This is useful to find things in a MySQL update log.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,18 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_fix_extensions \- Corrects MySQL database file names.
|
||||
.SH SYNOPSIS
|
||||
mysql_fix_extensions <datadir>
|
||||
.SH DESCRIPTION
|
||||
Makes .frm lowercase and .MYI/MYD/ISM/ISD uppercase
|
||||
useful when datafiles are copied from windows.
|
||||
Does not work with RAID, with InnoDB or BDB tables.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (8)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_install_db \- MySQL helper program.
|
||||
.SH SYNOPSIS
|
||||
mysql_install_db [options]
|
||||
.SH DESCRIPTION
|
||||
This program is normally not needed by any user.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,17 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_secure_installation \- Secures the MySQL access control lists.
|
||||
.SH SYNOPSIS
|
||||
mysql_secure_installation [options]
|
||||
.SH DESCRIPTION
|
||||
This interactive programm suggests changes like removing anonymous users that
|
||||
are supposed to make your installation more secure.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (8)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,23 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_setpermission \- Adds MySQL users or changes passwords.
|
||||
.SH SYNOPSIS
|
||||
mysql_setpermission [options]
|
||||
.SH DESCRIPTION
|
||||
The permission setter is a little program which can help you add users
|
||||
or databases or change passwords in MySQL. Keep in mind that we don't
|
||||
check permissions which already been set in MySQL. So if you can't
|
||||
connect to MySQL using the permission you just added, take a look at
|
||||
the permissions which have already been set in MySQL.
|
||||
|
||||
The permission setter first reads your .my.cnf file in your Home
|
||||
directory if it exists.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,322 +0,0 @@
|
|||
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.if n .na
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "MYSQL_TABLEINFO 1"
|
||||
.TH MYSQL_TABLEINFO 1 "2003-04-05" "perl v5.8.0" "User Contributed Perl Documentation"
|
||||
.SH "NAME"
|
||||
mysql_tableinfo \- creates and populates information tables with
|
||||
the output of SHOW DATABASES, SHOW TABLES (or SHOW TABLE STATUS),
|
||||
SHOW COLUMNS and SHOW INDEX.
|
||||
.PP
|
||||
This is version 1.1.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
.Vb 1
|
||||
\& mysql_tableinfo [OPTIONS] database_to_write [database_like_wild] [table_like_wild]
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 2
|
||||
\& Do not backquote (``) database_to_write,
|
||||
\& and do not quote ('') database_like_wild or table_like_wild
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& Examples:
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& mysql_tableinfo info
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& mysql_tableinfo info this_db
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& mysql_tableinfo info %a% b%
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& mysql_tableinfo info --clear-only
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 1
|
||||
\& mysql_tableinfo info --col --idx --table-status
|
||||
.Ve
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
mysql_tableinfo asks a MySQL server information about its
|
||||
databases, tables, table columns and index, and stores this
|
||||
in tables called `db`, `tbl` (or `tbl_status`), `col`, `idx`
|
||||
(with an optional prefix specified with \-\-prefix).
|
||||
After that, you can query these information tables, for example
|
||||
to build your admin scripts with \s-1SQL\s0 queries, like
|
||||
.PP
|
||||
\&\s-1SELECT\s0 \s-1CONCAT\s0(\*(L"\s-1CHECK\s0 \s-1TABLE\s0 \*(R",`database`,\*(L".\*(R",`table`,\*(L" \s-1EXTENDED\s0;\*(R")
|
||||
\&\s-1FROM\s0 info.tbl \s-1WHERE\s0 ... ;
|
||||
.PP
|
||||
as people usually do with some other \s-1RDBMS\s0
|
||||
(note: to increase the speed of your queries on the info tables,
|
||||
you may add some index on them).
|
||||
.PP
|
||||
The database_like_wild and table_like_wild instructs the program
|
||||
to gather information only about databases and tables
|
||||
whose names match these patterns. If the info
|
||||
tables already exist, their rows matching the patterns are simply
|
||||
deleted and replaced by the new ones. That is,
|
||||
old rows not matching the patterns are not touched.
|
||||
If the database_like_wild and table_like_wild arguments
|
||||
are not specified on the command-line they default to \*(L"%\*(R".
|
||||
.PP
|
||||
The program :
|
||||
.PP
|
||||
\&\- does \s-1CREATE\s0 \s-1DATABASE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write
|
||||
where database_to_write is the database name specified on the command\-line.
|
||||
.PP
|
||||
\&\- does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`db`
|
||||
.PP
|
||||
\&\- fills database_to_write.`db` with the output of
|
||||
\&\s-1SHOW\s0 \s-1DATABASES\s0 \s-1LIKE\s0 database_like_wild
|
||||
.PP
|
||||
\&\- does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`tbl`
|
||||
(respectively database_to_write.`tbl_status`
|
||||
if the \-\-tbl\-status option is on)
|
||||
.PP
|
||||
\&\- for every found database,
|
||||
fills database_to_write.`tbl` (respectively database_to_write.`tbl_status`)
|
||||
with the output of
|
||||
\&\s-1SHOW\s0 \s-1TABLES\s0 \s-1FROM\s0 found_db \s-1LIKE\s0 table_like_wild
|
||||
(respectively \s-1SHOW\s0 \s-1TABLE\s0 \s-1STATUS\s0 \s-1FROM\s0 found_db \s-1LIKE\s0 table_like_wild)
|
||||
.PP
|
||||
\&\- if the \-\-col option is on,
|
||||
* does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`col`
|
||||
* for every found table,
|
||||
fills database_to_write.`col` with the output of
|
||||
\s-1SHOW\s0 \s-1COLUMNS\s0 \s-1FROM\s0 found_tbl \s-1FROM\s0 found_db
|
||||
.PP
|
||||
\&\- if the \-\-idx option is on,
|
||||
* does \s-1CREATE\s0 \s-1TABLE\s0 \s-1IF\s0 \s-1NOT\s0 \s-1EXISTS\s0 database_to_write.`idx`
|
||||
* for every found table,
|
||||
fills database_to_write.`idx` with the output of
|
||||
\s-1SHOW\s0 \s-1INDEX\s0 \s-1FROM\s0 found_tbl \s-1FROM\s0 found_db
|
||||
.PP
|
||||
Some options may modify this general scheme (see below).
|
||||
.PP
|
||||
As mentioned, the contents of the info tables are the output of
|
||||
\&\s-1SHOW\s0 commands. In fact the contents are slightly more complete :
|
||||
.PP
|
||||
\&\- the `tbl` (or `tbl_status`) info table
|
||||
has an extra column which contains the database name,
|
||||
.PP
|
||||
\&\- the `col` info table
|
||||
has an extra column which contains the table name,
|
||||
and an extra column which contains, for each described column,
|
||||
the number of this column in the table owning it (this extra column
|
||||
is called `Seq_in_table`). `Seq_in_table` makes it possible for you
|
||||
to retrieve your columns in sorted order, when you are querying
|
||||
the `col` table.
|
||||
.PP
|
||||
\&\- the `index` info table
|
||||
has an extra column which contains the database name.
|
||||
.PP
|
||||
Caution: info tables contain certain columns (e.g.
|
||||
Database, Table, Null...) whose names, as they are MySQL reserved words,
|
||||
need to be backquoted (`...`) when used in \s-1SQL\s0 statements.
|
||||
.PP
|
||||
Caution: as information fetching and info tables filling happen at the
|
||||
same time, info tables may contain inaccurate information about
|
||||
themselves.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\-\-clear" 4
|
||||
.IX Item "--clear"
|
||||
Does \s-1DROP\s0 \s-1TABLE\s0 on the info tables (only those that the program is
|
||||
going to fill, for example if you do not use \-\-col it won't drop
|
||||
the `col` table) and processes normally. Does not drop database_to_write.
|
||||
.IP "\-\-clear\-only" 4
|
||||
.IX Item "--clear-only"
|
||||
Same as \-\-clear but exits after the DROPs.
|
||||
.IP "\-\-col" 4
|
||||
.IX Item "--col"
|
||||
Adds columns information (into table `col`).
|
||||
.IP "\-\-idx" 4
|
||||
.IX Item "--idx"
|
||||
Adds index information (into table `idx`).
|
||||
.IP "\-\-prefix prefix" 4
|
||||
.IX Item "--prefix prefix"
|
||||
The info tables are named from the concatenation of prefix and,
|
||||
respectively, db, tbl (or tbl_status), col, idx. Do not quote ('')
|
||||
or backquote (``) prefix.
|
||||
.IP "\-q, \-\-quiet" 4
|
||||
.IX Item "-q, --quiet"
|
||||
Does not warn you about what the script is going to do (\s-1DROP\s0 \s-1TABLE\s0 etc)
|
||||
and does not ask for a confirmation before starting.
|
||||
.IP "\-\-tbl\-status" 4
|
||||
.IX Item "--tbl-status"
|
||||
Instead of using \s-1SHOW\s0 \s-1TABLES\s0, uses \s-1SHOW\s0 \s-1TABLE\s0 \s-1STATUS\s0
|
||||
(much more complete information, but slower).
|
||||
.IP "\-\-help" 4
|
||||
.IX Item "--help"
|
||||
Display helpscreen and exit
|
||||
.IP "\-u, \-\-user=#" 4
|
||||
.IX Item "-u, --user=#"
|
||||
user for database login if not current user. Give a user
|
||||
who has sufficient privileges (\s-1CREATE\s0, ...).
|
||||
.IP "\-p, \-\-password=# (INSECURE)" 4
|
||||
.IX Item "-p, --password=# (INSECURE)"
|
||||
password to use when connecting to server.
|
||||
WARNING: Providing a password on command line is insecure as it is visible through /proc to anyone for a short time.
|
||||
.IP "\-h, \-\-host=#" 4
|
||||
.IX Item "-h, --host=#"
|
||||
host to connect to
|
||||
.IP "\-P, \-\-port=#" 4
|
||||
.IX Item "-P, --port=#"
|
||||
port to use when connecting to server
|
||||
.IP "\-S, \-\-socket=#" 4
|
||||
.IX Item "-S, --socket=#"
|
||||
\&\s-1UNIX\s0 domain socket to use when connecting to server
|
||||
.SH "WARRANTY"
|
||||
.IX Header "WARRANTY"
|
||||
This software is free and comes without warranty of any kind. You
|
||||
should never trust backup software without studying the code yourself.
|
||||
Study the code inside this script and only rely on it if \fIyou\fR believe
|
||||
that it does the right thing for you.
|
||||
.Sp
|
||||
Patches adding bug fixes, documentation and new features are welcome.
|
||||
.SH "TO DO"
|
||||
.IX Header "TO DO"
|
||||
Use extended inserts to be faster (for servers with many databases
|
||||
or tables). But to do that, must care about net\-buffer\-length.
|
||||
.SH "AUTHOR"
|
||||
.IX Header "AUTHOR"
|
||||
2002\-06\-18 Guilhem Bichot (guilhem.bichot@mines\-paris.org)
|
||||
.Sp
|
||||
And all the authors of mysqlhotcopy, which served as a model for
|
||||
the structure of the program.
|
|
@ -1,20 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysql_waitpid \- Waits a specified amount of seconds for a PID to terminate.
|
||||
.SH SYNOPSIS
|
||||
mysql_waitpid [options] <pid> <seconds>
|
||||
.SH DESCRIPTION
|
||||
Description: Waits for a program, which program id is #pid, to
|
||||
terminate within #time seconds. If the program terminates within
|
||||
this time, or if the #pid no longer exists, value 0 is returned.
|
||||
Otherwise 1 is returned. Both #pid and #time must be positive
|
||||
integer arguments.
|
||||
|
||||
See mysql_waitpid for options.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,17 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlbinlog \- Dumps MySQL binary logs.
|
||||
.SH SYNOPSIS
|
||||
mysqlbinlog [options]
|
||||
.SH DESCRIPTION
|
||||
Dumps a MySQL binary log in a format usable for viewing or for pipeing to
|
||||
the mysql command line client
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,14 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlbug \- MySQL bug reporting tool.
|
||||
.SH SYNOPSIS
|
||||
mysqlbug [options]
|
||||
.SH DESCRIPTION
|
||||
Interactive bug reporting tool. Use reportbug on Debian systems.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,28 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlcheck \- MySQL program for repairing, checking and optimizing tables.
|
||||
.SH SYNOPSIS
|
||||
mysqlcheck | mysqlanalyze | mysqloptimize [options]
|
||||
.SH DESCRIPTION
|
||||
This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)
|
||||
or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be
|
||||
used same time. It works on MyISAM and in some cases on BDB tables.
|
||||
Please consult the MySQL manual for latest information about the
|
||||
above. The options -c,-r,-a and -o are exclusive to each other, which
|
||||
means that the last option will be used, if several was specified.
|
||||
|
||||
The option -c will be used by default, if none was specified. You
|
||||
can change the default behavior by making a symbolic link, or
|
||||
copying this file somewhere with another name, the alternatives are:
|
||||
mysqlrepair: The default option will be -r
|
||||
mysqlanalyze: The default option will be -a
|
||||
mysqloptimize: The default option will be -o
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (8)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,2 +0,0 @@
|
|||
[mysqld_safe]
|
||||
syslog
|
|
@ -1,50 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqldumpslow \- Parse and summarize the MySQL slow query log.
|
||||
.SH SYNOPSIS
|
||||
mysqldumpslow [options]
|
||||
.SH DESCRIPTION
|
||||
This program parses and summarizes a 'slow query log'.
|
||||
|
||||
.TP
|
||||
\fB\-v\fR
|
||||
verbose
|
||||
.TP
|
||||
\fB\-d\fR
|
||||
debug
|
||||
.TP
|
||||
\fB\-s=WORD\fR
|
||||
what to sort by (t, at, l, al, r, ar etc)
|
||||
.TP
|
||||
\fB\-r\fR
|
||||
reverse the sort order (largest last instead of first)
|
||||
.TP
|
||||
\fB\-t=NUMBER\fR
|
||||
just show the top n queries
|
||||
.TP
|
||||
\fB\-a\fR
|
||||
don't abstract all numbers to N and strings to 'S'
|
||||
.TP
|
||||
\fB\-n=NUMBER\fR
|
||||
abstract numbers with at least n digits within names
|
||||
.TP
|
||||
\fB\-g=WORD\fR
|
||||
grep: only consider stmts that include this string
|
||||
.TP
|
||||
\fB\-h=WORD\fR
|
||||
hostname of db server for *-slow.log filename (can be wildcard)
|
||||
.TP
|
||||
\fB\-i=WORD\fR
|
||||
name of server instance (if using mysql.server startup script)
|
||||
.TP
|
||||
\fB\-l\fR
|
||||
don't subtract lock time from total time
|
||||
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org> based on
|
||||
the commends in the code.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,20 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlimport \- Imports text files with MySQL database queries.
|
||||
.SH SYNOPSIS
|
||||
mysqlimport [options]
|
||||
.SH DESCRIPTION
|
||||
Loads tables from text files in various formats. The base name of the
|
||||
text file must be the name of the table that should be used.
|
||||
If one uses sockets to connect to the MySQL server, the server will open and
|
||||
read the text file directly. In other cases the client will open the text
|
||||
file. The SQL command 'LOAD DATA INFILE' is used to import the rows.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,49 +0,0 @@
|
|||
.TH mysql 1 "March 2005" "MySQL 4.1" "MySQL database"
|
||||
.SH NAME
|
||||
mysqlmanager \- Manages instances of MySQL server.
|
||||
.SH SYNOPSIS
|
||||
.B mysqlmanager
|
||||
[\fIOPTIONS\fR]
|
||||
.SH DESCRIPTION
|
||||
Manages instances of MySQL server.
|
||||
.TP
|
||||
\-?, \fB\-\-help\fR
|
||||
Display this help and exit.
|
||||
.TP
|
||||
\fB\-P\fR, \fB\-\-port=\fR#
|
||||
Port number to listen on.
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-log\fR=\fIname\fR
|
||||
Path to log file.
|
||||
.TP
|
||||
\fB\-b\fR, \fB\-\-bind\-address=\fR#
|
||||
Address to listen on.
|
||||
.HP
|
||||
\fB\-B\fR, \fB\-\-tcp\-backlog=\fR# Size of TCP/IP listen queue.
|
||||
.HP
|
||||
\fB\-g\fR, \fB\-\-greeting\fR=\fIname\fR Set greeting on connect.
|
||||
.TP
|
||||
\fB\-m\fR, \fB\-\-max\-command\-len=\fR#
|
||||
Maximum command length.
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-one\-thread\fR
|
||||
Use one thread ( for debugging).
|
||||
.TP
|
||||
\fB\-C\fR, \fB\-\-connect\-retries=\fR#
|
||||
Number of attempts to establish MySQL connection.
|
||||
.TP
|
||||
\fB\-p\fR, \fB\-\-password\-file\fR=\fIname\fR
|
||||
Password file for manager.
|
||||
.HP
|
||||
\fB\-f\fR, \fB\-\-pid\-file\fR=\fIname\fR Pid file to use.
|
||||
.TP
|
||||
\fB\-V\fR, \fB\-\-version\fR
|
||||
Output version information and exit.
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B mysqlmanager
|
||||
is available in the package mysql-doc-4.1 or on the MySQL
|
||||
homepage www.mysql.com.
|
||||
.SH AUTHOR
|
||||
This manpage was created by Christian Hammers <ch@debian.org>
|
||||
using help2man.
|
File diff suppressed because it is too large
Load diff
|
@ -1,180 +0,0 @@
|
|||
.TH "mysqlreport" "1" "2.5 2006-09-01 (docrev 2006-05-19)" "Daniel Nichter" "MYSQL"
|
||||
.SH "NAME"
|
||||
.LP
|
||||
mysqlreport \- Makes a friendly report of important MySQL status values
|
||||
.SH "SYNTAX"
|
||||
.LP
|
||||
mysqlreport [\fIoptions\fP]
|
||||
.SH "DESCRIPTION"
|
||||
.LP
|
||||
mysqlreport makes a friendly report of important MySQL status values. Actually,
|
||||
it makes a friendly report of nearly every status value from SHOW STATUS.
|
||||
Unlike SHOW STATUS which simply dumps over 100 values to screen in one long
|
||||
list, mysqlreport interprets and formats the values and presents the basic
|
||||
values and many more inferred values in a human\-readable format. Numerous
|
||||
example reports are available at the mysqlreport web page at
|
||||
http://hackmysql.com/mysqlreport.
|
||||
|
||||
The benefit of mysqlreport is that it allows you to very quickly see a wide
|
||||
array of performance indicators for your MySQL server which would otherwise
|
||||
need to be calculated by hand from all the various SHOW STATUS values. For
|
||||
example, the Index Read Ratio is an important value but it's not present in
|
||||
SHOW STATUS; it's an inferred value (the ratio of Key_reads to
|
||||
Key_read_requests).
|
||||
|
||||
This documentation outlines all the command line options in mysqlreport, most
|
||||
of which control which reports are printed. This document does not address
|
||||
how to interpret these reports; that topic is covered in the document Guide
|
||||
To Understanding mysqlreport at http://hackmysql.com/mysqlreportguide.
|
||||
|
||||
.SH "OPTIONS"
|
||||
Technically, command line options are in the form \-\-option, but \-option works
|
||||
too. All options can be abbreviated if the abbreviation is unique. For example,
|
||||
option \-\-host can be abbreviated \-\-ho but not \-\-h because \-\-h is ambiguous: it
|
||||
could mean \-\-host or \-\-help.
|
||||
|
||||
.LP
|
||||
|
||||
.TP
|
||||
\fB\-\-help\fR
|
||||
Output help information and exit.
|
||||
|
||||
.TP
|
||||
\fB\-\-user USER\fR
|
||||
|
||||
.TP
|
||||
\fB\-\-password\fR
|
||||
As of version 2.3 \-\-password can take the password on the
|
||||
command line like "\-\-password FOO". Using \-\-password
|
||||
alone without giving a password on the command line
|
||||
causes mysqlreport to prompt for a password.
|
||||
|
||||
.TP
|
||||
\fB\-\-host ADDRESS\fR
|
||||
|
||||
.TP
|
||||
\fB\-\-port PORT\fR
|
||||
|
||||
.TP
|
||||
\fB\-\-socket SOCKET\fR
|
||||
|
||||
.TP
|
||||
\fB\-\-no\-mycnf\fR
|
||||
\-\-no\-mycnf makes mysqlreport not read ~/.my.cnf which it does by default
|
||||
otherwise. \-\-user and \-\-password always override values from ~/.my.cnf.
|
||||
|
||||
.TP
|
||||
\fB\-\-dtq\fR
|
||||
Print Distribution of Total Queries (DTQ) report (under
|
||||
Total in Questions report). Queries (or Questions) can
|
||||
be divided into four main areas: DMS (see \-\-dms below),
|
||||
Com_ (see \-\-com below), COM_QUIT (see COM_QUIT and
|
||||
Questions at http://hackmysql.com/com_quit), and
|
||||
Unknown. \-\-dtq lists the number of queries in each of
|
||||
these areas in descending order.
|
||||
|
||||
.TP
|
||||
\fB\-\-dms\fR
|
||||
Print Data Manipulation Statements (DMS) report (under
|
||||
DMS in Questions report). DMS are those from the MySQL
|
||||
manual section 13.2. Data Manipulation Statements.
|
||||
(Currently, mysqlreport considers only SELECT, INSERT,
|
||||
REPLACE, UPDATE, and DELETE.) Each DMS is listed in
|
||||
descending order by count.
|
||||
|
||||
.TP
|
||||
\fB\-\-com N\fR
|
||||
Print top N number of non\-DMS Com_ status values in
|
||||
descending order (after DMS in Questions report). If N
|
||||
is not given, default is 3. Such non\-DMS Com_ values
|
||||
include Com_change_db, Com_show_tables, Com_rollback,
|
||||
etc.
|
||||
|
||||
.TP
|
||||
\fB\-\-sas\fR
|
||||
Print report for Select_ and Sort_ status values (after
|
||||
Questions report). See MySQL Select and Sort Status
|
||||
Variables at http://hackmysql.com/selectandsort.
|
||||
|
||||
.TP
|
||||
\fB\-\-tab\fR
|
||||
Print Threads, Aborted, and Bytes status reports (after
|
||||
Created temp report). As of mysqlreport v2.3 the
|
||||
Threads report reports on all Threads_ status values.
|
||||
|
||||
.TP
|
||||
\fB\-\-qcache\fR
|
||||
Print Query Cache report.
|
||||
.TP
|
||||
\fB\-\-all\fR
|
||||
Equivalent to "\-\-dtq \-\-dms \-\-com 3 \-\-sas \-\-qcache".
|
||||
(Notice \-\-tab is not invoked by \-\-all.)
|
||||
|
||||
.TP
|
||||
\fB\-\-infile FILE\fR
|
||||
Instead of getting SHOW STATUS values from MySQL, read
|
||||
values from FILE. FILE is often a copy of the output of
|
||||
SHOW STATUS including formatting characters (|, +, \-).
|
||||
mysqlreport expects FILE to have the format
|
||||
" value number " where value is only alpha and
|
||||
underscore characters (A\-Z and _) and number is a
|
||||
positive integer. Anything before, between, or after
|
||||
value and number is ignored. mysqlreport also needs
|
||||
the following MySQL server variables: version,
|
||||
table_cache, max_connections, key_buffer_size,
|
||||
query_cache_size. These values can be specified in
|
||||
INFILE in the format "name = value" where name is one
|
||||
of the aforementioned server variables and value is a
|
||||
positive integer with or without a trailing M and
|
||||
possible periods (for version). For example, to specify
|
||||
an 18M key_buffer_size: key_buffer_size = 18M. Or, a
|
||||
256 table_cache: table_cache = 256. The M implies
|
||||
Megabytes not million, so 18M means 18,874,368 not
|
||||
18,000,000. If these server variables are not specified
|
||||
the following defaults are used (respectively) which
|
||||
may cause strange values to be reported: 0.0.0, 64,
|
||||
100, 8M, 0.
|
||||
|
||||
.TP
|
||||
\fB\-\-outfile FILE\fR
|
||||
After printing the report to screen, print the report
|
||||
to FILE too. Internally, mysqlreport always writes the
|
||||
report to a temp file first: /tmp/mysqlreport.PID on
|
||||
*nix, c:\mysqlreport.PID on Windows (PID is the
|
||||
script's process ID). Then it prints the temp file to
|
||||
screen. Then if \-\-outfile is specified, the temp file
|
||||
is copied to OUTFILE. After \-\-email (below), the temp
|
||||
file is deleted.
|
||||
|
||||
.TP
|
||||
\fB\-\-email ADDRESS\fR
|
||||
After printing the report to screen, email the report
|
||||
to ADDRESS. This option requires sendmail in
|
||||
/usr/sbin/, therefore it does not work on Windows.
|
||||
/usr/sbin/sendmail can be a sym link to qmail, for
|
||||
example, or any MTA that emulates sendmail's \-t
|
||||
command line option and operation. The FROM: field is
|
||||
"mysqlreport", SUBJECT: is "MySQL status report".
|
||||
|
||||
.TP
|
||||
\fB\-\-flush\-status\fR
|
||||
Execute a "FLUSH STATUS;" after generating the reports.
|
||||
If you do not have permissions in MySQL to do this an
|
||||
error from DBD::mysql::st will be printed after the
|
||||
reports.
|
||||
|
||||
.SH "AUTHORS"
|
||||
.LP
|
||||
Daniel Nichter
|
||||
|
||||
If mysqlreport breaks, send me a message from
|
||||
http://hackmysql.com/feedback
|
||||
with the error.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.LP
|
||||
mytop(1)
|
||||
.LP
|
||||
The comprehensive Guide To Understanding mysqlreport at
|
||||
http://hackmysql.com/mysqlreportguide.
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
mysqltest \- Regressiontest program for MySQL.
|
||||
.SH SYNOPSIS
|
||||
mysqltest [options]
|
||||
.SH DESCRIPTION
|
||||
Runs a test against the mysql server and compares output with a results file.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,19 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
myisampack \- Compresses MySQL database files.
|
||||
.SH SYNOPSIS
|
||||
myisampack [options]
|
||||
.SH DESCRIPTION
|
||||
Pack a ISAM-table to take much smaller space
|
||||
Keys are not updated, so you must run isamchk -rq on any table
|
||||
that has keys after you have compressed it
|
||||
You should give the .ISM file as the filename argument
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
resolve_stack_dump \- MySQL helper program for reporting bugs.
|
||||
.SH SYNOPSIS
|
||||
resolve_stack_dump [options]
|
||||
.SH DESCRIPTION
|
||||
Resolve numeric stack strace dump into symbols.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
|
@ -1,16 +0,0 @@
|
|||
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
|
||||
.SH NAME
|
||||
resolveip \- MySQL helper program to retrive IP addresses.
|
||||
.SH SYNOPSIS
|
||||
resolveip [options]
|
||||
.SH DESCRIPTION
|
||||
Get hostname based on IP-address or IP-address based on hostname.
|
||||
|
||||
For more information start the program with '--help'.
|
||||
.SH "SEE ALSO"
|
||||
mysql (1), mysqld (1)
|
||||
.SH AUTHOR
|
||||
This manpage was written by Christian Hammers <ch@debian.org>.
|
||||
|
||||
MySQL is available at http://www.mysql.com/.
|
||||
.\" end of man page
|
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
4
|
|
@ -1,118 +0,0 @@
|
|||
Source: percona-xtradb-dfsg-5.1
|
||||
Section: misc
|
||||
Priority: optional
|
||||
Maintainer: Percona SQL Development Team <mysql-dev@percona.com>
|
||||
Uploaders: Aleksandr Kuzminsky <aleksandr.kuzminsky@percona.com>
|
||||
Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper (>= 4.1.16), file (>= 3.28-1), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), libreadline5-dev | libreadline-dev, psmisc, po-debconf, chrpath, automake1.9, doxygen, gs, dpatch, gawk, bison, lsb-release, fakeroot
|
||||
Standards-Version: 3.8.0
|
||||
Homepage: http://www.percona.com/
|
||||
Vcs-Browser: http://bazaar.launchpad.net/~percona-dev/percona-xtradb/release-1.0/files
|
||||
Vcs-Bzr: bzr+ssh://bazaar.launchpad.net/~percona-dev/percona-xtradb/release-1.0/
|
||||
|
||||
Package: libpercona-xtradb-client16
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Depends: percona-xtradb-common (>= ${source:Version}), ${shlibs:Depends}
|
||||
Description: Percona SQL database client library
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes the client library.
|
||||
|
||||
Package: libpercona-xtradb-client15-dev
|
||||
Architecture: all
|
||||
Section: libdevel
|
||||
Depends: libpercona-xtradb-client-dev (>= ${source:Version})
|
||||
Description: Percona SQL database development files - empty transitional package
|
||||
This is an empty package that depends on libpercona-xtradb-client-dev to ease the
|
||||
transition for packages with versioned build-deps on libpercona-xtradb-client15-dev.
|
||||
|
||||
Package: libpercona-xtradb-client-dev
|
||||
Architecture: any
|
||||
Section: libdevel
|
||||
Depends: libpercona-xtradb-client16 (>= ${source:Version}), zlib1g-dev, , ${shlibs:Depends}
|
||||
Conflicts: libmysqlclient14-dev, libmysqlclient12-dev, libmysqlclient10-dev, libmysqlclient15-dev, libmysqlclient16-dev
|
||||
Replaces: libmysqlclient14-dev, libmysqlclient12-dev, libmysqlclient10-dev, libmysqlclient15-dev, libmysqlclient16-dev
|
||||
Description: Percona SQL database development files
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes development libraries and header files.
|
||||
|
||||
Package: percona-xtradb-common
|
||||
Section: database
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Conflicts: mysql-common-4.1, mysql-common-5.0, mysql-common-5.1, mysql-common
|
||||
Provides: mysql-common
|
||||
Replaces: mysql-common-4.1, mysql-common-5.0, mysql-common-5.1, mysql-common
|
||||
Description: Percona SQL database common files (e.g. /etc/mysql/my.cnf)
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes files needed by all versions of the client library
|
||||
(e.g. /etc/mysql/my.cnf).
|
||||
|
||||
Package: percona-xtradb-client-5.1
|
||||
Architecture: any
|
||||
Depends: debianutils (>=1.6), libdbi-perl, percona-xtradb-common (>= ${source:Version}), libpercona-xtradb-client16 (>= ${source:Version}), ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}
|
||||
Provides: virtual-mysql-client, mysql-client, mysql-client-4.1, percona-xtradb-client, percona-xtradb-client-5.1
|
||||
Conflicts: mysql-client (<< ${source:Version}), mysql-client-5.0, mysql-client-5.1, percona-xtradb-client-5.0
|
||||
Replaces: mysql-client (<< ${source:Version}), mysql-client-5.0, mysql-client-5.1, percona-xtradb-client-5.0
|
||||
Description: Percona SQL database client binaries
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes the client binaries and the additional tools
|
||||
innotop and mysqlreport.
|
||||
|
||||
Package: percona-xtradb-server-5.1
|
||||
Architecture: any
|
||||
Suggests: tinyca
|
||||
Recommends: mailx, libhtml-template-perl
|
||||
Pre-Depends: percona-xtradb-common (>= ${source:Version}), adduser (>= 3.40), debconf
|
||||
Depends: percona-xtradb-client-5.1 (>= ${source:Version}), libdbi-perl, perl (>= 5.6), ${shlibs:Depends}, ${misc:Depends}, psmisc, passwd, lsb-base (>= 3.0-10)
|
||||
Conflicts: mysql-server (<< ${source:Version}), mysql-server-4.1, percona-xtradb-server-5.0
|
||||
Provides: mysql-server, virtual-mysql-server, mysql-server-5.0, percona-xtradb-server-5.1
|
||||
Replaces: mysql-server (<< ${source:Version}), mysql-server-5.0, percona-xtradb-server-5.0
|
||||
Description: Percona SQL database server binaries
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes the server binaries.
|
||||
|
||||
Package: percona-xtradb-server
|
||||
Section: database
|
||||
Architecture: all
|
||||
Depends: percona-xtradb-server-5.1
|
||||
Description: Percona SQL database server (metapackage depending on the latest version)
|
||||
This is an empty package that depends on the current "best" version of
|
||||
percona-xtradb-server (currently percona-xtradb-server-5.1), as determined by the Percona SQL
|
||||
maintainers. Install this package if in doubt about which Percona SQL
|
||||
version you need. That will install the version recommended by the
|
||||
package maintainers.
|
||||
.
|
||||
Percona SQL is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of Percona SQL are speed, robustness and
|
||||
ease of use.
|
||||
|
||||
Package: percona-xtradb-client
|
||||
Section: database
|
||||
Architecture: all
|
||||
Depends: percona-xtradb-client-5.1
|
||||
Description: Percona SQL database client (metapackage depending on the latest version)
|
||||
This is an empty package that depends on the current "best" version of
|
||||
percona-xtradb-client (currently percona-xtradb-client-5.1), as determined by the Percona SQL
|
||||
maintainers. Install this package if in doubt about which Percona SQL version
|
||||
you want, as this is the one we consider to be in the best shape.
|
|
@ -1,169 +0,0 @@
|
|||
|
||||
== MySQL ==
|
||||
|
||||
The Debian package of MySQL was first debianzed on 1997-04-12 by Christian
|
||||
Schwarz <schwarz@debian.org> and ist maintained since 1999-04-20 by
|
||||
Christian Hammers <ch@debian.org>.
|
||||
|
||||
It can be downloaded from http://www.mysql.com/
|
||||
|
||||
Copyright:
|
||||
|
||||
According to the file "COPYING" all parts of this package are licenced
|
||||
under the terms of the GNU GPL Version 2 of which a copy is available
|
||||
in /usr/share/common-licenses.
|
||||
|
||||
To allow free software with other licences than the GPL to link against the
|
||||
shared library, special terms for "derived works" are defined in the file
|
||||
"EXCEPTIONS-CLIENT" which is quoted below.
|
||||
|
||||
More information can be found on http://www.mysql.com/company/legal/licensing/
|
||||
|
||||
The manual had to be removed as it is not free in the sense of the
|
||||
Debian Free Software Guidelines (DFSG).
|
||||
|
||||
> Appendix I MySQL FLOSS License Exception
|
||||
> ****************************************
|
||||
>
|
||||
> Version 0.3, 10 February 2005
|
||||
>
|
||||
> The MySQL AB Exception for Free/Libre and Open Source Software-only
|
||||
> Applications Using MySQL Client Libraries (the "FLOSS Exception").
|
||||
>
|
||||
> Exception Intent
|
||||
> ================
|
||||
>
|
||||
> We want specified Free/Libre and Open Source Software ("FLOSS")
|
||||
> applications to be able to use specified GPL-licensed MySQL client
|
||||
> libraries (the "Program") despite the fact that not all FLOSS licenses
|
||||
> are compatible with version 2 of the GNU General Public License (the
|
||||
> "GPL").
|
||||
>
|
||||
> Legal Terms and Conditions
|
||||
> ==========================
|
||||
>
|
||||
> As a special exception to the terms and conditions of version 2.0 of the
|
||||
> GPL:
|
||||
>
|
||||
> 1. You are free to distribute a Derivative Work that is formed
|
||||
> entirely from the Program and one or more works (each, a "FLOSS
|
||||
> Work") licensed under one or more of the licenses listed below in
|
||||
> section 1, as long as:
|
||||
>
|
||||
> a. You obey the GPL in all respects for the Program and the
|
||||
> Derivative Work, except for identifiable sections of the
|
||||
> Derivative Work which are not derived from the Program, and
|
||||
> which can reasonably be considered independent and separate
|
||||
> works in themselves,
|
||||
>
|
||||
> b. all identifiable sections of the Derivative Work which are not
|
||||
> derived from the Program, and which can reasonably be
|
||||
> considered independent and separate works in themselves,
|
||||
>
|
||||
> i
|
||||
> are distributed subject to one of the FLOSS licenses
|
||||
> listed below, and
|
||||
>
|
||||
> ii
|
||||
> the object code or executable form of those sections are
|
||||
> accompanied by the complete corresponding
|
||||
> machine-readable source code for those sections on the
|
||||
> same medium and under the same FLOSS license as the
|
||||
> corresponding object code or executable forms of those
|
||||
> sections, and
|
||||
>
|
||||
> c. any works which are aggregated with the Program or with a
|
||||
> Derivative Work on a volume of a storage or distribution
|
||||
> medium in accordance with the GPL, can reasonably be
|
||||
> considered independent and separate works in themselves which
|
||||
> are not derivatives of either the Program, a Derivative Work
|
||||
> or a FLOSS Work.
|
||||
>
|
||||
> If the above conditions are not met, then the Program may only be
|
||||
> copied, modified, distributed or used under the terms and
|
||||
> conditions of the GPL or another valid licensing option from MySQL
|
||||
> AB.
|
||||
>
|
||||
> 2. FLOSS License List
|
||||
>
|
||||
> *License name* *Version(s)/Copyright Date*
|
||||
> Academic Free License 2.0
|
||||
> Apache Software License 1.0/1.1/2.0
|
||||
> Apple Public Source License 2.0
|
||||
> Artistic license From Perl 5.8.0
|
||||
> BSD license "July 22 1999"
|
||||
> Common Public License 1.0
|
||||
> GNU Library or "Lesser" General Public 2.0/2.1
|
||||
> License (LGPL)
|
||||
> Jabber Open Source License 1.0
|
||||
> MIT license -
|
||||
> Mozilla Public License (MPL) 1.0/1.1
|
||||
> Open Software License 2.0
|
||||
> OpenSSL license (with original SSLeay "2003" ("1998")
|
||||
> license)
|
||||
> PHP License 3.0
|
||||
> Python license (CNRI Python License) -
|
||||
> Python Software Foundation License 2.1.1
|
||||
> Sleepycat License "1999"
|
||||
> W3C License "2001"
|
||||
> X11 License "2001"
|
||||
> Zlib/libpng License -
|
||||
> Zope Public License 2.0
|
||||
>
|
||||
> Due to the many variants of some of the above licenses, we require
|
||||
> that any version follow the 2003 version of the Free Software
|
||||
> Foundation's Free Software Definition
|
||||
> (`http://www.gnu.org/philosophy/free-sw.html') or version 1.9 of
|
||||
> the Open Source Definition by the Open Source Initiative
|
||||
> (`http://www.opensource.org/docs/definition.php').
|
||||
>
|
||||
> 3. Definitions
|
||||
>
|
||||
> a. Terms used, but not defined, herein shall have the meaning
|
||||
> provided in the GPL.
|
||||
>
|
||||
> b. Derivative Work means a derivative work under copyright law.
|
||||
>
|
||||
> 4. Applicability This FLOSS Exception applies to all Programs that
|
||||
> contain a notice placed by MySQL AB saying that the Program may be
|
||||
> distributed under the terms of this FLOSS Exception. If you
|
||||
> create or distribute a work which is a Derivative Work of both the
|
||||
> Program and any other work licensed under the GPL, then this FLOSS
|
||||
> Exception is not available for that work; thus, you must remove
|
||||
> the FLOSS Exception notice from that work and comply with the GPL
|
||||
> in all respects, including by retaining all GPL notices. You may
|
||||
> choose to redistribute a copy of the Program exclusively under the
|
||||
> terms of the GPL by removing the FLOSS Exception notice from that
|
||||
> copy of the Program, provided that the copy has never been
|
||||
> modified by you or any third party.
|
||||
|
||||
|
||||
== innotop ==
|
||||
|
||||
Author: Baron Schwartz <baron@xaprb.com>
|
||||
URL: http://innotop.sourceforge.net
|
||||
|
||||
License:
|
||||
> This software is dual licensed, either GPL version 2 or Artistic License.
|
||||
>
|
||||
> This package is free software; you can redistribute it and/or modify
|
||||
> it under the terms of the GNU General Public License as published by
|
||||
> the Free Software Foundation; either version 2 of the License, or
|
||||
> (at your option) any later version.
|
||||
>
|
||||
> This package is distributed in the hope that it will be useful,
|
||||
> but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
> GNU General Public License for more details.
|
||||
>
|
||||
> You should have received a copy of the GNU General Public License
|
||||
> along with this package; if not, write to the Free Software
|
||||
> Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public License and the
|
||||
Artistic License can be found in `/usr/share/common-licenses/'.
|
||||
|
||||
The upstream author explained here: http://bugs.gentoo.org/show_bug.cgi?id=14760
|
||||
that these licenses also apply to the following files:
|
||||
- innotop.html
|
||||
- InnoDBParser.pm
|
|
@ -1,4 +0,0 @@
|
|||
The examples directory includes files that might be needed by some
|
||||
developers:
|
||||
- header files not installed by default
|
||||
- the example file udf_example.c
|
|
@ -1,2 +0,0 @@
|
|||
usr/include/
|
||||
usr/lib/
|
|
@ -1 +0,0 @@
|
|||
EXCEPTIONS-CLIENT
|
|
@ -1 +0,0 @@
|
|||
sql/udf_example.c
|
|
@ -1,7 +0,0 @@
|
|||
usr/bin/mysql_config
|
||||
usr/include/mysql/*.h
|
||||
usr/lib/libmysqlclient.a
|
||||
usr/lib/libmysqlclient.la
|
||||
usr/lib/mysql/*.a
|
||||
usr/lib/mysql/*.la
|
||||
usr/share/man/man1/mysql_config.1
|
|
@ -1,2 +0,0 @@
|
|||
usr/lib/libmysqlclient.so.16 usr/lib/libmysqlclient.so
|
||||
usr/lib/libmysqlclient_r.so.16 usr/lib/libmysqlclient_r.so
|
|
@ -1 +0,0 @@
|
|||
usr/lib/
|
|
@ -1 +0,0 @@
|
|||
EXCEPTIONS-CLIENT
|
|
@ -1 +0,0 @@
|
|||
usr/lib/libmysqlclient*.so.*
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
|
||||
# vim: ts=4
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
33_scripts__mysql_create_system_tables__no_test.dpatch
|
||||
38_scripts__mysqld_safe.sh__signals.dpatch
|
||||
41_scripts__mysql_install_db.sh__no_test.dpatch
|
||||
44_scripts__mysql_config__libs.dpatch
|
||||
50_mysql-test__db_test.dpatch
|
||||
60_percona_support.dpatch
|
|
@ -1,776 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 01_MAKEFILES__Docs_Makefile.in.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Creates Docs/Makefile.in
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- old/Docs/Images/Makefile.in 2005-03-01 02:08:01.877429040 +0100
|
||||
+++ new/Docs/Images/Makefile.in 2005-02-28 21:21:24.000000000 +0100
|
||||
@@ -0,0 +1,765 @@
|
||||
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
+# @configure_input@
|
||||
+
|
||||
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
+# Free Software Foundation, Inc.
|
||||
+# This Makefile.in is free software; the Free Software Foundation
|
||||
+# gives unlimited permission to copy and/or distribute it,
|
||||
+# with or without modifications, as long as this notice is preserved.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
+# PARTICULAR PURPOSE.
|
||||
+
|
||||
+@SET_MAKE@
|
||||
+
|
||||
+# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+
|
||||
+# Process this file with automake to create Makefile.in
|
||||
+
|
||||
+srcdir = @srcdir@
|
||||
+top_srcdir = @top_srcdir@
|
||||
+VPATH = @srcdir@
|
||||
+pkgdatadir = $(datadir)/@PACKAGE@
|
||||
+pkglibdir = $(libdir)/@PACKAGE@
|
||||
+pkgincludedir = $(includedir)/@PACKAGE@
|
||||
+top_builddir = .
|
||||
+
|
||||
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
+INSTALL = @INSTALL@
|
||||
+install_sh_DATA = $(install_sh) -c -m 644
|
||||
+install_sh_PROGRAM = $(install_sh) -c
|
||||
+install_sh_SCRIPT = $(install_sh) -c
|
||||
+INSTALL_HEADER = $(INSTALL_DATA)
|
||||
+transform = $(program_transform_name)
|
||||
+NORMAL_INSTALL = :
|
||||
+PRE_INSTALL = :
|
||||
+POST_INSTALL = :
|
||||
+NORMAL_UNINSTALL = :
|
||||
+PRE_UNINSTALL = :
|
||||
+POST_UNINSTALL = :
|
||||
+build_triplet = @build@
|
||||
+host_triplet = @host@
|
||||
+target_triplet = @target@
|
||||
+ACLOCAL = @ACLOCAL@
|
||||
+ALLOCA = @ALLOCA@
|
||||
+AMDEP_FALSE = @AMDEP_FALSE@
|
||||
+AMDEP_TRUE = @AMDEP_TRUE@
|
||||
+AMTAR = @AMTAR@
|
||||
+AR = @AR@
|
||||
+AS = @AS@
|
||||
+ASSEMBLER_FALSE = @ASSEMBLER_FALSE@
|
||||
+ASSEMBLER_TRUE = @ASSEMBLER_TRUE@
|
||||
+ASSEMBLER_sparc32_FALSE = @ASSEMBLER_sparc32_FALSE@
|
||||
+ASSEMBLER_sparc32_TRUE = @ASSEMBLER_sparc32_TRUE@
|
||||
+ASSEMBLER_sparc64_FALSE = @ASSEMBLER_sparc64_FALSE@
|
||||
+ASSEMBLER_sparc64_TRUE = @ASSEMBLER_sparc64_TRUE@
|
||||
+ASSEMBLER_x86_FALSE = @ASSEMBLER_x86_FALSE@
|
||||
+ASSEMBLER_x86_TRUE = @ASSEMBLER_x86_TRUE@
|
||||
+AUTOCONF = @AUTOCONF@
|
||||
+AUTOHEADER = @AUTOHEADER@
|
||||
+AUTOMAKE = @AUTOMAKE@
|
||||
+AVAILABLE_LANGUAGES = @AVAILABLE_LANGUAGES@
|
||||
+AVAILABLE_LANGUAGES_ERRORS = @AVAILABLE_LANGUAGES_ERRORS@
|
||||
+AWK = @AWK@
|
||||
+CC = @CC@
|
||||
+CCAS = @CCAS@
|
||||
+CCASFLAGS = @CCASFLAGS@
|
||||
+CCDEPMODE = @CCDEPMODE@
|
||||
+CC_VERSION = @CC_VERSION@
|
||||
+CFLAGS = @CFLAGS@
|
||||
+CHARSETS_NEED_SOURCE = @CHARSETS_NEED_SOURCE@
|
||||
+CHARSET_OBJS = @CHARSET_OBJS@
|
||||
+CHARSET_SRCS = @CHARSET_SRCS@
|
||||
+CHECK_PID = @CHECK_PID@
|
||||
+CHMOD = @CHMOD@
|
||||
+CLIENT_EXTRA_LDFLAGS = @CLIENT_EXTRA_LDFLAGS@
|
||||
+CLIENT_LIBS = @CLIENT_LIBS@
|
||||
+CMP = @CMP@
|
||||
+COMPILATION_COMMENT = @COMPILATION_COMMENT@
|
||||
+COMPILE_PSTACK_FALSE = @COMPILE_PSTACK_FALSE@
|
||||
+COMPILE_PSTACK_TRUE = @COMPILE_PSTACK_TRUE@
|
||||
+CONF_COMMAND = @CONF_COMMAND@
|
||||
+CP = @CP@
|
||||
+CPP = @CPP@
|
||||
+CPPFLAGS = @CPPFLAGS@
|
||||
+CXX = @CXX@
|
||||
+CXXCPP = @CXXCPP@
|
||||
+CXXDEPMODE = @CXXDEPMODE@
|
||||
+CXXFLAGS = @CXXFLAGS@
|
||||
+CXXLDFLAGS = @CXXLDFLAGS@
|
||||
+CXX_VERSION = @CXX_VERSION@
|
||||
+CYGPATH_W = @CYGPATH_W@
|
||||
+DEFS = @DEFS@
|
||||
+DEPDIR = @DEPDIR@
|
||||
+DOT_FRM_VERSION = @DOT_FRM_VERSION@
|
||||
+DVIS = @DVIS@
|
||||
+ECHO = @ECHO@
|
||||
+ECHO_C = @ECHO_C@
|
||||
+ECHO_N = @ECHO_N@
|
||||
+ECHO_T = @ECHO_T@
|
||||
+EGREP = @EGREP@
|
||||
+EXEEXT = @EXEEXT@
|
||||
+F77 = @F77@
|
||||
+FFLAGS = @FFLAGS@
|
||||
+FIND_PROC = @FIND_PROC@
|
||||
+GETCONF = @GETCONF@
|
||||
+GXX = @GXX@
|
||||
+HAVE_NETWARE_FALSE = @HAVE_NETWARE_FALSE@
|
||||
+HAVE_NETWARE_TRUE = @HAVE_NETWARE_TRUE@
|
||||
+HOSTNAME = @HOSTNAME@
|
||||
+INSTALL_DATA = @INSTALL_DATA@
|
||||
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
+IS_LINUX = @IS_LINUX@
|
||||
+KILL = @KILL@
|
||||
+LD = @LD@
|
||||
+LDFLAGS = @LDFLAGS@
|
||||
+LIBDL = @LIBDL@
|
||||
+LIBOBJS = @LIBOBJS@
|
||||
+LIBS = @LIBS@
|
||||
+LIBTOOL = @LIBTOOL@
|
||||
+LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
|
||||
+LM_CFLAGS = @LM_CFLAGS@
|
||||
+LN = @LN@
|
||||
+LN_CP_F = @LN_CP_F@
|
||||
+LN_S = @LN_S@
|
||||
+LOCAL_FALSE = @LOCAL_FALSE@
|
||||
+LOCAL_TRUE = @LOCAL_TRUE@
|
||||
+LTLIBOBJS = @LTLIBOBJS@
|
||||
+MACHINE_TYPE = @MACHINE_TYPE@
|
||||
+MAINT = @MAINT@
|
||||
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
+MAKEINFO = @MAKEINFO@
|
||||
+MAKE_BINARY_DISTRIBUTION_OPTIONS = @MAKE_BINARY_DISTRIBUTION_OPTIONS@
|
||||
+MAKE_SHELL = @MAKE_SHELL@
|
||||
+MT_INCLUDES = @MT_INCLUDES@
|
||||
+MT_LD_ADD = @MT_LD_ADD@
|
||||
+MV = @MV@
|
||||
+MYSQLD_DEFAULT_SWITCHES = @MYSQLD_DEFAULT_SWITCHES@
|
||||
+MYSQLD_EXTRA_LDFLAGS = @MYSQLD_EXTRA_LDFLAGS@
|
||||
+MYSQLD_USER = @MYSQLD_USER@
|
||||
+MYSQL_BASE_VERSION = @MYSQL_BASE_VERSION@
|
||||
+MYSQL_NO_DASH_VERSION = @MYSQL_NO_DASH_VERSION@
|
||||
+MYSQL_SERVER_SUFFIX = @MYSQL_SERVER_SUFFIX@
|
||||
+MYSQL_TCP_PORT = @MYSQL_TCP_PORT@
|
||||
+MYSQL_TCP_PORT_DEFAULT = @MYSQL_TCP_PORT_DEFAULT@
|
||||
+MYSQL_UNIX_ADDR = @MYSQL_UNIX_ADDR@
|
||||
+MYSQL_VERSION_ID = @MYSQL_VERSION_ID@
|
||||
+NOINST_LDFLAGS = @NOINST_LDFLAGS@
|
||||
+OBJEXT = @OBJEXT@
|
||||
+PACKAGE = @PACKAGE@
|
||||
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
+PACKAGE_NAME = @PACKAGE_NAME@
|
||||
+PACKAGE_STRING = @PACKAGE_STRING@
|
||||
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
+PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
+PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
+PDFMANUAL = @PDFMANUAL@
|
||||
+PERL = @PERL@
|
||||
+PERL5 = @PERL5@
|
||||
+PROTOCOL_VERSION = @PROTOCOL_VERSION@
|
||||
+PS = @PS@
|
||||
+RANLIB = @RANLIB@
|
||||
+RM = @RM@
|
||||
+SAVE_ASFLAGS = @SAVE_ASFLAGS@
|
||||
+SAVE_CFLAGS = @SAVE_CFLAGS@
|
||||
+SAVE_CXXFLAGS = @SAVE_CXXFLAGS@
|
||||
+SAVE_CXXLDFLAGS = @SAVE_CXXLDFLAGS@
|
||||
+SAVE_LDFLAGS = @SAVE_LDFLAGS@
|
||||
+SED = @SED@
|
||||
+SET_MAKE = @SET_MAKE@
|
||||
+SHARED_LIB_VERSION = @SHARED_LIB_VERSION@
|
||||
+SHELL = @SHELL@
|
||||
+STRIP = @STRIP@
|
||||
+SYSTEM_TYPE = @SYSTEM_TYPE@
|
||||
+TAR = @TAR@
|
||||
+TERMCAP_LIB = @TERMCAP_LIB@
|
||||
+THREAD_LOBJECTS = @THREAD_LOBJECTS@
|
||||
+THREAD_LPROGRAMS = @THREAD_LPROGRAMS@
|
||||
+VERSION = @VERSION@
|
||||
+WRAPLIBS = @WRAPLIBS@
|
||||
+YACC = @YACC@
|
||||
+ac_ct_AR = @ac_ct_AR@
|
||||
+ac_ct_CC = @ac_ct_CC@
|
||||
+ac_ct_CXX = @ac_ct_CXX@
|
||||
+ac_ct_F77 = @ac_ct_F77@
|
||||
+ac_ct_GETCONF = @ac_ct_GETCONF@
|
||||
+ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
+ac_ct_STRIP = @ac_ct_STRIP@
|
||||
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
+am__include = @am__include@
|
||||
+am__leading_dot = @am__leading_dot@
|
||||
+am__quote = @am__quote@
|
||||
+bdb_includes = @bdb_includes@
|
||||
+bdb_libs = @bdb_libs@
|
||||
+bdb_libs_with_path = @bdb_libs_with_path@
|
||||
+bench_dirs = @bench_dirs@
|
||||
+bindir = @bindir@
|
||||
+build = @build@
|
||||
+build_alias = @build_alias@
|
||||
+build_cpu = @build_cpu@
|
||||
+build_os = @build_os@
|
||||
+build_vendor = @build_vendor@
|
||||
+datadir = @datadir@
|
||||
+default_charset = @default_charset@
|
||||
+docs_dirs = @docs_dirs@
|
||||
+exec_prefix = @exec_prefix@
|
||||
+host = @host@
|
||||
+host_alias = @host_alias@
|
||||
+host_cpu = @host_cpu@
|
||||
+host_os = @host_os@
|
||||
+host_vendor = @host_vendor@
|
||||
+includedir = @includedir@
|
||||
+infodir = @infodir@
|
||||
+innodb_includes = @innodb_includes@
|
||||
+innodb_libs = @innodb_libs@
|
||||
+innodb_system_libs = @innodb_system_libs@
|
||||
+install_sh = @install_sh@
|
||||
+isam_libs = @isam_libs@
|
||||
+libdir = @libdir@
|
||||
+libexecdir = @libexecdir@
|
||||
+libmysqld_dirs = @libmysqld_dirs@
|
||||
+linked_client_targets = @linked_client_targets@
|
||||
+linked_netware_sources = @linked_netware_sources@
|
||||
+localstatedir = @localstatedir@
|
||||
+man_dirs = @man_dirs@
|
||||
+mandir = @mandir@
|
||||
+netware_dir = @netware_dir@
|
||||
+oldincludedir = @oldincludedir@
|
||||
+openssl_includes = @openssl_includes@
|
||||
+openssl_libs = @openssl_libs@
|
||||
+orbit_idl = @orbit_idl@
|
||||
+orbit_includes = @orbit_includes@
|
||||
+orbit_libs = @orbit_libs@
|
||||
+prefix = @prefix@
|
||||
+program_transform_name = @program_transform_name@
|
||||
+pstack_dirs = @pstack_dirs@
|
||||
+pstack_libs = @pstack_libs@
|
||||
+readline_dir = @readline_dir@
|
||||
+readline_link = @readline_link@
|
||||
+sbindir = @sbindir@
|
||||
+server_scripts = @server_scripts@
|
||||
+sharedstatedir = @sharedstatedir@
|
||||
+sql_client_dirs = @sql_client_dirs@
|
||||
+sql_server_dirs = @sql_server_dirs@
|
||||
+sysconfdir = @sysconfdir@
|
||||
+target = @target@
|
||||
+target_alias = @target_alias@
|
||||
+target_cpu = @target_cpu@
|
||||
+target_os = @target_os@
|
||||
+target_vendor = @target_vendor@
|
||||
+thread_dirs = @thread_dirs@
|
||||
+tools_dirs = @tools_dirs@
|
||||
+uname_prog = @uname_prog@
|
||||
+vio_dir = @vio_dir@
|
||||
+vio_libs = @vio_libs@
|
||||
+
|
||||
+AUTOMAKE_OPTIONS = foreign
|
||||
+
|
||||
+# These are built from source in the Docs directory
|
||||
+EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
|
||||
+SUBDIRS = . include @docs_dirs@ @readline_dir@ \
|
||||
+ @thread_dirs@ pstack @sql_client_dirs@ \
|
||||
+ @sql_server_dirs@ scripts @man_dirs@ tests \
|
||||
+ BUILD netware os2 @libmysqld_dirs@ \
|
||||
+ @bench_dirs@ support-files @tools_dirs@
|
||||
+
|
||||
+
|
||||
+# Relink after clean
|
||||
+linked_sources = linked_client_sources linked_server_sources \
|
||||
+ linked_libmysql_sources linked_libmysql_r_sources \
|
||||
+ linked_libmysqld_sources linked_libmysqldex_sources \
|
||||
+ linked_include_sources @linked_netware_sources@
|
||||
+
|
||||
+
|
||||
+CLEANFILES = $(linked_sources)
|
||||
+subdir = .
|
||||
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
+CONFIG_HEADER = config.h
|
||||
+CONFIG_CLEAN_FILES = bdb/Makefile
|
||||
+DIST_SOURCES =
|
||||
+
|
||||
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
|
||||
+ ps-recursive install-info-recursive uninstall-info-recursive \
|
||||
+ all-recursive install-data-recursive install-exec-recursive \
|
||||
+ installdirs-recursive install-recursive uninstall-recursive \
|
||||
+ check-recursive installcheck-recursive
|
||||
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure COPYING \
|
||||
+ ChangeLog Makefile.am acconfig.h acinclude.m4 aclocal.m4 \
|
||||
+ config.guess config.h.in config.sub configure configure.in \
|
||||
+ depcomp install-sh ltconfig ltmain.sh missing mkinstalldirs
|
||||
+DIST_SUBDIRS = $(SUBDIRS)
|
||||
+all: config.h
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
+
|
||||
+.SUFFIXES:
|
||||
+
|
||||
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
+ configure.lineno
|
||||
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
+ cd $(top_srcdir) && \
|
||||
+ $(AUTOMAKE) --foreign Makefile
|
||||
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||
+
|
||||
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
+ $(SHELL) ./config.status --recheck
|
||||
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
+ cd $(srcdir) && $(AUTOCONF)
|
||||
+
|
||||
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
|
||||
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
+
|
||||
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
+ @rm -f stamp-h1
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
+
|
||||
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
|
||||
+ cd $(top_srcdir) && $(AUTOHEADER)
|
||||
+ touch $(srcdir)/config.h.in
|
||||
+
|
||||
+distclean-hdr:
|
||||
+ -rm -f config.h stamp-h1
|
||||
+bdb/Makefile: $(top_builddir)/config.status $(top_srcdir)/bdb/Makefile.in
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
+
|
||||
+mostlyclean-libtool:
|
||||
+ -rm -f *.lo
|
||||
+
|
||||
+clean-libtool:
|
||||
+ -rm -rf .libs _libs
|
||||
+
|
||||
+distclean-libtool:
|
||||
+ -rm -f libtool
|
||||
+uninstall-info-am:
|
||||
+
|
||||
+# This directory's subdirectories are mostly independent; you can cd
|
||||
+# into them and run `make' without going through this Makefile.
|
||||
+# To change the values of `make' variables: instead of editing Makefiles,
|
||||
+# (1) if the variable is set in `config.status', edit `config.status'
|
||||
+# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
+# (2) otherwise, pass the desired values on the `make' command line.
|
||||
+$(RECURSIVE_TARGETS):
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
+ dot_seen=no; \
|
||||
+ target=`echo $@ | sed s/-recursive//`; \
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ echo "Making $$target in $$subdir"; \
|
||||
+ if test "$$subdir" = "."; then \
|
||||
+ dot_seen=yes; \
|
||||
+ local_target="$$target-am"; \
|
||||
+ else \
|
||||
+ local_target="$$target"; \
|
||||
+ fi; \
|
||||
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
+ done; \
|
||||
+ if test "$$dot_seen" = "no"; then \
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
+ fi; test -z "$$fail"
|
||||
+
|
||||
+mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
+maintainer-clean-recursive:
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
+ dot_seen=no; \
|
||||
+ case "$@" in \
|
||||
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
+ *) list='$(SUBDIRS)' ;; \
|
||||
+ esac; \
|
||||
+ rev=''; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = "."; then :; else \
|
||||
+ rev="$$subdir $$rev"; \
|
||||
+ fi; \
|
||||
+ done; \
|
||||
+ rev="$$rev ."; \
|
||||
+ target=`echo $@ | sed s/-recursive//`; \
|
||||
+ for subdir in $$rev; do \
|
||||
+ echo "Making $$target in $$subdir"; \
|
||||
+ if test "$$subdir" = "."; then \
|
||||
+ local_target="$$target-am"; \
|
||||
+ else \
|
||||
+ local_target="$$target"; \
|
||||
+ fi; \
|
||||
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
+ done && test -z "$$fail"
|
||||
+tags-recursive:
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
+ done
|
||||
+ctags-recursive:
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
+ done
|
||||
+
|
||||
+ETAGS = etags
|
||||
+ETAGSFLAGS =
|
||||
+
|
||||
+CTAGS = ctags
|
||||
+CTAGSFLAGS =
|
||||
+
|
||||
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ mkid -fID $$unique
|
||||
+
|
||||
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
+ $(TAGS_FILES) $(LISP)
|
||||
+ tags=; \
|
||||
+ here=`pwd`; \
|
||||
+ if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
+ include_option=--etags-include; \
|
||||
+ else \
|
||||
+ include_option=--include; \
|
||||
+ fi; \
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = .; then :; else \
|
||||
+ test -f $$subdir/TAGS && \
|
||||
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
+ fi; \
|
||||
+ done; \
|
||||
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
+ $$tags $$unique
|
||||
+
|
||||
+ctags: CTAGS
|
||||
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
+ $(TAGS_FILES) $(LISP)
|
||||
+ tags=; \
|
||||
+ here=`pwd`; \
|
||||
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
+ $$tags $$unique
|
||||
+
|
||||
+GTAGS:
|
||||
+ here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
+ && cd $(top_srcdir) \
|
||||
+ && gtags -i $(GTAGS_ARGS) $$here
|
||||
+
|
||||
+distclean-tags:
|
||||
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
+
|
||||
+top_distdir = .
|
||||
+distdir = $(PACKAGE)-$(VERSION)
|
||||
+
|
||||
+am__remove_distdir = \
|
||||
+ { test ! -d $(distdir) \
|
||||
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
+ && rm -fr $(distdir); }; }
|
||||
+
|
||||
+GZIP_ENV = --best
|
||||
+distuninstallcheck_listfiles = find . -type f -print
|
||||
+distcleancheck_listfiles = find . -type f -print
|
||||
+
|
||||
+distdir: $(DISTFILES)
|
||||
+ $(am__remove_distdir)
|
||||
+ mkdir $(distdir)
|
||||
+ $(mkinstalldirs) $(distdir)/bdb $(distdir)/include
|
||||
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
+ list='$(DISTFILES)'; for file in $$list; do \
|
||||
+ case $$file in \
|
||||
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
+ esac; \
|
||||
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
+ dir="/$$dir"; \
|
||||
+ $(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
+ else \
|
||||
+ dir=''; \
|
||||
+ fi; \
|
||||
+ if test -d $$d/$$file; then \
|
||||
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
+ fi; \
|
||||
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
+ else \
|
||||
+ test -f $(distdir)/$$file \
|
||||
+ || cp -p $$d/$$file $(distdir)/$$file \
|
||||
+ || exit 1; \
|
||||
+ fi; \
|
||||
+ done
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = .; then :; else \
|
||||
+ test -d $(distdir)/$$subdir \
|
||||
+ || mkdir $(distdir)/$$subdir \
|
||||
+ || exit 1; \
|
||||
+ (cd $$subdir && \
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ top_distdir="$(top_distdir)" \
|
||||
+ distdir=../$(distdir)/$$subdir \
|
||||
+ distdir) \
|
||||
+ || exit 1; \
|
||||
+ fi; \
|
||||
+ done
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
+ dist-hook
|
||||
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
+ || chmod -R a+r $(distdir)
|
||||
+dist-gzip: distdir
|
||||
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
+ $(am__remove_distdir)
|
||||
+
|
||||
+dist dist-all: distdir
|
||||
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
+ $(am__remove_distdir)
|
||||
+
|
||||
+# This target untars the dist file and tries a VPATH configuration. Then
|
||||
+# it guarantees that the distribution is self-contained by making another
|
||||
+# tarfile.
|
||||
+distcheck: dist
|
||||
+ $(am__remove_distdir)
|
||||
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
+ mkdir $(distdir)/_build
|
||||
+ mkdir $(distdir)/_inst
|
||||
+ chmod a-w $(distdir)
|
||||
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
+ && cd $(distdir)/_build \
|
||||
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
+ $(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
+ distuninstallcheck \
|
||||
+ && chmod -R a-w "$$dc_install_base" \
|
||||
+ && ({ \
|
||||
+ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
+ && rm -rf "$$dc_destdir" \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||
+ && rm -f $(distdir).tar.gz \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
+ $(am__remove_distdir)
|
||||
+ @echo "$(distdir).tar.gz is ready for distribution" | \
|
||||
+ sed 'h;s/./=/g;p;x;p;x'
|
||||
+distuninstallcheck:
|
||||
+ @cd $(distuninstallcheck_dir) \
|
||||
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
+ || { echo "ERROR: files left after uninstall:" ; \
|
||||
+ if test -n "$(DESTDIR)"; then \
|
||||
+ echo " (check DESTDIR support)"; \
|
||||
+ fi ; \
|
||||
+ $(distuninstallcheck_listfiles) ; \
|
||||
+ exit 1; } >&2
|
||||
+distcleancheck: distclean
|
||||
+ @if test '$(srcdir)' = . ; then \
|
||||
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
+ exit 1 ; \
|
||||
+ fi
|
||||
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
+ || { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
+ $(distcleancheck_listfiles) ; \
|
||||
+ exit 1; } >&2
|
||||
+check-am: all-am
|
||||
+check: check-recursive
|
||||
+all-am: Makefile config.h
|
||||
+installdirs: installdirs-recursive
|
||||
+installdirs-am:
|
||||
+
|
||||
+install: install-recursive
|
||||
+install-exec: install-exec-recursive
|
||||
+install-data: install-data-recursive
|
||||
+uninstall: uninstall-recursive
|
||||
+
|
||||
+install-am: all-am
|
||||
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
+
|
||||
+installcheck: installcheck-recursive
|
||||
+install-strip:
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
+ `test -z '$(STRIP)' || \
|
||||
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
+mostlyclean-generic:
|
||||
+
|
||||
+clean-generic:
|
||||
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
+
|
||||
+distclean-generic:
|
||||
+ -rm -f $(CONFIG_CLEAN_FILES)
|
||||
+
|
||||
+maintainer-clean-generic:
|
||||
+ @echo "This command is intended for maintainers to use"
|
||||
+ @echo "it deletes files that may require special tools to rebuild."
|
||||
+clean: clean-recursive
|
||||
+
|
||||
+clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
+
|
||||
+distclean: distclean-recursive
|
||||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
+ -rm -f Makefile
|
||||
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
|
||||
+ distclean-tags
|
||||
+
|
||||
+dvi: dvi-recursive
|
||||
+
|
||||
+dvi-am:
|
||||
+
|
||||
+info: info-recursive
|
||||
+
|
||||
+info-am:
|
||||
+
|
||||
+install-data-am:
|
||||
+
|
||||
+install-exec-am:
|
||||
+
|
||||
+install-info: install-info-recursive
|
||||
+
|
||||
+install-man:
|
||||
+
|
||||
+installcheck-am:
|
||||
+
|
||||
+maintainer-clean: maintainer-clean-recursive
|
||||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
+ -rm -rf $(top_srcdir)/autom4te.cache
|
||||
+ -rm -f Makefile
|
||||
+maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
+
|
||||
+mostlyclean: mostlyclean-recursive
|
||||
+
|
||||
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
+
|
||||
+pdf: pdf-recursive
|
||||
+
|
||||
+pdf-am:
|
||||
+
|
||||
+ps: ps-recursive
|
||||
+
|
||||
+ps-am:
|
||||
+
|
||||
+uninstall-am: uninstall-info-am
|
||||
+
|
||||
+uninstall-info: uninstall-info-recursive
|
||||
+
|
||||
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
|
||||
+ clean-generic clean-libtool clean-recursive ctags \
|
||||
+ ctags-recursive dist dist-all dist-gzip distcheck distclean \
|
||||
+ distclean-generic distclean-hdr distclean-libtool \
|
||||
+ distclean-recursive distclean-tags distcleancheck distdir \
|
||||
+ distuninstallcheck dvi dvi-am dvi-recursive info info-am \
|
||||
+ info-recursive install install-am install-data install-data-am \
|
||||
+ install-data-recursive install-exec install-exec-am \
|
||||
+ install-exec-recursive install-info install-info-am \
|
||||
+ install-info-recursive install-man install-recursive \
|
||||
+ install-strip installcheck installcheck-am installdirs \
|
||||
+ installdirs-am installdirs-recursive maintainer-clean \
|
||||
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
|
||||
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
|
||||
+ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
|
||||
+ tags-recursive uninstall uninstall-am uninstall-info-am \
|
||||
+ uninstall-info-recursive uninstall-recursive
|
||||
+
|
||||
+
|
||||
+# This is just so that the linking is done early.
|
||||
+config.h: $(linked_sources)
|
||||
+
|
||||
+linked_include_sources:
|
||||
+ cd include; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_include_sources
|
||||
+
|
||||
+linked_client_sources: @linked_client_targets@
|
||||
+ cd client; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_client_sources
|
||||
+
|
||||
+linked_libmysql_sources:
|
||||
+ cd libmysql; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysql_sources
|
||||
+
|
||||
+linked_libmysql_r_sources: linked_libmysql_sources
|
||||
+ cd libmysql_r; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysql_r_sources
|
||||
+
|
||||
+linked_libmysqld_sources:
|
||||
+ cd libmysqld; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysqld_sources
|
||||
+
|
||||
+linked_libmysqldex_sources:
|
||||
+ cd libmysqld/examples; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysqldex_sources
|
||||
+
|
||||
+linked_netware_sources:
|
||||
+ cd @netware_dir@; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_netware_sources
|
||||
+
|
||||
+#avoid recursive make calls in sql directory
|
||||
+linked_server_sources:
|
||||
+ cd sql; rm -f mini_client_errors.c;@LN_CP_F@ ../libmysql/errmsg.c mini_client_errors.c
|
||||
+ echo timestamp > linked_server_sources
|
||||
+
|
||||
+# Create permission databases
|
||||
+init-db: all
|
||||
+ $(top_builddir)/scripts/mysql_install_db
|
||||
+
|
||||
+bin-dist: all
|
||||
+ $(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
|
||||
+
|
||||
+# Remove BK's "SCCS" subdirectories from source distribution
|
||||
+dist-hook:
|
||||
+ rm -rf `find $(distdir) -type d -name SCCS`
|
||||
+
|
||||
+tags:
|
||||
+ support-files/build-tags
|
||||
+.PHONY: init-db bin-dist
|
||||
+
|
||||
+# Test installation
|
||||
+
|
||||
+test:
|
||||
+ cd mysql-test ; ./mysql-test-run
|
||||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
+.NOEXPORT:
|
|
@ -1,776 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 01_MAKEFILES__Docs_Makefile.in.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Creates Docs/Makefile.in
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- old/Docs/Makefile.in 2005-03-01 02:08:01.877429040 +0100
|
||||
+++ new/Docs/Makefile.in 2005-02-28 21:21:24.000000000 +0100
|
||||
@@ -0,0 +1,765 @@
|
||||
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
|
||||
+# @configure_input@
|
||||
+
|
||||
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
+# Free Software Foundation, Inc.
|
||||
+# This Makefile.in is free software; the Free Software Foundation
|
||||
+# gives unlimited permission to copy and/or distribute it,
|
||||
+# with or without modifications, as long as this notice is preserved.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
+# PARTICULAR PURPOSE.
|
||||
+
|
||||
+@SET_MAKE@
|
||||
+
|
||||
+# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+
|
||||
+# Process this file with automake to create Makefile.in
|
||||
+
|
||||
+srcdir = @srcdir@
|
||||
+top_srcdir = @top_srcdir@
|
||||
+VPATH = @srcdir@
|
||||
+pkgdatadir = $(datadir)/@PACKAGE@
|
||||
+pkglibdir = $(libdir)/@PACKAGE@
|
||||
+pkgincludedir = $(includedir)/@PACKAGE@
|
||||
+top_builddir = .
|
||||
+
|
||||
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
+INSTALL = @INSTALL@
|
||||
+install_sh_DATA = $(install_sh) -c -m 644
|
||||
+install_sh_PROGRAM = $(install_sh) -c
|
||||
+install_sh_SCRIPT = $(install_sh) -c
|
||||
+INSTALL_HEADER = $(INSTALL_DATA)
|
||||
+transform = $(program_transform_name)
|
||||
+NORMAL_INSTALL = :
|
||||
+PRE_INSTALL = :
|
||||
+POST_INSTALL = :
|
||||
+NORMAL_UNINSTALL = :
|
||||
+PRE_UNINSTALL = :
|
||||
+POST_UNINSTALL = :
|
||||
+build_triplet = @build@
|
||||
+host_triplet = @host@
|
||||
+target_triplet = @target@
|
||||
+ACLOCAL = @ACLOCAL@
|
||||
+ALLOCA = @ALLOCA@
|
||||
+AMDEP_FALSE = @AMDEP_FALSE@
|
||||
+AMDEP_TRUE = @AMDEP_TRUE@
|
||||
+AMTAR = @AMTAR@
|
||||
+AR = @AR@
|
||||
+AS = @AS@
|
||||
+ASSEMBLER_FALSE = @ASSEMBLER_FALSE@
|
||||
+ASSEMBLER_TRUE = @ASSEMBLER_TRUE@
|
||||
+ASSEMBLER_sparc32_FALSE = @ASSEMBLER_sparc32_FALSE@
|
||||
+ASSEMBLER_sparc32_TRUE = @ASSEMBLER_sparc32_TRUE@
|
||||
+ASSEMBLER_sparc64_FALSE = @ASSEMBLER_sparc64_FALSE@
|
||||
+ASSEMBLER_sparc64_TRUE = @ASSEMBLER_sparc64_TRUE@
|
||||
+ASSEMBLER_x86_FALSE = @ASSEMBLER_x86_FALSE@
|
||||
+ASSEMBLER_x86_TRUE = @ASSEMBLER_x86_TRUE@
|
||||
+AUTOCONF = @AUTOCONF@
|
||||
+AUTOHEADER = @AUTOHEADER@
|
||||
+AUTOMAKE = @AUTOMAKE@
|
||||
+AVAILABLE_LANGUAGES = @AVAILABLE_LANGUAGES@
|
||||
+AVAILABLE_LANGUAGES_ERRORS = @AVAILABLE_LANGUAGES_ERRORS@
|
||||
+AWK = @AWK@
|
||||
+CC = @CC@
|
||||
+CCAS = @CCAS@
|
||||
+CCASFLAGS = @CCASFLAGS@
|
||||
+CCDEPMODE = @CCDEPMODE@
|
||||
+CC_VERSION = @CC_VERSION@
|
||||
+CFLAGS = @CFLAGS@
|
||||
+CHARSETS_NEED_SOURCE = @CHARSETS_NEED_SOURCE@
|
||||
+CHARSET_OBJS = @CHARSET_OBJS@
|
||||
+CHARSET_SRCS = @CHARSET_SRCS@
|
||||
+CHECK_PID = @CHECK_PID@
|
||||
+CHMOD = @CHMOD@
|
||||
+CLIENT_EXTRA_LDFLAGS = @CLIENT_EXTRA_LDFLAGS@
|
||||
+CLIENT_LIBS = @CLIENT_LIBS@
|
||||
+CMP = @CMP@
|
||||
+COMPILATION_COMMENT = @COMPILATION_COMMENT@
|
||||
+COMPILE_PSTACK_FALSE = @COMPILE_PSTACK_FALSE@
|
||||
+COMPILE_PSTACK_TRUE = @COMPILE_PSTACK_TRUE@
|
||||
+CONF_COMMAND = @CONF_COMMAND@
|
||||
+CP = @CP@
|
||||
+CPP = @CPP@
|
||||
+CPPFLAGS = @CPPFLAGS@
|
||||
+CXX = @CXX@
|
||||
+CXXCPP = @CXXCPP@
|
||||
+CXXDEPMODE = @CXXDEPMODE@
|
||||
+CXXFLAGS = @CXXFLAGS@
|
||||
+CXXLDFLAGS = @CXXLDFLAGS@
|
||||
+CXX_VERSION = @CXX_VERSION@
|
||||
+CYGPATH_W = @CYGPATH_W@
|
||||
+DEFS = @DEFS@
|
||||
+DEPDIR = @DEPDIR@
|
||||
+DOT_FRM_VERSION = @DOT_FRM_VERSION@
|
||||
+DVIS = @DVIS@
|
||||
+ECHO = @ECHO@
|
||||
+ECHO_C = @ECHO_C@
|
||||
+ECHO_N = @ECHO_N@
|
||||
+ECHO_T = @ECHO_T@
|
||||
+EGREP = @EGREP@
|
||||
+EXEEXT = @EXEEXT@
|
||||
+F77 = @F77@
|
||||
+FFLAGS = @FFLAGS@
|
||||
+FIND_PROC = @FIND_PROC@
|
||||
+GETCONF = @GETCONF@
|
||||
+GXX = @GXX@
|
||||
+HAVE_NETWARE_FALSE = @HAVE_NETWARE_FALSE@
|
||||
+HAVE_NETWARE_TRUE = @HAVE_NETWARE_TRUE@
|
||||
+HOSTNAME = @HOSTNAME@
|
||||
+INSTALL_DATA = @INSTALL_DATA@
|
||||
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
+IS_LINUX = @IS_LINUX@
|
||||
+KILL = @KILL@
|
||||
+LD = @LD@
|
||||
+LDFLAGS = @LDFLAGS@
|
||||
+LIBDL = @LIBDL@
|
||||
+LIBOBJS = @LIBOBJS@
|
||||
+LIBS = @LIBS@
|
||||
+LIBTOOL = @LIBTOOL@
|
||||
+LIB_EXTRA_CCFLAGS = @LIB_EXTRA_CCFLAGS@
|
||||
+LM_CFLAGS = @LM_CFLAGS@
|
||||
+LN = @LN@
|
||||
+LN_CP_F = @LN_CP_F@
|
||||
+LN_S = @LN_S@
|
||||
+LOCAL_FALSE = @LOCAL_FALSE@
|
||||
+LOCAL_TRUE = @LOCAL_TRUE@
|
||||
+LTLIBOBJS = @LTLIBOBJS@
|
||||
+MACHINE_TYPE = @MACHINE_TYPE@
|
||||
+MAINT = @MAINT@
|
||||
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
+MAKEINFO = @MAKEINFO@
|
||||
+MAKE_BINARY_DISTRIBUTION_OPTIONS = @MAKE_BINARY_DISTRIBUTION_OPTIONS@
|
||||
+MAKE_SHELL = @MAKE_SHELL@
|
||||
+MT_INCLUDES = @MT_INCLUDES@
|
||||
+MT_LD_ADD = @MT_LD_ADD@
|
||||
+MV = @MV@
|
||||
+MYSQLD_DEFAULT_SWITCHES = @MYSQLD_DEFAULT_SWITCHES@
|
||||
+MYSQLD_EXTRA_LDFLAGS = @MYSQLD_EXTRA_LDFLAGS@
|
||||
+MYSQLD_USER = @MYSQLD_USER@
|
||||
+MYSQL_BASE_VERSION = @MYSQL_BASE_VERSION@
|
||||
+MYSQL_NO_DASH_VERSION = @MYSQL_NO_DASH_VERSION@
|
||||
+MYSQL_SERVER_SUFFIX = @MYSQL_SERVER_SUFFIX@
|
||||
+MYSQL_TCP_PORT = @MYSQL_TCP_PORT@
|
||||
+MYSQL_TCP_PORT_DEFAULT = @MYSQL_TCP_PORT_DEFAULT@
|
||||
+MYSQL_UNIX_ADDR = @MYSQL_UNIX_ADDR@
|
||||
+MYSQL_VERSION_ID = @MYSQL_VERSION_ID@
|
||||
+NOINST_LDFLAGS = @NOINST_LDFLAGS@
|
||||
+OBJEXT = @OBJEXT@
|
||||
+PACKAGE = @PACKAGE@
|
||||
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
+PACKAGE_NAME = @PACKAGE_NAME@
|
||||
+PACKAGE_STRING = @PACKAGE_STRING@
|
||||
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
+PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
+PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
+PDFMANUAL = @PDFMANUAL@
|
||||
+PERL = @PERL@
|
||||
+PERL5 = @PERL5@
|
||||
+PROTOCOL_VERSION = @PROTOCOL_VERSION@
|
||||
+PS = @PS@
|
||||
+RANLIB = @RANLIB@
|
||||
+RM = @RM@
|
||||
+SAVE_ASFLAGS = @SAVE_ASFLAGS@
|
||||
+SAVE_CFLAGS = @SAVE_CFLAGS@
|
||||
+SAVE_CXXFLAGS = @SAVE_CXXFLAGS@
|
||||
+SAVE_CXXLDFLAGS = @SAVE_CXXLDFLAGS@
|
||||
+SAVE_LDFLAGS = @SAVE_LDFLAGS@
|
||||
+SED = @SED@
|
||||
+SET_MAKE = @SET_MAKE@
|
||||
+SHARED_LIB_VERSION = @SHARED_LIB_VERSION@
|
||||
+SHELL = @SHELL@
|
||||
+STRIP = @STRIP@
|
||||
+SYSTEM_TYPE = @SYSTEM_TYPE@
|
||||
+TAR = @TAR@
|
||||
+TERMCAP_LIB = @TERMCAP_LIB@
|
||||
+THREAD_LOBJECTS = @THREAD_LOBJECTS@
|
||||
+THREAD_LPROGRAMS = @THREAD_LPROGRAMS@
|
||||
+VERSION = @VERSION@
|
||||
+WRAPLIBS = @WRAPLIBS@
|
||||
+YACC = @YACC@
|
||||
+ac_ct_AR = @ac_ct_AR@
|
||||
+ac_ct_CC = @ac_ct_CC@
|
||||
+ac_ct_CXX = @ac_ct_CXX@
|
||||
+ac_ct_F77 = @ac_ct_F77@
|
||||
+ac_ct_GETCONF = @ac_ct_GETCONF@
|
||||
+ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
+ac_ct_STRIP = @ac_ct_STRIP@
|
||||
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
+am__include = @am__include@
|
||||
+am__leading_dot = @am__leading_dot@
|
||||
+am__quote = @am__quote@
|
||||
+bdb_includes = @bdb_includes@
|
||||
+bdb_libs = @bdb_libs@
|
||||
+bdb_libs_with_path = @bdb_libs_with_path@
|
||||
+bench_dirs = @bench_dirs@
|
||||
+bindir = @bindir@
|
||||
+build = @build@
|
||||
+build_alias = @build_alias@
|
||||
+build_cpu = @build_cpu@
|
||||
+build_os = @build_os@
|
||||
+build_vendor = @build_vendor@
|
||||
+datadir = @datadir@
|
||||
+default_charset = @default_charset@
|
||||
+docs_dirs = @docs_dirs@
|
||||
+exec_prefix = @exec_prefix@
|
||||
+host = @host@
|
||||
+host_alias = @host_alias@
|
||||
+host_cpu = @host_cpu@
|
||||
+host_os = @host_os@
|
||||
+host_vendor = @host_vendor@
|
||||
+includedir = @includedir@
|
||||
+infodir = @infodir@
|
||||
+innodb_includes = @innodb_includes@
|
||||
+innodb_libs = @innodb_libs@
|
||||
+innodb_system_libs = @innodb_system_libs@
|
||||
+install_sh = @install_sh@
|
||||
+isam_libs = @isam_libs@
|
||||
+libdir = @libdir@
|
||||
+libexecdir = @libexecdir@
|
||||
+libmysqld_dirs = @libmysqld_dirs@
|
||||
+linked_client_targets = @linked_client_targets@
|
||||
+linked_netware_sources = @linked_netware_sources@
|
||||
+localstatedir = @localstatedir@
|
||||
+man_dirs = @man_dirs@
|
||||
+mandir = @mandir@
|
||||
+netware_dir = @netware_dir@
|
||||
+oldincludedir = @oldincludedir@
|
||||
+openssl_includes = @openssl_includes@
|
||||
+openssl_libs = @openssl_libs@
|
||||
+orbit_idl = @orbit_idl@
|
||||
+orbit_includes = @orbit_includes@
|
||||
+orbit_libs = @orbit_libs@
|
||||
+prefix = @prefix@
|
||||
+program_transform_name = @program_transform_name@
|
||||
+pstack_dirs = @pstack_dirs@
|
||||
+pstack_libs = @pstack_libs@
|
||||
+readline_dir = @readline_dir@
|
||||
+readline_link = @readline_link@
|
||||
+sbindir = @sbindir@
|
||||
+server_scripts = @server_scripts@
|
||||
+sharedstatedir = @sharedstatedir@
|
||||
+sql_client_dirs = @sql_client_dirs@
|
||||
+sql_server_dirs = @sql_server_dirs@
|
||||
+sysconfdir = @sysconfdir@
|
||||
+target = @target@
|
||||
+target_alias = @target_alias@
|
||||
+target_cpu = @target_cpu@
|
||||
+target_os = @target_os@
|
||||
+target_vendor = @target_vendor@
|
||||
+thread_dirs = @thread_dirs@
|
||||
+tools_dirs = @tools_dirs@
|
||||
+uname_prog = @uname_prog@
|
||||
+vio_dir = @vio_dir@
|
||||
+vio_libs = @vio_libs@
|
||||
+
|
||||
+AUTOMAKE_OPTIONS = foreign
|
||||
+
|
||||
+# These are built from source in the Docs directory
|
||||
+EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
|
||||
+SUBDIRS = . include @docs_dirs@ @readline_dir@ \
|
||||
+ @thread_dirs@ pstack @sql_client_dirs@ \
|
||||
+ @sql_server_dirs@ scripts @man_dirs@ tests \
|
||||
+ BUILD netware os2 @libmysqld_dirs@ \
|
||||
+ @bench_dirs@ support-files @tools_dirs@
|
||||
+
|
||||
+
|
||||
+# Relink after clean
|
||||
+linked_sources = linked_client_sources linked_server_sources \
|
||||
+ linked_libmysql_sources linked_libmysql_r_sources \
|
||||
+ linked_libmysqld_sources linked_libmysqldex_sources \
|
||||
+ linked_include_sources @linked_netware_sources@
|
||||
+
|
||||
+
|
||||
+CLEANFILES = $(linked_sources)
|
||||
+subdir = .
|
||||
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
+CONFIG_HEADER = config.h
|
||||
+CONFIG_CLEAN_FILES = bdb/Makefile
|
||||
+DIST_SOURCES =
|
||||
+
|
||||
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
|
||||
+ ps-recursive install-info-recursive uninstall-info-recursive \
|
||||
+ all-recursive install-data-recursive install-exec-recursive \
|
||||
+ installdirs-recursive install-recursive uninstall-recursive \
|
||||
+ check-recursive installcheck-recursive
|
||||
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure COPYING \
|
||||
+ ChangeLog Makefile.am acconfig.h acinclude.m4 aclocal.m4 \
|
||||
+ config.guess config.h.in config.sub configure configure.in \
|
||||
+ depcomp install-sh ltconfig ltmain.sh missing mkinstalldirs
|
||||
+DIST_SUBDIRS = $(SUBDIRS)
|
||||
+all: config.h
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
+
|
||||
+.SUFFIXES:
|
||||
+
|
||||
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
+ configure.lineno
|
||||
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
+ cd $(top_srcdir) && \
|
||||
+ $(AUTOMAKE) --foreign Makefile
|
||||
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||
+
|
||||
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
+ $(SHELL) ./config.status --recheck
|
||||
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
+ cd $(srcdir) && $(AUTOCONF)
|
||||
+
|
||||
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4
|
||||
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
+
|
||||
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
+ @rm -f stamp-h1
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
+
|
||||
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
|
||||
+ cd $(top_srcdir) && $(AUTOHEADER)
|
||||
+ touch $(srcdir)/config.h.in
|
||||
+
|
||||
+distclean-hdr:
|
||||
+ -rm -f config.h stamp-h1
|
||||
+bdb/Makefile: $(top_builddir)/config.status $(top_srcdir)/bdb/Makefile.in
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
+
|
||||
+mostlyclean-libtool:
|
||||
+ -rm -f *.lo
|
||||
+
|
||||
+clean-libtool:
|
||||
+ -rm -rf .libs _libs
|
||||
+
|
||||
+distclean-libtool:
|
||||
+ -rm -f libtool
|
||||
+uninstall-info-am:
|
||||
+
|
||||
+# This directory's subdirectories are mostly independent; you can cd
|
||||
+# into them and run `make' without going through this Makefile.
|
||||
+# To change the values of `make' variables: instead of editing Makefiles,
|
||||
+# (1) if the variable is set in `config.status', edit `config.status'
|
||||
+# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
+# (2) otherwise, pass the desired values on the `make' command line.
|
||||
+$(RECURSIVE_TARGETS):
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
+ dot_seen=no; \
|
||||
+ target=`echo $@ | sed s/-recursive//`; \
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ echo "Making $$target in $$subdir"; \
|
||||
+ if test "$$subdir" = "."; then \
|
||||
+ dot_seen=yes; \
|
||||
+ local_target="$$target-am"; \
|
||||
+ else \
|
||||
+ local_target="$$target"; \
|
||||
+ fi; \
|
||||
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
+ done; \
|
||||
+ if test "$$dot_seen" = "no"; then \
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
+ fi; test -z "$$fail"
|
||||
+
|
||||
+mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
+maintainer-clean-recursive:
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
+ dot_seen=no; \
|
||||
+ case "$@" in \
|
||||
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
+ *) list='$(SUBDIRS)' ;; \
|
||||
+ esac; \
|
||||
+ rev=''; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = "."; then :; else \
|
||||
+ rev="$$subdir $$rev"; \
|
||||
+ fi; \
|
||||
+ done; \
|
||||
+ rev="$$rev ."; \
|
||||
+ target=`echo $@ | sed s/-recursive//`; \
|
||||
+ for subdir in $$rev; do \
|
||||
+ echo "Making $$target in $$subdir"; \
|
||||
+ if test "$$subdir" = "."; then \
|
||||
+ local_target="$$target-am"; \
|
||||
+ else \
|
||||
+ local_target="$$target"; \
|
||||
+ fi; \
|
||||
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
+ done && test -z "$$fail"
|
||||
+tags-recursive:
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
+ done
|
||||
+ctags-recursive:
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
+ done
|
||||
+
|
||||
+ETAGS = etags
|
||||
+ETAGSFLAGS =
|
||||
+
|
||||
+CTAGS = ctags
|
||||
+CTAGSFLAGS =
|
||||
+
|
||||
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ mkid -fID $$unique
|
||||
+
|
||||
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
+ $(TAGS_FILES) $(LISP)
|
||||
+ tags=; \
|
||||
+ here=`pwd`; \
|
||||
+ if (etags --etags-include --version) >/dev/null 2>&1; then \
|
||||
+ include_option=--etags-include; \
|
||||
+ else \
|
||||
+ include_option=--include; \
|
||||
+ fi; \
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = .; then :; else \
|
||||
+ test -f $$subdir/TAGS && \
|
||||
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
+ fi; \
|
||||
+ done; \
|
||||
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
+ $$tags $$unique
|
||||
+
|
||||
+ctags: CTAGS
|
||||
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
+ $(TAGS_FILES) $(LISP)
|
||||
+ tags=; \
|
||||
+ here=`pwd`; \
|
||||
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | \
|
||||
+ $(AWK) ' { files[$$0] = 1; } \
|
||||
+ END { for (i in files) print i; }'`; \
|
||||
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
+ $$tags $$unique
|
||||
+
|
||||
+GTAGS:
|
||||
+ here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
+ && cd $(top_srcdir) \
|
||||
+ && gtags -i $(GTAGS_ARGS) $$here
|
||||
+
|
||||
+distclean-tags:
|
||||
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
+
|
||||
+top_distdir = .
|
||||
+distdir = $(PACKAGE)-$(VERSION)
|
||||
+
|
||||
+am__remove_distdir = \
|
||||
+ { test ! -d $(distdir) \
|
||||
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
+ && rm -fr $(distdir); }; }
|
||||
+
|
||||
+GZIP_ENV = --best
|
||||
+distuninstallcheck_listfiles = find . -type f -print
|
||||
+distcleancheck_listfiles = find . -type f -print
|
||||
+
|
||||
+distdir: $(DISTFILES)
|
||||
+ $(am__remove_distdir)
|
||||
+ mkdir $(distdir)
|
||||
+ $(mkinstalldirs) $(distdir)/bdb $(distdir)/include
|
||||
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
+ list='$(DISTFILES)'; for file in $$list; do \
|
||||
+ case $$file in \
|
||||
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
+ esac; \
|
||||
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
+ dir="/$$dir"; \
|
||||
+ $(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
+ else \
|
||||
+ dir=''; \
|
||||
+ fi; \
|
||||
+ if test -d $$d/$$file; then \
|
||||
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
+ fi; \
|
||||
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
+ else \
|
||||
+ test -f $(distdir)/$$file \
|
||||
+ || cp -p $$d/$$file $(distdir)/$$file \
|
||||
+ || exit 1; \
|
||||
+ fi; \
|
||||
+ done
|
||||
+ list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
+ if test "$$subdir" = .; then :; else \
|
||||
+ test -d $(distdir)/$$subdir \
|
||||
+ || mkdir $(distdir)/$$subdir \
|
||||
+ || exit 1; \
|
||||
+ (cd $$subdir && \
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ top_distdir="$(top_distdir)" \
|
||||
+ distdir=../$(distdir)/$$subdir \
|
||||
+ distdir) \
|
||||
+ || exit 1; \
|
||||
+ fi; \
|
||||
+ done
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
+ dist-hook
|
||||
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
+ || chmod -R a+r $(distdir)
|
||||
+dist-gzip: distdir
|
||||
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
+ $(am__remove_distdir)
|
||||
+
|
||||
+dist dist-all: distdir
|
||||
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
+ $(am__remove_distdir)
|
||||
+
|
||||
+# This target untars the dist file and tries a VPATH configuration. Then
|
||||
+# it guarantees that the distribution is self-contained by making another
|
||||
+# tarfile.
|
||||
+distcheck: dist
|
||||
+ $(am__remove_distdir)
|
||||
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
+ mkdir $(distdir)/_build
|
||||
+ mkdir $(distdir)/_inst
|
||||
+ chmod a-w $(distdir)
|
||||
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
+ && cd $(distdir)/_build \
|
||||
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
+ $(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
+ distuninstallcheck \
|
||||
+ && chmod -R a-w "$$dc_install_base" \
|
||||
+ && ({ \
|
||||
+ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
+ && rm -rf "$$dc_destdir" \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||
+ && rm -f $(distdir).tar.gz \
|
||||
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
+ $(am__remove_distdir)
|
||||
+ @echo "$(distdir).tar.gz is ready for distribution" | \
|
||||
+ sed 'h;s/./=/g;p;x;p;x'
|
||||
+distuninstallcheck:
|
||||
+ @cd $(distuninstallcheck_dir) \
|
||||
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
+ || { echo "ERROR: files left after uninstall:" ; \
|
||||
+ if test -n "$(DESTDIR)"; then \
|
||||
+ echo " (check DESTDIR support)"; \
|
||||
+ fi ; \
|
||||
+ $(distuninstallcheck_listfiles) ; \
|
||||
+ exit 1; } >&2
|
||||
+distcleancheck: distclean
|
||||
+ @if test '$(srcdir)' = . ; then \
|
||||
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
+ exit 1 ; \
|
||||
+ fi
|
||||
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
+ || { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
+ $(distcleancheck_listfiles) ; \
|
||||
+ exit 1; } >&2
|
||||
+check-am: all-am
|
||||
+check: check-recursive
|
||||
+all-am: Makefile config.h
|
||||
+installdirs: installdirs-recursive
|
||||
+installdirs-am:
|
||||
+
|
||||
+install: install-recursive
|
||||
+install-exec: install-exec-recursive
|
||||
+install-data: install-data-recursive
|
||||
+uninstall: uninstall-recursive
|
||||
+
|
||||
+install-am: all-am
|
||||
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
+
|
||||
+installcheck: installcheck-recursive
|
||||
+install-strip:
|
||||
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
+ `test -z '$(STRIP)' || \
|
||||
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
+mostlyclean-generic:
|
||||
+
|
||||
+clean-generic:
|
||||
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
+
|
||||
+distclean-generic:
|
||||
+ -rm -f $(CONFIG_CLEAN_FILES)
|
||||
+
|
||||
+maintainer-clean-generic:
|
||||
+ @echo "This command is intended for maintainers to use"
|
||||
+ @echo "it deletes files that may require special tools to rebuild."
|
||||
+clean: clean-recursive
|
||||
+
|
||||
+clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
+
|
||||
+distclean: distclean-recursive
|
||||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
+ -rm -f Makefile
|
||||
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
|
||||
+ distclean-tags
|
||||
+
|
||||
+dvi: dvi-recursive
|
||||
+
|
||||
+dvi-am:
|
||||
+
|
||||
+info: info-recursive
|
||||
+
|
||||
+info-am:
|
||||
+
|
||||
+install-data-am:
|
||||
+
|
||||
+install-exec-am:
|
||||
+
|
||||
+install-info: install-info-recursive
|
||||
+
|
||||
+install-man:
|
||||
+
|
||||
+installcheck-am:
|
||||
+
|
||||
+maintainer-clean: maintainer-clean-recursive
|
||||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
+ -rm -rf $(top_srcdir)/autom4te.cache
|
||||
+ -rm -f Makefile
|
||||
+maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
+
|
||||
+mostlyclean: mostlyclean-recursive
|
||||
+
|
||||
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
+
|
||||
+pdf: pdf-recursive
|
||||
+
|
||||
+pdf-am:
|
||||
+
|
||||
+ps: ps-recursive
|
||||
+
|
||||
+ps-am:
|
||||
+
|
||||
+uninstall-am: uninstall-info-am
|
||||
+
|
||||
+uninstall-info: uninstall-info-recursive
|
||||
+
|
||||
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
|
||||
+ clean-generic clean-libtool clean-recursive ctags \
|
||||
+ ctags-recursive dist dist-all dist-gzip distcheck distclean \
|
||||
+ distclean-generic distclean-hdr distclean-libtool \
|
||||
+ distclean-recursive distclean-tags distcleancheck distdir \
|
||||
+ distuninstallcheck dvi dvi-am dvi-recursive info info-am \
|
||||
+ info-recursive install install-am install-data install-data-am \
|
||||
+ install-data-recursive install-exec install-exec-am \
|
||||
+ install-exec-recursive install-info install-info-am \
|
||||
+ install-info-recursive install-man install-recursive \
|
||||
+ install-strip installcheck installcheck-am installdirs \
|
||||
+ installdirs-am installdirs-recursive maintainer-clean \
|
||||
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
|
||||
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
|
||||
+ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \
|
||||
+ tags-recursive uninstall uninstall-am uninstall-info-am \
|
||||
+ uninstall-info-recursive uninstall-recursive
|
||||
+
|
||||
+
|
||||
+# This is just so that the linking is done early.
|
||||
+config.h: $(linked_sources)
|
||||
+
|
||||
+linked_include_sources:
|
||||
+ cd include; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_include_sources
|
||||
+
|
||||
+linked_client_sources: @linked_client_targets@
|
||||
+ cd client; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_client_sources
|
||||
+
|
||||
+linked_libmysql_sources:
|
||||
+ cd libmysql; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysql_sources
|
||||
+
|
||||
+linked_libmysql_r_sources: linked_libmysql_sources
|
||||
+ cd libmysql_r; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysql_r_sources
|
||||
+
|
||||
+linked_libmysqld_sources:
|
||||
+ cd libmysqld; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysqld_sources
|
||||
+
|
||||
+linked_libmysqldex_sources:
|
||||
+ cd libmysqld/examples; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_libmysqldex_sources
|
||||
+
|
||||
+linked_netware_sources:
|
||||
+ cd @netware_dir@; $(MAKE) link_sources
|
||||
+ echo timestamp > linked_netware_sources
|
||||
+
|
||||
+#avoid recursive make calls in sql directory
|
||||
+linked_server_sources:
|
||||
+ cd sql; rm -f mini_client_errors.c;@LN_CP_F@ ../libmysql/errmsg.c mini_client_errors.c
|
||||
+ echo timestamp > linked_server_sources
|
||||
+
|
||||
+# Create permission databases
|
||||
+init-db: all
|
||||
+ $(top_builddir)/scripts/mysql_install_db
|
||||
+
|
||||
+bin-dist: all
|
||||
+ $(top_builddir)/scripts/make_binary_distribution @MAKE_BINARY_DISTRIBUTION_OPTIONS@
|
||||
+
|
||||
+# Remove BK's "SCCS" subdirectories from source distribution
|
||||
+dist-hook:
|
||||
+ rm -rf `find $(distdir) -type d -name SCCS`
|
||||
+
|
||||
+tags:
|
||||
+ support-files/build-tags
|
||||
+.PHONY: init-db bin-dist
|
||||
+
|
||||
+# Test installation
|
||||
+
|
||||
+test:
|
||||
+ cd mysql-test ; ./mysql-test-run
|
||||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
+.NOEXPORT:
|
|
@ -1,29 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 33_scripts__mysql_create_system_tables__no_test.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: scripts__mysql_create_system_tables__no_test
|
||||
## DP: A user with no password prevents a normal user from login under certain
|
||||
## DP: circumstances as it is checked first. See #301741.
|
||||
## DP: http://bugs.mysql.com/bug.php?id=6901
|
||||
|
||||
@DPATCH@
|
||||
--- old/scripts/mysql_system_tables_data.sql 2008-12-04 22:59:44.000000000 +0100
|
||||
+++ new/scripts/mysql_system_tables_data.sql 2008-12-04 23:00:07.000000000 +0100
|
||||
@@ -11,8 +11,6 @@
|
||||
-- Fill "db" table with default grants for anyone to
|
||||
-- access database 'test' and 'test_%' if "db" table didn't exist
|
||||
CREATE TEMPORARY TABLE tmp_db LIKE db;
|
||||
-INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
|
||||
-INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
|
||||
INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0;
|
||||
DROP TABLE tmp_db;
|
||||
|
||||
@@ -24,7 +22,5 @@
|
||||
INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
|
||||
REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost';
|
||||
REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
|
||||
-INSERT INTO tmp_user (host,user) VALUES ('localhost','');
|
||||
-INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE LOWER(@current_hostname ) != 'localhost';
|
||||
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
|
||||
DROP TABLE tmp_user;
|
|
@ -1,43 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 38_scripts__mysqld_safe.sh__signals.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Executes /etc/init.d/mysql on signals
|
||||
## DP: Reported as http://bugs.mysql.com/bug.php?id=31361
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- old/scripts/mysqld_safe.sh 2006-07-29 13:12:34.000000000 +0200
|
||||
+++ old/scripts/mysqld_safe.sh 2006-07-29 13:14:08.000000000 +0200
|
||||
@@ -16,8 +16,6 @@
|
||||
# This command can be used as pipe to syslog. With "-s" it also logs to stderr.
|
||||
ERR_LOGGER="logger -p daemon.err -t mysqld_safe -i"
|
||||
|
||||
-trap '' 1 2 3 15 # we shouldn't let anyone kill us
|
||||
-
|
||||
umask 007
|
||||
|
||||
defaults=
|
||||
@@ -122,7 +122,7 @@
|
||||
# sed buffers output (only GNU sed supports a -u (unbuffered) option)
|
||||
# which means that messages may not get sent to syslog until the
|
||||
# mysqld process quits.
|
||||
- cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error"
|
||||
+ cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error & wait"
|
||||
;;
|
||||
*)
|
||||
echo "Internal program error (non-fatal):" \
|
||||
@@ -352,6 +350,13 @@
|
||||
fi
|
||||
|
||||
#
|
||||
+# From now on, we catch signals to do a proper shutdown of mysqld
|
||||
+# when signalled to do so.
|
||||
+#
|
||||
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf refresh' 1 # HUP
|
||||
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf shutdown' 2 3 15 # INT QUIT and TERM
|
||||
+
|
||||
+#
|
||||
# Uncomment the following lines if you want all tables to be automatically
|
||||
# checked and repaired during startup. You should add sensible key_buffer
|
||||
# and sort_buffer values to my.cnf to improve check performance or require
|
|
@ -1,20 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 41_scripts__mysql_install_db.sh__no_test.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: scripts__mysql_install_db.sh__no_test
|
||||
## DP: http://bugs.mysql.com/bug.php?id=6901
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- mysql-dfsg-5.1-5.1.23rc.orig/scripts/mysql_install_db.sh 2008-01-29 22:41:20.000000000 +0100
|
||||
+++ mysql-dfsg-5.1-5.1.23rc/scripts/mysql_install_db.sh 2008-02-28 10:08:11.000000000 +0100
|
||||
@@ -306,7 +306,7 @@
|
||||
fi
|
||||
|
||||
# Create database directories
|
||||
-for dir in $ldata $ldata/mysql $ldata/test
|
||||
+for dir in $ldata $ldata/mysql
|
||||
do
|
||||
if test ! -d $dir
|
||||
then
|
|
@ -1,24 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 99-unnamed.dpatch by <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Removes unnecessary library dependencies. See #390692
|
||||
|
||||
@DPATCH@
|
||||
diff -Nur mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh
|
||||
--- mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh 2009-01-19 17:30:55.000000000 +0100
|
||||
+++ mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh 2009-02-08 17:17:48.000000000 +0100
|
||||
@@ -104,10 +104,10 @@
|
||||
|
||||
# Create options
|
||||
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
|
||||
-libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
||||
+libs=" $ldflags -L$pkglibdir -lmysqlclient"
|
||||
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
|
||||
-libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
|
||||
-embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
|
||||
+libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @openssl_libs@ "
|
||||
+embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
|
||||
|
||||
if [ -r "$pkglibdir/libmygcc.a" ]; then
|
||||
# When linking against the static library with a different version of GCC
|
|
@ -1,23 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 50_mysql-test__db_test.dpatch by Christian Hammers <ch@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: Patch 33_scripts__mysql_create_system_tables__no_test removes the
|
||||
## DP: rights for anybody to connect to the test database but the test
|
||||
## DP: suite depends on them.
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- old/mysql-test/mysql-test-run.pl 2009-06-16 14:24:09.000000000 +0200
|
||||
+++ new/mysql-test/mysql-test-run.pl 2009-07-04 00:03:34.000000000 +0200
|
||||
@@ -2717,6 +2717,10 @@
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
+ mtr_tofile($bootstrap_sql_file, "-- Debian removed the default privileges on the 'test' database\n");
|
||||
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
|
||||
+
|
||||
+
|
||||
# Add test data for timezone - this is just a subset, on a real
|
||||
# system these tables will be populated either by mysql_tzinfo_to_sql
|
||||
# or by downloading the timezone table package from our website
|
|
@ -1,16 +0,0 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
|
||||
@DPATCH@
|
||||
|
||||
--- a/scripts/mysql_install_db.sh 2009-08-08 09:20:07.000000000 +0000
|
||||
+++ b/scripts/mysql_install_db.sh 2009-08-08 09:29:23.000000000 +0000
|
||||
@@ -469,6 +469,9 @@
|
||||
echo
|
||||
echo "Please report any problems with the $scriptdir/mysqlbug script!"
|
||||
echo
|
||||
+ echo "For commercial support please contact Percona at http://www.percona.com/contacts.html"
|
||||
+ echo
|
||||
+
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -1,4 +0,0 @@
|
|||
FAQ:
|
||||
|
||||
Q: My <tab> completition is gone, why?
|
||||
A: You have "no-auto-rehash" in the "[mysql]" section of /etc/mysql/my.cnf!
|
|
@ -1,3 +0,0 @@
|
|||
usr/bin/
|
||||
usr/share/man/man1/
|
||||
usr/share/perl5/
|
|
@ -1,3 +0,0 @@
|
|||
debian/additions/innotop/changelog.innotop
|
||||
EXCEPTIONS-CLIENT
|
||||
README
|
|
@ -1,39 +0,0 @@
|
|||
usr/bin/innotop
|
||||
usr/bin/myisam_ftdump
|
||||
usr/bin/mysql
|
||||
usr/bin/mysqlaccess
|
||||
usr/bin/mysqladmin
|
||||
usr/bin/mysqlbug
|
||||
usr/bin/mysqlcheck
|
||||
usr/bin/mysql_client_test
|
||||
usr/bin/mysqldump
|
||||
usr/bin/mysqldumpslow
|
||||
usr/bin/mysql_find_rows
|
||||
usr/bin/mysql_fix_extensions
|
||||
usr/bin/mysqlimport
|
||||
usr/bin/mysqlreport
|
||||
usr/bin/mysqlshow
|
||||
usr/bin/mysql_waitpid
|
||||
usr/sbin/mysqlmanager
|
||||
usr/share/lintian/overrides/percona-xtradb-client-5.1
|
||||
usr/share/man/man1/innotop.1
|
||||
usr/share/man/man1/myisam_ftdump.1
|
||||
usr/share/man/man1/mysql.1
|
||||
usr/share/man/man1/mysqlaccess.1
|
||||
usr/share/man/man1/mysqladmin.1
|
||||
usr/share/man/man1/mysqlbug.1
|
||||
usr/share/man/man1/mysqlcheck.1
|
||||
usr/share/man/man1/mysqldump.1
|
||||
usr/share/man/man1/mysqldumpslow.1
|
||||
usr/share/man/man1/mysql_find_rows.1
|
||||
usr/share/man/man1/mysql_fix_extensions.1
|
||||
usr/share/man/man1/mysqlimport.1
|
||||
usr/share/man/man1/mysqlmanager.1
|
||||
usr/share/man/man1/mysqlmanagerc.1
|
||||
usr/share/man/man1/mysqlmanager-pwgen.1
|
||||
usr/share/man/man1/mysqlreport.1
|
||||
usr/share/man/man1/mysqlshow.1
|
||||
usr/share/man/man1/mysql_tableinfo.1
|
||||
usr/share/man/man1/mysql_waitpid.1
|
||||
usr/share/man/man1/mysql_client_test.1
|
||||
usr/share/perl5/InnoDBParser.pm
|
|
@ -1,3 +0,0 @@
|
|||
usr/bin/mysqlcheck usr/bin/mysqlrepair
|
||||
usr/bin/mysqlcheck usr/bin/mysqlanalyze
|
||||
usr/bin/mysqlcheck usr/bin/mysqloptimize
|
|
@ -1,3 +0,0 @@
|
|||
percona-xtradb-client-5.1: package-has-a-duplicate-relation
|
||||
percona-xtradb-client-5.1: wrong-name-for-upstream-changelog usr/share/doc/percona-xtradb-client-5.1/changelog.innotop.gz
|
||||
percona-xtradb-client-5.1: pkg-not-in-package-test innotop
|
|
@ -1,3 +0,0 @@
|
|||
# According to /usr/share/menu/ policy 1.4, not /usr/share/doc/debian-policy/
|
||||
?package(innotop):needs="text" section="Applications/Data Management"\
|
||||
title="innotop" command="/usr/bin/innotop"
|
|
@ -1 +0,0 @@
|
|||
etc/mysql/conf.d/
|
|
@ -1,2 +0,0 @@
|
|||
etc/mysql/my.cnf
|
||||
usr/share/percona-xtradb-common/internal-use-only
|
|
@ -1,2 +0,0 @@
|
|||
script-not-executable ./usr/share/percona-xtradb-common/internal-use-only/_etc_init.d_mysql
|
||||
script-not-executable ./usr/share/percona-xtradb-common/internal-use-only/_etc_mysql_debian-start
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
rmdir /etc/mysql 2>/dev/null || true
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -1,34 +0,0 @@
|
|||
mysql-dfsg-5.1 (5.1.38-1) unstable; urgency=low
|
||||
|
||||
* Please read http://dev.mysql.com/doc/refman/5.1/en/upgrading-from-5-0.html
|
||||
* Make sure to do a REPAIR TABLE on all tables that use UTF-8 and have a
|
||||
FULLTEXT index.
|
||||
|
||||
-- Christian Hammers <ch@debian.org> Sat, 4 Jul 2009 02:31:21 +0200
|
||||
|
||||
mysql-dfsg-5.0 (5.1.14beta-2) unstable; urgency=low
|
||||
|
||||
* The BerkeleyDB Storage Engine is no longer supported. If the options
|
||||
have-bdb or skip-bdb are found, MySQL will not start. If you have BDB
|
||||
tables, you should change them to use another storage engine before
|
||||
upgrading to 5.1.
|
||||
|
||||
-- Monty Taylor <mordred@inaugust.com> Thu, 18 Jan 2007 12:28:21 -0800
|
||||
|
||||
mysql-dfsg-5.0 (5.0.45-2) unstable; urgency=low
|
||||
|
||||
* Binary logging is now disabled by default. If you really need it (e.g. on
|
||||
a replication master), remove the comment from the log_bin line in my.cnf.
|
||||
|
||||
-- Norbert Tretkowski <nobse@debian.org> Sat, 10 Nov 2007 16:26:35 +0100
|
||||
|
||||
mysql-dfsg-5.0 (5.0.18-9) unstable; urgency=low
|
||||
|
||||
* Rotation of the binary logs is now configured in /etc/mysql/my.cnf with
|
||||
"expire-logs-days" which defaults to 20 days. The old file
|
||||
/etc/mysql/debian-log-rotate.conf should be removed together with
|
||||
/etc/cron.daily/mysql-server after this value has been adjusted. Note that
|
||||
the old variable defined the number of files whereas the new one defines
|
||||
a time span in days.
|
||||
|
||||
-- Christian Hammers <ch@debian.org> Tue, 24 Jan 2006 22:18:21 +0100
|
|
@ -1,109 +0,0 @@
|
|||
* MYSQL WON'T START OR STOP?:
|
||||
=============================
|
||||
You may never ever delete the special mysql user "debian-sys-maint". This
|
||||
user together with the credentials in /etc/mysql/debian.cnf are used by the
|
||||
init scripts to stop the server as they would require knowledge of the mysql
|
||||
root users password else.
|
||||
So in most of the times you can fix the situation by making sure that the
|
||||
debian.cnf file contains the right password, e.g. by setting a new one
|
||||
(remember to do a "flush privileges" then).
|
||||
|
||||
* WHAT TO DO AFTER UPGRADES:
|
||||
============================
|
||||
The privilege tables are automatically updated so all there is left is read
|
||||
the changelogs on dev.mysql.com to see if any changes affect custom apps.
|
||||
|
||||
* WHAT TO DO AFTER INSTALLATION:
|
||||
================================
|
||||
The MySQL manual describes certain steps to do at this stage in a separate
|
||||
chapter. They are not necessary as the Debian packages does them
|
||||
automatically.
|
||||
|
||||
The only thing that is left over for the admin is
|
||||
- setting the passwords
|
||||
- creating new users and databases
|
||||
- read the rest of this text
|
||||
|
||||
* DOWNGRADING TO 4.0 or 4.1:
|
||||
============================
|
||||
Unsupported. Period.
|
||||
But if you do and get problems or make interesting experiences, mail me, it
|
||||
might help others.
|
||||
Ok, if you really want, I would recommend to "mysqldump --opt" all tables,
|
||||
then purge 4.1, delete /var/lib/mysql, install 4.0 and insert the dumps. Be
|
||||
carefully, though, with the "mysql" table, you might not simply overwrite that
|
||||
one as the password for the mysql "debian-sys-maint" user is stored in
|
||||
/etc/mysql/debian.cnf and needed by /etc/init.d/ to start mysql and check if
|
||||
it's alive.
|
||||
|
||||
* SOME APPLICATION CAN NO LONGER CONNECT:
|
||||
=========================================
|
||||
This application is probably linked against libmysqlclient12 or below and
|
||||
somebody has created a mysql user with new-style passwords.
|
||||
The old_passwords=1 option in /etc/mysql/my.cnf might help. If not the
|
||||
application that inserted the user has to be changed or the application that
|
||||
tries to connect updated to libmysqlclient14 or -15.
|
||||
|
||||
* NETWORKING:
|
||||
=============
|
||||
For security reasons, the Debian package has enabled networking only on the
|
||||
loop-back device using "bind-address" in /etc/mysql/my.cnf. Check with
|
||||
"netstat -tlnp" where it is listening. If your connection is aborted
|
||||
immediately see if "mysqld: all" or similar is in /etc/hosts.allow and read
|
||||
hosts_access(5).
|
||||
|
||||
* WHERE IS THE DOCUMENTATION?:
|
||||
==============================
|
||||
Unfortunately due to licensing restrictions, debian currently not able
|
||||
to provide the mysql-doc package in any format. For the most up to date
|
||||
documentation, please go to http://dev.mysql.com/doc.
|
||||
|
||||
* PASSWORDS:
|
||||
============
|
||||
It is strongly recommended to set a password for the mysql root user (which
|
||||
/usr/bin/mysql -u root -D mysql -e "update user set password=password('new-password') where user='root'"
|
||||
/usr/bin/mysql -u root -e "flush privileges"
|
||||
If you already had a password set add "-p" before "-u" to the lines above.
|
||||
|
||||
|
||||
If you are tired to type the password in every time or want to automate your
|
||||
scripts you can store it in the file $HOME/.my.cnf. It should be chmod 0600
|
||||
(-rw------- username username .my.cnf) to ensure that nobody else can read
|
||||
it. Every other configuration parameter can be stored there, too. You will
|
||||
find an example below and more information in the MySQL manual in
|
||||
/usr/share/doc/mysql-doc or www.mysql.com.
|
||||
|
||||
ATTENTION: It is necessary, that a .my.cnf from root always contains a "user"
|
||||
line wherever there is a "password" line, else, the Debian maintenance
|
||||
scripts, that use /etc/mysql/debian.cnf, will use the username
|
||||
"debian-sys-maint" but the password that is in root's .my.cnf. Also note,
|
||||
that every change you make in the /root/.my.cnf will affect the mysql cron
|
||||
script, too.
|
||||
|
||||
# an example of $HOME/.my.cnf
|
||||
[client]
|
||||
user = your-mysql-username
|
||||
password = enter-your-good-new-password-here
|
||||
|
||||
* BIG_ROWS FOR EVEN MORE ROWS IN A TABLE:
|
||||
=========================================
|
||||
If you ever run out of rows in a table there is the possibility of building
|
||||
the package with "-DBIG_ROWS" which, according to a MySQL employee on
|
||||
packagers@lists.mysql.com should lead to a 64bit row index (I guess > 2^32
|
||||
rows) but also to an approx. 5% performance loss.
|
||||
|
||||
* BerkeleyDB Storage Engine
|
||||
===========================
|
||||
Support for BerkeleyDB has been removed in 5.1, and consequently both the
|
||||
have-bdb and skip-bdb configuration options will cause the server to fail.
|
||||
Removing the options from /etc/mysql/my.cnf will fix this problem.
|
||||
|
||||
* FURTHER NOTES ON REPLICATION
|
||||
===============================
|
||||
If the MySQL server is acting as a replication slave, you should not
|
||||
set --tmpdir to point to a directory on a memory-based filesystem or to
|
||||
a directory that is cleared when the server host restarts. A replication
|
||||
slave needs some of its temporary files to survive a machine restart so
|
||||
that it can replicate temporary tables or LOAD DATA INFILE operations. If
|
||||
files in the temporary file directory are lost when the server restarts,
|
||||
replication fails.
|
|
@ -1,46 +0,0 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
|
||||
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
|
||||
|
||||
CNF=/etc/mysql/my.cnf
|
||||
|
||||
# Beware that there are two ypwhich one of them needs the 2>/dev/null!
|
||||
if test -n "`which ypwhich 2>/dev/null`" && ypwhich >/dev/null 2>&1; then
|
||||
db_input high percona-xtradb-server-5.1/nis_warning || true
|
||||
db_go
|
||||
fi
|
||||
|
||||
# only ask this question on fresh installs, during "reconfiguration" and when
|
||||
# not upgrading from an existing 5.0 installation.
|
||||
# there is also an additional check for empty root passwords in the
|
||||
# postinst script when the tools are available for us to use.
|
||||
if [ "$1" = "configure" ] && ([ -z "$2" ] && [ ! -e "/var/lib/mysql/debian-5.0.flag" ] ) || [ "$1" = "reconfigure" ]; then
|
||||
while :; do
|
||||
RET=""
|
||||
db_input high percona-xtradb-server/root_password || true
|
||||
db_go
|
||||
db_get percona-xtradb-server/root_password
|
||||
# if password isn't empty we ask for password verification
|
||||
if [ -z "$RET" ]; then
|
||||
db_fset percona-xtradb-server/root_password seen false
|
||||
db_fset percona-xtradb-server/root_password_again seen false
|
||||
break
|
||||
fi
|
||||
ROOT_PW="$RET"
|
||||
db_input high percona-xtradb-server/root_password_again || true
|
||||
db_go
|
||||
db_get percona-xtradb-server/root_password_again
|
||||
if [ "$RET" == "$ROOT_PW" ]; then
|
||||
ROOT_PW=''
|
||||
break
|
||||
fi
|
||||
db_fset percona-xtradb-server/password_mismatch seen false
|
||||
db_input critical percona-xtradb-server/password_mismatch
|
||||
db_set percona-xtradb-server/root_password ""
|
||||
db_set percona-xtradb-server/root_password_again ""
|
||||
db_go
|
||||
done
|
||||
fi
|
|
@ -1,9 +0,0 @@
|
|||
etc/init.d
|
||||
etc/logrotate.d
|
||||
etc/mysql/conf.d
|
||||
usr/bin
|
||||
usr/sbin
|
||||
usr/share/man/man8
|
||||
usr/share/mysql
|
||||
var/run/mysqld
|
||||
var/lib/mysql-upgrade
|
|
@ -1 +0,0 @@
|
|||
EXCEPTIONS-CLIENT
|
|
@ -1,53 +0,0 @@
|
|||
usr/lib/mysql/*so*
|
||||
etc/mysql/debian-start
|
||||
etc/mysql/conf.d/mysqld_safe_syslog.cnf
|
||||
usr/bin/msql2mysql
|
||||
usr/bin/my_print_defaults
|
||||
usr/bin/myisamchk
|
||||
usr/bin/myisamlog
|
||||
usr/bin/myisampack
|
||||
usr/bin/mysql_convert_table_format
|
||||
usr/bin/mysql_fix_privilege_tables
|
||||
usr/bin/mysql_install_db
|
||||
usr/bin/mysql_secure_installation
|
||||
usr/bin/mysql_setpermission
|
||||
usr/bin/mysql_tzinfo_to_sql
|
||||
usr/bin/mysql_upgrade
|
||||
usr/bin/mysql_zap
|
||||
usr/bin/mysqlbinlog
|
||||
usr/bin/mysqld_multi
|
||||
usr/bin/mysqld_safe
|
||||
usr/bin/mysqlhotcopy
|
||||
usr/bin/mysqltest
|
||||
usr/bin/perror
|
||||
usr/bin/replace
|
||||
usr/bin/resolve_stack_dump
|
||||
usr/bin/resolveip
|
||||
usr/sbin/mysqld
|
||||
usr/share/doc/percona-xtradb-server-5.1/
|
||||
usr/share/lintian/overrides/percona-xtradb-server-5.1
|
||||
usr/share/man/man1/msql2mysql.1
|
||||
usr/share/man/man1/myisamchk.1
|
||||
usr/share/man/man1/myisamlog.1
|
||||
usr/share/man/man1/myisampack.1
|
||||
usr/share/man/man1/my_print_defaults.1
|
||||
usr/share/man/man1/mysqlbinlog.1
|
||||
usr/share/man/man1/mysql_convert_table_format.1
|
||||
usr/share/man/man1/mysqld_multi.1
|
||||
usr/share/man/man1/mysqld_safe.1
|
||||
usr/share/man/man1/mysql_fix_privilege_tables.1
|
||||
usr/share/man/man1/mysqlhotcopy.1
|
||||
usr/share/man/man1/mysql_install_db.1
|
||||
usr/share/man/man1/mysql_secure_installation.1
|
||||
usr/share/man/man1/mysql_setpermission.1
|
||||
usr/share/man/man1/mysql_upgrade.1
|
||||
usr/share/man/man1/mysqltest.1
|
||||
usr/share/man/man1/mysql_zap.1
|
||||
usr/share/man/man1/perror.1
|
||||
usr/share/man/man1/replace.1
|
||||
usr/share/man/man1/resolveip.1
|
||||
usr/share/man/man1/resolve_stack_dump.1
|
||||
usr/share/man/man1/innochecksum.1
|
||||
usr/share/man/man1/mysql_tzinfo_to_sql.1
|
||||
usr/share/man/man8/mysqld.8
|
||||
usr/share/mysql/
|
|
@ -1,2 +0,0 @@
|
|||
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mysql-test-run
|
||||
usr/share/mysql/mysql-test/mysql-test-run.pl usr/share/mysql/mysql-test/mtr
|
|
@ -1,4 +0,0 @@
|
|||
percona-xtradb-server-5.1: possible-bashism-in-maintainer-script postinst:81 'p{("a".."z","A".."Z",0..9)[int(rand(62))]}'
|
||||
percona-xtradb-server-5.1: possible-bashism-in-maintainer-script preinst:33 '${cmd/ */}'
|
||||
percona-xtradb-server-5.1: statically-linked-binary ./usr/bin/mysql_tzinfo_to_sql
|
||||
percona-xtradb-server-5.1: statically-linked-binary ./usr/sbin/mysqld
|
|
@ -1,9 +0,0 @@
|
|||
/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
|
||||
/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
|
||||
/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
|
||||
mysqld\[[0-9]+\]: $
|
||||
mysqld\[[0-9]+\]: Version: .* socket: '/var/run/mysqld/mysqld.sock' port: 3306$
|
||||
mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
|
||||
mysqld_safe\[[0-9]+\]: started$
|
||||
usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
|
||||
usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
|
|
@ -1,32 +0,0 @@
|
|||
/etc/init.d/mysql\[[0-9]+\]: [0-9]+ processes alive and '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
|
||||
/etc/init.d/mysql\[[0-9]+\]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists\!$
|
||||
/etc/init.d/mysql\[[0-9]+\]: '/usr/bin/mysqladmin --defaults-(extra-)?file=/etc/mysql/debian.cnf ping' resulted in$
|
||||
/etc/mysql/debian-start\[[0-9]+\]: Checking for crashed MySQL tables\.$
|
||||
mysqld\[[0-9]+\]: ?$
|
||||
mysqld\[[0-9]+\]: .*InnoDB: Shutdown completed
|
||||
mysqld\[[0-9]+\]: .*InnoDB: Started;
|
||||
mysqld\[[0-9]+\]: .*InnoDB: Starting shutdown\.\.\.$
|
||||
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Normal shutdown$
|
||||
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: ready for connections\.$
|
||||
mysqld\[[0-9]+\]: .*\[Note\] /usr/sbin/mysqld: Shutdown complete$
|
||||
mysqld\[[0-9]+\]: /usr/sbin/mysqld: ready for connections\.$
|
||||
mysqld\[[0-9]+\]: .*/usr/sbin/mysqld: Shutdown Complete$
|
||||
mysqld\[[0-9]+\]: Version: .* socket
|
||||
mysqld\[[0-9]+\]: Warning: Ignoring user change to 'mysql' because the user was set to 'mysql' earlier on the command line$
|
||||
mysqld_safe\[[0-9]+\]: ?$
|
||||
mysqld_safe\[[0-9]+\]: able to use the new GRANT command!$
|
||||
mysqld_safe\[[0-9]+\]: ended$
|
||||
mysqld_safe\[[0-9]+\]: http://www.mysql.com$
|
||||
mysqld_safe\[[0-9]+\]: NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run$
|
||||
mysqld_safe\[[0-9]+\]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !$
|
||||
mysqld_safe\[[0-9]+\]: Please report any problems with the /usr/bin/mysqlbug script!$
|
||||
mysqld_safe\[[0-9]+\]: See the manual for more instructions.$
|
||||
mysqld_safe\[[0-9]+\]: started$
|
||||
mysqld_safe\[[0-9]+\]: Support MySQL by buying support/licenses at https://order.mysql.com$
|
||||
mysqld_safe\[[0-9]+\]: The latest information about MySQL is available on the web at$
|
||||
mysqld_safe\[[0-9]+\]: the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be$
|
||||
mysqld_safe\[[0-9]+\]: To do so, start the server, then issue the following commands:$
|
||||
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root -h app109 password 'new-password'$
|
||||
mysqld_safe\[[0-9]+\]: /usr/bin/mysqladmin -u root password 'new-password'$
|
||||
usermod\[[0-9]+\]: change user `mysql' GID from `([0-9]+)' to `\1'$
|
||||
usermod\[[0-9]+\]: change user `mysql' shell from `/bin/false' to `/bin/false'$
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue