diff options
author | Magnus Svensson <msvensson@mysql.com> | 2008-05-30 11:12:07 +0200 |
---|---|---|
committer | Magnus Svensson <msvensson@mysql.com> | 2008-05-30 11:12:07 +0200 |
commit | 3d34d34c888afdb93c8d704ab20f8d0a7e1539ca (patch) | |
tree | 2c436ada208ddcfb89206130a251a9bc72631891 /storage | |
parent | 3e18c89fdb4c2d51eaf245c4569ede1debe842de (diff) | |
parent | 4215c0d625fc30da6d0375fd9375534e70c08e5d (diff) | |
download | mariadb-git-3d34d34c888afdb93c8d704ab20f8d0a7e1539ca.tar.gz |
Merge 5.1->5.1-rpl
Fix paths and name of a few files to make it work with new mtr.pl
Diffstat (limited to 'storage')
-rwxr-xr-x | storage/innobase/CMakeLists.txt | 8 | ||||
-rw-r--r-- | storage/myisam/mi_create.c | 1 | ||||
-rwxr-xr-x | storage/myisammrg/CMakeLists.txt | 2 | ||||
-rw-r--r-- | storage/myisammrg/Makefile.am | 2 | ||||
-rw-r--r-- | storage/myisammrg/ha_myisammrg.cc | 6 | ||||
-rw-r--r-- | storage/myisammrg/ha_myisammrg.h | 2 | ||||
-rw-r--r-- | storage/myisammrg/myrg_records.c | 27 |
7 files changed, 46 insertions, 2 deletions
diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index c4246abd30d..021a47f0398 100755 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -17,6 +17,14 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX") ADD_DEFINITIONS(-DMYSQL_SERVER -D_WIN32 -D_LIB) +# Bug 19424 - InnoDB: Possibly a memory overrun of the buffer being freed (64-bit Visual C) +# Removing Win64 compiler optimizations for all innodb/mem/* files. +IF(CMAKE_GENERATOR MATCHES "Visual Studio" AND CMAKE_SIZEOF_VOID_P MATCHES 8) + SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/storage/innobase/mem/mem0mem.c + ${CMAKE_SOURCE_DIR}/storage/innobase/mem/mem0pool.c + PROPERTIES COMPILE_FLAGS -Od) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio" AND CMAKE_SIZEOF_VOID_P MATCHES 8) + INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/zlib ${CMAKE_SOURCE_DIR}/storage/innobase/include ${CMAKE_SOURCE_DIR}/storage/innobase/handler diff --git a/storage/myisam/mi_create.c b/storage/myisam/mi_create.c index bc4dcf0bdbb..2784861f48a 100644 --- a/storage/myisam/mi_create.c +++ b/storage/myisam/mi_create.c @@ -634,6 +634,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, my_printf_error(0, "MyISAM table '%s' is in use " "(most likely by a MERGE table). Try FLUSH TABLES.", MYF(0), name + dirname_length(name)); + my_errno= HA_ERR_TABLE_EXIST; goto err; } diff --git a/storage/myisammrg/CMakeLists.txt b/storage/myisammrg/CMakeLists.txt index 403ca6c2776..1c94e2bd50c 100755 --- a/storage/myisammrg/CMakeLists.txt +++ b/storage/myisammrg/CMakeLists.txt @@ -26,7 +26,7 @@ SET(MYISAMMRG_SOURCES myrg_close.c myrg_create.c myrg_delete.c myrg_extra.c myr myrg_locking.c myrg_open.c myrg_panic.c myrg_queue.c myrg_range.c myrg_rfirst.c myrg_rkey.c myrg_rlast.c myrg_rnext.c myrg_rnext_same.c myrg_rprev.c myrg_rrnd.c myrg_rsame.c myrg_static.c myrg_update.c - myrg_write.c) + myrg_write.c myrg_records.c) IF(NOT SOURCE_SUBLIBS) ADD_LIBRARY(myisammrg ${MYISAMMRG_SOURCES}) diff --git a/storage/myisammrg/Makefile.am b/storage/myisammrg/Makefile.am index e058dfdbb5e..1ca51bc9d03 100644 --- a/storage/myisammrg/Makefile.am +++ b/storage/myisammrg/Makefile.am @@ -35,7 +35,7 @@ libmyisammrg_a_SOURCES = myrg_open.c myrg_extra.c myrg_info.c myrg_locking.c \ myrg_rkey.c myrg_rfirst.c myrg_rlast.c myrg_rnext.c \ myrg_rprev.c myrg_queue.c myrg_write.c myrg_range.c \ ha_myisammrg.cc \ - myrg_rnext_same.c + myrg_rnext_same.c myrg_records.c EXTRA_DIST = CMakeLists.txt plug.in diff --git a/storage/myisammrg/ha_myisammrg.cc b/storage/myisammrg/ha_myisammrg.cc index ea7021325e3..956f0e421cc 100644 --- a/storage/myisammrg/ha_myisammrg.cc +++ b/storage/myisammrg/ha_myisammrg.cc @@ -1154,6 +1154,12 @@ int ha_myisammrg::check(THD* thd, HA_CHECK_OPT* check_opt) } +ha_rows ha_myisammrg::records() +{ + return myrg_records(file); +} + + extern int myrg_panic(enum ha_panic_function flag); int myisammrg_panic(handlerton *hton, ha_panic_function flag) { diff --git a/storage/myisammrg/ha_myisammrg.h b/storage/myisammrg/ha_myisammrg.h index 977c45d1435..4e7ddebb836 100644 --- a/storage/myisammrg/ha_myisammrg.h +++ b/storage/myisammrg/ha_myisammrg.h @@ -42,6 +42,7 @@ class ha_myisammrg: public handler HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE | HA_NULL_IN_KEY | HA_CAN_INDEX_BLOBS | HA_FILE_BASED | HA_ANY_INDEX_MAY_BE_UNIQUE | HA_CAN_BIT_FIELD | + HA_HAS_RECORDS | HA_NO_COPY_ON_ALTER); } ulong index_flags(uint inx, uint part, bool all_parts) const @@ -94,4 +95,5 @@ class ha_myisammrg: public handler TABLE *table_ptr() { return table; } bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes); int check(THD* thd, HA_CHECK_OPT* check_opt); + ha_rows records(); }; diff --git a/storage/myisammrg/myrg_records.c b/storage/myisammrg/myrg_records.c new file mode 100644 index 00000000000..03815d934a8 --- /dev/null +++ b/storage/myisammrg/myrg_records.c @@ -0,0 +1,27 @@ +/* Copyright (C) 2008 MySQL 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; 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 */ + +#include "myrg_def.h" + +ha_rows myrg_records(MYRG_INFO *info) +{ + ha_rows records=0; + MYRG_TABLE *file; + DBUG_ENTER("myrg_records"); + + for (file=info->open_tables ; file != info->end_table ; file++) + records+= file->table->s->state.state.records; + DBUG_RETURN(records); +} |