------------------------------------------------------------------------
r4008 | vasil | 2009-01-20 17:01:08 +0200 (Tue, 20 Jan 2009) | 4 lines
branches/zip:
Add ChangeLog entries for the bugfixes in r4004 and r4005.
------------------------------------------------------------------------
r4027 | marko | 2009-01-23 11:04:49 +0200 (Fri, 23 Jan 2009) | 1 line
branches/zip: Remove some redundant #include statements.
------------------------------------------------------------------------
r4028 | marko | 2009-01-23 11:26:10 +0200 (Fri, 23 Jan 2009) | 13 lines
branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE.
This will help trim the dependencies of InnoDB Hot Backup.
recv_recovery_from_checkpoint_start(): Rename to
recv_recovery_from_checkpoint_start_func(), and remove the two first
parameters unless UNIV_LOG_ARCHIVE is defined. Define and use
the auxiliary macros TYPE_CHECKPOINT and LIMIT_LSN in the function.
struct recv_sys_struct: Remove archive_group unless UNIV_LOG_ARCHIVE
is defined.
Do not define LOG_ARCHIVE unless UNIV_LOG_ARCHIVE is defined.
------------------------------------------------------------------------
r4029 | marko | 2009-01-23 14:07:38 +0200 (Fri, 23 Jan 2009) | 1 line
branches/zip: Remove some redundant #include directives.
------------------------------------------------------------------------
r4030 | marko | 2009-01-23 15:31:36 +0200 (Fri, 23 Jan 2009) | 2 lines
branches/zip: buf_page_get_gen(): Remove the unused mode BUF_GET_NOWAIT.
This was noticed while investigating Issue #160.
------------------------------------------------------------------------
r4033 | marko | 2009-01-23 15:49:04 +0200 (Fri, 23 Jan 2009) | 16 lines
branches/zip: Merge revisions 4005:4032 from branches/5.1:
------------------------------------------------------------------------
r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines
branches/5.1: Merge r4031 from branches/5.0:
btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
returns NULL. The page may have been evicted from the buffer pool
between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
because the buffer pool mutex will be released between these two calls.
(Bug #42279, Issue #160)
rb://82 approved by Heikki Tuuri
------------------------------------------------------------------------
------------------------------------------------------------------------
r4034 | marko | 2009-01-26 16:16:39 +0200 (Mon, 26 Jan 2009) | 2 lines
branches/zip: buf_page_get_gen(): Fix a "possibly uninitialized" warning
that was introduced in r4030.
------------------------------------------------------------------------
r4036 | marko | 2009-01-26 22:33:20 +0200 (Mon, 26 Jan 2009) | 22 lines
branches/zip: In r988, the function buf_block_align() was enclosed
within UNIV_DEBUG. The two remaining callers in non-debug builds,
btr_search_guess_on_hash() and btr_search_validate(), were rewritten
to call buf_page_hash_get().
To implement support for a resizeable buffer pool, the function
buf_block_align() had been rewritten to perform a page hash lookup in
the buffer pool. The caller was also made responsible for holding the
buffer pool mutex.
Because the page hash lookup is expensive and it has to be done while
holding the buffer pool mutex, implement buf_block_align() by pointer
arithmetics again, and make btr_search_guess_on_hash() call it. Note
that this will have to be adjusted if the interface to the resizeable
buffer pool is actually implemented.
rb://83 approved by Heikki Tuuri, to address Issue #161.
As a deviation from the approved patch, this patch also makes
btr_search_validate() (invoked by CHECK TABLE) check that
buf_pool->page_hash is consistent with buf_block_align().
------------------------------------------------------------------------
r4039 | vasil | 2009-01-27 08:04:17 +0200 (Tue, 27 Jan 2009) | 5 lines
branches/zip:
Adjust the paths in innodb_file_per_table.diff with a recent rename of
the test/result files in the MySQL tree.
------------------------------------------------------------------------
r4042 | marko | 2009-01-27 10:05:24 +0200 (Tue, 27 Jan 2009) | 2 lines
branches/zip: buf_LRU_invalidate_tablespace(): Fix a race condition:
read zip_size while still holding block_mutex.
------------------------------------------------------------------------
r4045 | marko | 2009-01-28 00:31:17 +0200 (Wed, 28 Jan 2009) | 8 lines
branches/zip: btr_search_validate(): Fix a bogus UNIV_DEBUG
assertion failure that was accidentally introduced in r4036.
Instead of calling buf_block_get_frame(), which asserts that the
block must be buffer-fixed, access block->frame directly. That
is safe, because changes of block->page.state are protected by
the buffer pool mutex, which we are holding.
This bug was reported by Michael.
------------------------------------------------------------------------
r4046 | marko | 2009-01-28 00:33:20 +0200 (Wed, 28 Jan 2009) | 2 lines
branches/zip: Revert the change to univ.i that was accidentally
committed in r4045.
------------------------------------------------------------------------
r4047 | marko | 2009-01-28 00:46:13 +0200 (Wed, 28 Jan 2009) | 6 lines
branches/zip: btr_search_validate(): Fix an assertion failure that was
introduced in r4036.
Do not call buf_block_get_space(), buf_block_get_page_no()
unless the block state is BUF_BLOCK_FILE_PAGE.
This bug was reported by Michael.
------------------------------------------------------------------------
r4050 | vasil | 2009-01-28 08:21:44 +0200 (Wed, 28 Jan 2009) | 5 lines
branches/zip:
Adjust the paths in innodb_lock_wait_timeout.diff with a recent rename of
the test/result files in the MySQL tree.
------------------------------------------------------------------------
r4051 | marko | 2009-01-28 14:35:49 +0200 (Wed, 28 Jan 2009) | 1 line
branches/zip: trx0sys.ic: Remove unnecessary #include <data0type.h>.
------------------------------------------------------------------------
r4052 | marko | 2009-01-28 15:21:45 +0200 (Wed, 28 Jan 2009) | 5 lines
branches/zip: Enclose some functions inside #ifdef UNIV_HOTBACKUP:
ut_sprintf_timestamp_without_extra_chars(), ut_get_year_month_day(),
log_reset_first_header_and_checkpoint(): These functions are only used
in InnoDB Hot Backup.
------------------------------------------------------------------------
r4056 | calvin | 2009-01-29 03:06:41 +0200 (Thu, 29 Jan 2009) | 33 lines
branches/zip: Merge revisions 4032:4035 from branches/5.1
All InnoDB related tests passed on Windows, except
known failure in partition_innodb_semi_consistent.
The inadvertent change to btr0sea.c in this commit is reverted in r4060.
------------------------------------------------------------------------
r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines
branches/5.1:
Merge a change from MySQL:
------------------------------------------------------------
revno: 2646.161.4
committer: Tatiana A. Nurnberg <azundris@mysql.com>
branch nick: 51-31177v2
timestamp: Mon 2009-01-12 06:32:49 +0100
message:
Bug#31177: Server variables can't be set to their current values
Bounds-checks and blocksize corrections were applied to user-input,
but constants in the server were trusted implicitly. If these values
did not actually meet the requirements, the user could not set change
a variable, then set it back to the (wonky) factory default or maximum
by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
Now checks also apply to the server's presets. Wonky values and maxima
get corrected at startup. Consequently all non-offsetted values the user
sees are valid, and users can set the variable to that exact value if
they so desire.
------------------------------------------------------------------------
r4060 | marko | 2009-01-29 09:39:04 +0200 (Thu, 29 Jan 2009) | 1 line
branches/zip: btr0sea.c: Revert the inadvertent change made in r4056.
------------------------------------------------------------------------
------------------------------------------------------------------------
r2867 | marko | 2008-10-24 10:24:17 +0300 (Fri, 24 Oct 2008) | 2 lines
branches/zip: ChangeLog: Document r2763, r2794, r2683, r2799, r2809, r2866.
------------------------------------------------------------------------
r2869 | vasil | 2008-10-24 11:14:16 +0300 (Fri, 24 Oct 2008) | 4 lines
branches/zip:
White space cleanup in ChangeLog
------------------------------------------------------------------------
r2870 | vasil | 2008-10-24 13:36:14 +0300 (Fri, 24 Oct 2008) | 8 lines
branches/zip:
Remove a statement that causes the innodb-index test to fail.
The change in behavior was introduced in MySQL BZR-r2738.
Suggested by: Marko
------------------------------------------------------------------------
r2871 | vasil | 2008-10-24 13:48:38 +0300 (Fri, 24 Oct 2008) | 5 lines
branches/zip:
Adjust mysql-test/patches/innodb-index.diff after the change to
mysql-test/innodb-index.(test|result) in r2870.
------------------------------------------------------------------------
r2878 | calvin | 2008-10-27 11:05:42 +0200 (Mon, 27 Oct 2008) | 8 lines
branches/zip: port the fix of Bug#19424 - InnoDB: Possibly a memory
overrun of the buffer being freed with 64-bit Microsoft Visual C++.
The changed file:
CMakeLists.txt: Removing Win64 compiler optimizations for all
innodb/mem/* files.
------------------------------------------------------------------------
r2884 | vasil | 2008-10-27 11:48:46 +0200 (Mon, 27 Oct 2008) | 7 lines
branches/zip:
ChangeLog:
Add entry for the fix of Bug#19424 InnoDB: Possibly a memory overrun of
the buffer being freed (64-bit Visual C)
------------------------------------------------------------------------
r2886 | calvin | 2008-10-27 22:39:11 +0200 (Mon, 27 Oct 2008) | 8 lines
branches/zip: This patch is to solve the issue that file handles can
not cross DLL/EXE boundaries on Windows. In builtin InnoDB, it makes
call to MySQL server for creating tmp files. innobase_mysql_tmpfile
is now rewritten for the plugin.
rb://5
Approved by: Marko
------------------------------------------------------------------------
r2887 | calvin | 2008-10-27 22:48:29 +0200 (Mon, 27 Oct 2008) | 44 lines
branches/zip: implement the delayloading of externals for the plugin
on Windows, which includes:
* Load mysqld.map and insert all symbol/address pairs into hash for
quick access
* Resolves all external data variables. The delayloading mechanism
in MSVC does not support automatic imports of data variables.
A workaround is to explicitly handle the data import using the delay
loader during the initialization of the plugin.
* Resolves all external functions during run-time, by implementing
the delayed loading helper function delayLoadHelper2, which is
called by run-time as well as HrLoadAllImportsForDll.
The delay loader reuses the hash implementation in InnoDB. The normal
hash_create (in hash0hash.c) creates hash tables in buffer pool. But
the delay loader is invoked before the engine is initialized, and
buffer pools are not ready yet. Instead, the delay loader has its own
implementation of hash_create() and hash_table_free(), called
wdl_hash_create() and wdl_hash_table_free().
This patch should be used with other two patches in order to build
a dynamically linked plugin on Windows:
* patch for tmpfile functions (r2886)
* patch for "build" files (to be committed)
The list of file changed:
handler/handler0vars.h: new file, defines a list of external data
variables (no external functions).
handler/win_delay_loader.cc: new file, the implementation of the delay
loader for Windows plugin.
handler/ha_innodb.cc: add a header file, and changes for copying the
system variables.
handler/handler0alter.cc: add a header file
handler/i_s.cc: add a header file
rb://27
Reviewed by: Sunny, Marko
Approved by: Sunny
------------------------------------------------------------------------
r2888 | calvin | 2008-10-28 01:51:49 +0200 (Tue, 28 Oct 2008) | 25 lines
branches/zip: for building dynamic plugin on Windows, ha_innodb.dll,
when INNODB_DYNAMIC_PLUGIN is specified.
The changes are:
CMakeLists.txt: add project ha_innodb for dynamic plugin on Windows.
ha_innodb depends on project mysqld.
ha_innodb.def: a new file with standard exports for a dynamic plugin.
Two new files will be added:
* sql/mysqld.def: .def file for 32-bit compiler
* sql/mysqld_x64.def: .def file for x64 compiler
It is also required to apply a patch to the MySQL source tree. The
patch is described in win-plugin/README:
win-plugin/win-plugin.diff - a patch to be applied to MySQL source
tree. When applied, the following files will be modified:
* CMakeLists.txt: add INNODB_DYNAMIC_PLUGIN and _USE_32BIT_TIME_T
* sql/CMakeLists.txt: add mysqld.def or mysqld_x64.def for mysqld
* win/configure.js: add INNODB_DYNAMIC_PLUGIN
* win/build-vs71.bat: provide an option to specify CMAKE_BUILD_TYPE
* win/build-vs8.bat: provide an option to specify CMAKE_BUILD_TYPE
* win/build-vs8_x64.bat: provide an option to specify CMAKE_BUILD_TYPE
------------------------------------------------------------------------
r2894 | marko | 2008-10-28 08:36:39 +0200 (Tue, 28 Oct 2008) | 4 lines
branches/zip: dict_str_starts_with_keyword(): Removed this unused function.
Spotted by Sunny.
------------------------------------------------------------------------
r2895 | vasil | 2008-10-28 08:40:45 +0200 (Tue, 28 Oct 2008) | 6 lines
branches/zip:
ChangeLog:
add entry for the Windows plugin.
------------------------------------------------------------------------
r2917 | marko | 2008-10-28 23:53:23 +0200 (Tue, 28 Oct 2008) | 3 lines
branches/zip: innodb_plugin_init(): Do not copy session variables,
even when the variable is a global variable in the built-in InnoDB.
------------------------------------------------------------------------
r2918 | calvin | 2008-10-29 00:08:11 +0200 (Wed, 29 Oct 2008) | 2 lines
branches/zip: fix a problem introduced in r2917 - dyn is not
initialized. Move the check into for().
------------------------------------------------------------------------
r2922 | calvin | 2008-10-29 08:29:01 +0200 (Wed, 29 Oct 2008) | 16 lines
branches/zip: fix issue #102 - Windows plugin: resolve dbug functions
during run-time.
Implement wrapper functions in the plugin. The plugin will get the
function entries from mysqld.exe during the init, and invoke the
corresponding functions (in mysqld.exe). The list of functions are:
_db_pargs_
_db_doprnt_
_db_enter_
_db_return_
_db_dump_
rb://38
Approved by: Marko
------------------------------------------------------------------------
r2923 | marko | 2008-10-29 09:52:30 +0200 (Wed, 29 Oct 2008) | 1 line
branches/zip: ChangeLog: Mention Bug #27276.
------------------------------------------------------------------------
r2925 | calvin | 2008-10-29 10:09:41 +0200 (Wed, 29 Oct 2008) | 16 lines
branches/zip: change function names in sql/mysqld.def in order
to work with 5.1.29-rc.
In 5.1.29, the following function names are changed:
_hash_init
hash_free
hash_search
hash_delete
changed to
_my_hash_init
my_hash_free
my_hash_search
my_hash_delete
Approved by: Marko (on IM)
------------------------------------------------------------------------
r2927 | marko | 2008-10-29 11:43:23 +0200 (Wed, 29 Oct 2008) | 4 lines
branches/zip: ha_innodb.cc: Make some functions static, so that they will
not be compiled as weak global symbols. These functions must not be
redirected to the built-in InnoDB.
------------------------------------------------------------------------
r2928 | michael | 2008-10-29 19:20:10 +0200 (Wed, 29 Oct 2008) | 4 lines
Remove unnecessary assert
Approved by: Heikki, over IM
------------------------------------------------------------------------
r2930 | marko | 2008-10-29 21:39:24 +0200 (Wed, 29 Oct 2008) | 33 lines
branches/zip: Merge revisions 2854:2929 from branches/5.1,
except r2924, which was merged from branches/zip r2866 to branches/5.1
and except r2879 which was merged separately by Calvin:
------------------------------------------------------------------------
r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
branches/5.1:
Fix Bug#38189 innodb_stats_on_metadata missing
Make the variable innodb_stats_on_metadata visible to the users and
also settable at runtime. Previously it was only "visible" as a command
line startup option to mysqld.
Approved by: Marko (https://svn.innodb.com/rb/r/36)
------------------------------------------------------------------------
r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
branches/5.1: dtype_get_sql_null_size(): return the correct storage
size of a SQL NULL column. (Bug #40369)
When MySQL Bug #20877 was fixed in r834, this function was
accidentally modified to return 0 or 1. Apparently, the only impact of
this bug is that fixed-length columns cannot be updated in-place from
or to SQL NULL, even in ROW_FORMAT=REDUNDANT. After this fix,
fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
storage size as they should, no matter if NULL or non-NULL. The bug
caused fixed-length NULL columns to occupy 1 byte.
rb://37 approved by Heikki over IM.
------------------------------------------------------------------------
------------------------------------------------------------------------
r2931 | vasil | 2008-10-29 22:10:40 +0200 (Wed, 29 Oct 2008) | 4 lines
branches/zip:
Add 2 ChangeLog entries for the 2 bugfixes that were merged from branches/5.1.
------------------------------------------------------------------------
r2935 | vasil | 2008-10-30 12:17:23 +0200 (Thu, 30 Oct 2008) | 17 lines
branches/zip:
Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
to have a Bug#40360-free InnoDB Plugin 1.0.2.
The fix does check whether binary logging is enabled in MySQL by accessing the
opt_bin_log global variable that is defined in sql/mysqld.cc.
In case MySQL does develop another solution to this via Bug#40360 then we can
revert this patch (except the mysql-tests).
The windows-plugin part of this fix will be committed as a separate commit to
ease eventual merge into branches/5.1 [note from the future: the separate
commit went into r2936].
Approved by: Marko (https://svn.innodb.com/rb/r/39)
------------------------------------------------------------------------
r2936 | vasil | 2008-10-30 12:24:09 +0200 (Thu, 30 Oct 2008) | 7 lines
branches/zip:
Followup to r2935: add the Windows Delay Loader stuff for the MySQL
variable that we are accessing. If someday we have another solution for
Bug#40360 Binlog related errors with binlog off
then this should also be reverted.
------------------------------------------------------------------------
r2937 | vasil | 2008-10-30 12:28:47 +0200 (Thu, 30 Oct 2008) | 4 lines
branches/zip:
Add ChangeLog entry for Bug#40360 Binlog related errors with binlog off
------------------------------------------------------------------------
r2938 | vasil | 2008-10-30 12:33:28 +0200 (Thu, 30 Oct 2008) | 5 lines
branches/zip:
Non-functional change: convert handler/handler0vars.h and
handler/win_delay_loader.cc from \r\n (dos) to \n (unix) line terminators.
------------------------------------------------------------------------
r2939 | marko | 2008-10-30 12:38:18 +0200 (Thu, 30 Oct 2008) | 2 lines
branches/zip: Set svn:eol-style native on some recently added text files.
------------------------------------------------------------------------
r2940 | marko | 2008-10-30 12:46:21 +0200 (Thu, 30 Oct 2008) | 1 line
branches/zip: ChangeLog, ha_innodb.def: Set svn:eol-style native
------------------------------------------------------------------------
r2941 | vasil | 2008-10-30 19:34:27 +0200 (Thu, 30 Oct 2008) | 4 lines
branches/zip:
Increment the InnoDB Plugin version from 1.0.1 to 1.0.2.
------------------------------------------------------------------------
r2943 | sunny | 2008-10-31 09:40:29 +0200 (Fri, 31 Oct 2008) | 15 lines
branches/zip:
1. We add a vector of locks to trx_t. This array contains the autoinc
locks granted to a transaction. There is one per table.
2. We enforce releasing of these locks in the reverse order from the
one in which they are acquired. The assumption is that since the
AUTOINC locks are statement level locks. Nested statements introduced
by triggers are stacked it should hold.
There was some cleanup done to the vector code too by adding const and
some new functions. Rename dict_table_t::auto_inc_lock to autoinc_lock.
Fix Bug#26316 Triggers create duplicate entries on auto-increment columns
rb://22
------------------------------------------------------------------------
r2944 | vasil | 2008-10-31 09:44:16 +0200 (Fri, 31 Oct 2008) | 12 lines
branches/zip:
Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
(r2935, r2936) and deploy MySQL's one, but put the function
mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
and use a different name for it so there is no collision when MySQL adds this
function in log.cc.
[note from the future: the windows part of this patch went into r2947]
Approved by: Marko (https://svn.innodb.com/rb/r/41/)
------------------------------------------------------------------------
r2945 | sunny | 2008-10-31 09:44:45 +0200 (Fri, 31 Oct 2008) | 2 lines
branches/zip: Update ChangeLog with r2943 info.
------------------------------------------------------------------------
r2946 | marko | 2008-10-31 10:18:47 +0200 (Fri, 31 Oct 2008) | 2 lines
branches/zip: Revert the unintended change to univ.i that was made in r2943.
------------------------------------------------------------------------
r2947 | calvin | 2008-10-31 10:38:26 +0200 (Fri, 31 Oct 2008) | 6 lines
branches/zip: Windows plugin part of r2944
r2944 has reference to mysql_bin_log.is_open(), which is new in InnoDB.
Add two new entries and remove one duplicate in mysqld.def &
mysqld_x64.def.
------------------------------------------------------------------------
r2948 | vasil | 2008-10-31 11:39:07 +0200 (Fri, 31 Oct 2008) | 9 lines
branches/zip:
Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl
Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.
Approved by: Marko (https://svn.innodb.com/rb/r/42/)
------------------------------------------------------------------------
r2949 | vasil | 2008-10-31 11:47:56 +0200 (Fri, 31 Oct 2008) | 4 lines
branches/zip:
White-space cleanup in ChangeLog.
------------------------------------------------------------------------
r2951 | marko | 2008-10-31 14:21:43 +0200 (Fri, 31 Oct 2008) | 4 lines
branches/zip: scripts/install_innodb_plugins_win.sql: New script,
for installing the InnoDB plugins in Windows. Copied from
scripts/install_innodb_plugins.sql.
------------------------------------------------------------------------
r2954 | calvin | 2008-11-04 09:15:26 +0200 (Tue, 04 Nov 2008) | 8 lines
branches/zip: ignore the failure when builtin_innobase_plugin is not
available.
External variable builtin_innobase_plugin is not available when mysqld
does not have a builtin InnoDB. The init of the Windows plugin should
not fail in this case.
Approved by: Marko (on IM)
------------------------------------------------------------------------
r2955 | calvin | 2008-11-04 12:43:14 +0200 (Tue, 04 Nov 2008) | 11 lines
branches/zip: windows plugin - fix references to array variables.
This problem surfaced when running new test innodb_bug40360.test. Both
tx_isolation_names and binlog_format_names are name arrays, and
should be defined as wdl_tx_isolation_names and wdl_binlog_format_names,
not *wdl_tx_isolation_names and *wdl_binlog_format_names.
Another array variable is all_charsets, which is already correctly
defined.
Approved by: Marko (on IM)
------------------------------------------------------------------------
r2986 | marko | 2008-11-11 09:28:37 +0200 (Tue, 11 Nov 2008) | 11 lines
branches/zip: ha_innobase::create(): Remove the dependences on
DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).
Make the default compressed page size half the uncompressed page size.
The previous default was 8 kilobytes, which is the same when compiling
with the default 16k uncompressed page size.
rb://50 approved by Pekka Lampio and Sunny Bains.
------------------------------------------------------------------------
The followin mysql-tests failed (and they are known to fail):
main.information_schema [ fail ]
main.innodb_file_per_table_basic[ fail ]
main.type_bit_innodb [ fail ]
Tested against : MYSQL_SERVER_VERSION "5.1.28"
in *.h files, so that the function signatures in the *.h and *.c files fully
match each other.
ut_dulint_sort(): Add a UNIV_INTERN qualifier also to the function definition.
Active transactions must not switch table or index definitions on the fly,
for several reasons, including the following:
* copied indexes do not carry any history or locking information;
that is, rollbacks, read views, and record locking would be broken
* huge potential for race conditions, inconsistent reads and writes,
loss of data, and corruption
Instead of trying to track down if the table was changed during a transaction,
acquire appropriate locks that protect the creation and dropping of indexes.
innodb-index.test: Test the locking of CREATE INDEX and DROP INDEX. Test
that consistent reads work across dropped indexes.
lock_rec_insert_check_and_lock(): Relax the lock_table_has() assertion.
When inserting a record into an index, the table must be at least IX-locked.
However, when an index is being created, an IS-lock on the table is
sufficient.
row_merge_lock_table(): Add the parameter enum lock_mode mode, which must
be LOCK_X or LOCK_S.
row_merge_drop_table(): Assert that n_mysql_handles_opened == 0.
Unconditionally drop the table.
ha_innobase::add_index(): Acquire an X or S lock on the table, as appropriate.
After acquiring an X lock, assert that n_mysql_handles_opened == 1.
Remove the comments about dropping tables in the background.
ha_innobase::final_drop_index(): Acquire an X lock on the table.
dict_table_t: Remove version_number, to_be_dropped, and prebuilts.
ins_node_t: Remove table_version_number.
enum lock_mode: Move the definition from lock0lock.h to lock0types.h.
ROW_PREBUILT_OBSOLETE, row_update_prebuilt(), row_prebuilt_table_obsolete():
Remove.
row_prebuilt_t: Remove the declaration from row0types.h.
row_drop_table_for_mysql_no_commit(): Always print a warning if a table
was added to the background drop queue.
#ifdef ROW_MERGE_IS_INDEX_USABLE, to avoid growing the memory
footprint until MySQL implements and calls the virtual method
handler::is_index_available() or something equivalent.
Remove the unused constant DICT_NOT_READY.
Make dict_index_t::type a bit-field, and move it next to other bit-fields.
Add a const qualifier to dict_index_t::name.
to tables.
dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
allocation. Allow it and "name" to be NULL. These parameters are NULL
when creating dummy indexes.
dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
dict_table_get_col_name(): Allow table->col_names to be NULL.
dict_table_add_system_columns(), dict_table_add_to_cache():
Add the parameter "heap".
of externally stored columns to REC_1BYTE_OFFS_LIMIT (128) bytes.
TODO: only store BTR_EXTERN_FIELD_REF_SIZE (20) bytes with the record,
and store the entire column externally. (Bug #22496)
dict_col_t::min_prefix: Remove.
This will be needed for fixing Bug #22496.
REC_MAX_INDEX_COL_LEN: New constant, copied from DICT_MAX_INDEX_COL_LEN.
row_ext_create(), row_ext_lookup(), row_ext_lookup_low(): New functions.
of externally stored columns to 108 bytes when possible.
This will unmask a bug in the handling of BLOBs on compressed tablespaces,
especially of small page sizes. Apparently, the locally stored part must
be less than 235 bytes in size for the bug to occur.
dict_col_struct: Add field min_prefix.
dict_index_build_internal_non_clust(): Adjust min_prefix.
and to the file space header (FSP_PAGE_ZIP_SIZE, renamed from
FSP_LOWEST_NO_WRITE).
fil_space_struct: Add zip_size.
dict_table_struct: Embed zip_size in flags.
dict_table_zip_size(): Infer zip_size from table->flags.
dict_sys_tables_get_zip_size(): Read zip_size from SYS_TABLES.TYPE.
fil_space_get_zip_size(): Read zip_size from the file space header.
Add the redo log entry type MLOG_ZIP_FILE_CREATE.