mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
52 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
vasil
|
475b6a6772 |
Non-functional change: update copyright year to 2010 of the files
that have been modified after 2010-01-01 according to svn. for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^ M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done |
||
marko
|
2db645141c |
branches/innodb+: Merge revisions 6504:6560 from branches/zip:
------------------------------------------------------------------------ r6521 | marko | 2010-01-27 10:49:01 +0200 (Wed, 27 Jan 2010) | 17 lines branches/zip: Drop temporary tables at startup. This addresses the third aspect of Bug #41609. row_mysql_drop_temp_tables(): New function, to drop all temporary tables. These can be distinguished by the least significant bit of MIX_LEN. However, we will skip ROW_FORMAT=REDUNDANT tables, because in the records for those tables, that bit may be garbage. recv_recovery_from_checkpoint_finish(): Invoke row_mysql_drop_temp_tables(). Normally, if the .frm files for the temporary tables exist at startup, MySQL will ask InnoDB to drop the temporary tables. However, if the files are deleted, for instance, by the boot scripts of the operating system, the tables would remain in the InnoDB data dictionary unless someone digs them up by innodb_table_monitor and creates .frm files for dropping the tables. rb://221 approved by Sunny Bains. ------------------------------------------------------------------------ r6525 | marko | 2010-01-28 16:23:15 +0200 (Thu, 28 Jan 2010) | 11 lines branches/zip: buf_LRU_invalidate_tablespace(): Do not unnecessarily acquire the block_mutex for every block in the LRU list. Only acquire it when holding buf_pool_mutex is not sufficient. This should speed up the function and considerably reduce traffic on the memory bus and caches. I noticed this deficiency when working on Issue #157. This deficiency popped up again in Issue #449 (Bug #35077), which this fix does not fully address. rb://78 revision 1 approved by Heikki Tuuri. ------------------------------------------------------------------------ r6526 | jyang | 2010-01-28 18:12:40 +0200 (Thu, 28 Jan 2010) | 8 lines branches/zip: Add index translation table to map mysql index number to InnoDB index structure directly. Fix Bug #47622: "the new index is added before the existing ones in MySQL, but after one in SE". rb://215, approved by Marko ------------------------------------------------------------------------ r6527 | vasil | 2010-01-29 14:39:48 +0200 (Fri, 29 Jan 2010) | 6 lines branches/zip: Extend the comment about row_mysql_handle_errors(). Suggested by: Heikki ------------------------------------------------------------------------ r6533 | calvin | 2010-01-29 23:31:59 +0200 (Fri, 29 Jan 2010) | 4 lines branches/zip: remove duplicated copyright and license info. ------------------------------------------------------------------------ r6534 | sunny | 2010-01-29 23:42:49 +0200 (Fri, 29 Jan 2010) | 15 lines branches/zip: Two changes to fix the problem: 1. First scan the joining transaction's locks and check if no other transaction is waiting for a lock held by the joining transaction. If no other transaction is waiting then no deadlock an occur and we avoid doing an exhaustive search. 2. Change the direction of the lock traversal from backward to forward. Previously we traversed backward from the lock that has to wait, the function to that fetched the previous node was very inefficient resulting in O(n^2) access to the rec lock list. Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row. rb://218 ------------------------------------------------------------------------ r6539 | marko | 2010-02-01 11:31:12 +0200 (Mon, 01 Feb 2010) | 75 lines branches/zip: Merge revisions 6471:6538 from branches/5.1: ------------------------------------------------------------------------ r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines Changed paths: M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test into a separate test/result files. ------------------------------------------------------------------------ r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines Changed paths: A /branches/5.1/mysql-test/innodb-autoinc-44030.result A /branches/5.1/mysql-test/innodb-autoinc-44030.test branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test into a separate test/result files. ------------------------------------------------------------------------ r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line Changed paths: M /branches/5.1/mysql-test/innodb-autoinc-44030.test branches/5.1: Add reference to bug#47621 in the comment. ------------------------------------------------------------------------ r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even if we were unable to initialize the tabe autoinc value. This is required for the open to succeed. The only condition we currently treat as a hard error is if the autoinc field instance passed in by MySQL is NULL. Previously if the table autoinc value was 0 and the next value was requested we had an assertion that would fail. Change that assertion and treat a value of 0 to mean that the autoinc system is unavailable. Generation of next value will now return failure. rb://237 ------------------------------------------------------------------------ r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Check *first_value everytime against the column max value and set *first_value to next autoinc if it's > col max value. ie. not rely on what is passed in from MySQL. [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value rb://236 ------------------------------------------------------------------------ r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Undo r6536. ------------------------------------------------------------------------ r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Check *first_value every time against the column max value and set *first_value to next autoinc if it's > col max value. ie. not rely on what is passed in from MySQL. [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value rb://236 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r6540 | marko | 2010-02-01 11:35:13 +0200 (Mon, 01 Feb 2010) | 1 line branches/zip: ChangeLog: Document the merge of 6471:6538 from branches/5.1. ------------------------------------------------------------------------ r6546 | jyang | 2010-02-03 11:05:24 +0200 (Wed, 03 Feb 2010) | 9 lines branches/zip: Relax assertion on the number of index defined in InnoDB must be comparable with that of MySQL to tolerate possible dictionary inconsistency. Fix Mantis issue #455, "UNIV_DEBUG+ assert ha_innodb.cc:3152 ib_num_index >= mysql_num_index". rb://248 Approved by Marko. ------------------------------------------------------------------------ r6547 | marko | 2010-02-03 14:43:38 +0200 (Wed, 03 Feb 2010) | 14 lines branches/zip: Clean up CHECK TABLE error handling. (Issue #220) ha_innobase::change_active_index(): Clean up code formatting. ha_innobase::check(): Incorporate the code from row_check_table_for_mysql(). Report errors to the client connection instead of writing them to the error log. row_check_table_for_mysql(): Remove. row_check_index_for_mysql(): Renamed from row_scan_and_check_index(). Let the caller initialize prebuilt, and assume that the index is usable. rb://178 approved by Sunny Bains ------------------------------------------------------------------------ r6548 | marko | 2010-02-03 15:01:39 +0200 (Wed, 03 Feb 2010) | 11 lines branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage is not relocated when freeing a compressed block. This avoids the costly rescan of the LRU list. (Bug #35077, Issue #449) At most one buffer-fix will be active at a time, affecting two blocks: the buf_page_t and the compressed page frame. This should not block the memory defragmentation in buf0buddy.c too much. In fact, it may avoid unnecessary copying if also prev_bpage belongs to the tablespace that is being invalidated. rb://240 ------------------------------------------------------------------------ r6559 | marko | 2010-02-04 13:21:18 +0200 (Thu, 04 Feb 2010) | 14 lines branches/zip: Pass the file name and line number of the caller of the b-tree cursor functions to the buffer pool requests, in order to make the latch diagnostics more accurate. buf_page_optimistic_get_func(): Renamed to buf_page_optimistic_get(). btr_page_get_father_node_ptr(), btr_insert_on_non_leaf_level(), btr_pcur_open(), btr_pcur_open_with_no_init(), btr_pcur_open_on_user_rec(), btr_pcur_open_at_rnd_pos(), btr_pcur_restore_position(), btr_cur_open_at_index_side(), btr_cur_open_at_rnd_pos(): Rename the function to _func and add the parameters file, line. Define wrapper macros with __FILE__, __LINE__. btr_cur_search_to_nth_level(): Add the parameters file, line. ------------------------------------------------------------------------ r6560 | sunny | 2010-02-04 16:11:23 +0200 (Thu, 04 Feb 2010) | 7 lines branches/zip: Remove the additional check introduced in r6534 which tries to check if the joining transaction has any other transactions waiting on its locks. This optimization results in excessive deadlocks when running Sysbench with a large number of threads. The function seems to return FALSE positives. rb://250 ------------------------------------------------------------------------ |
||
marko
|
1601bdc38a |
branches/innodb+: Merge revisions 5091:5143 from branches/zip:
------------------------------------------------------------------------ r5092 | marko | 2009-05-25 09:54:17 +0300 (Mon, 25 May 2009) | 1 line branches/zip: Adjust some function comments after r5091. ------------------------------------------------------------------------ r5100 | marko | 2009-05-25 12:09:45 +0300 (Mon, 25 May 2009) | 1 line branches/zip: Split some long lines that were introduced in r5091. ------------------------------------------------------------------------ r5101 | marko | 2009-05-25 12:42:47 +0300 (Mon, 25 May 2009) | 2 lines branches/zip: Introduce the macro TEMP_INDEX_PREFIX_STR. This is to avoid triggering an error in Doxygen. ------------------------------------------------------------------------ r5102 | marko | 2009-05-25 13:47:14 +0300 (Mon, 25 May 2009) | 1 line branches/zip: Add missing file comments. ------------------------------------------------------------------------ r5103 | marko | 2009-05-25 13:52:29 +0300 (Mon, 25 May 2009) | 10 lines branches/zip: Add @file comments, and convert decorative /********************************* comments to Doxygen /** style like this: /*****************************//** This conversion was performed by the following command: perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) { s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2} print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i ------------------------------------------------------------------------ r5104 | marko | 2009-05-25 14:39:07 +0300 (Mon, 25 May 2009) | 2 lines branches/zip: Revert ut0auxconf_* to r5102, that is, make Doxygen ignore these test programs. ------------------------------------------------------------------------ r5105 | marko | 2009-05-25 14:52:20 +0300 (Mon, 25 May 2009) | 2 lines branches/zip: Enclose some #error checks inside #ifndef DOXYGEN to prevent bogus Doxygen errors. ------------------------------------------------------------------------ r5106 | marko | 2009-05-25 16:09:24 +0300 (Mon, 25 May 2009) | 2 lines branches/zip: Add some Doxygen comments, mainly to structs, typedefs, macros and global variables. Many more to go. ------------------------------------------------------------------------ r5108 | marko | 2009-05-26 00:32:35 +0300 (Tue, 26 May 2009) | 2 lines branches/zip: lexyy.c: Remove the inadvertently added @file directive. There is nothing for Doxygen to see in this file, move along. ------------------------------------------------------------------------ r5125 | marko | 2009-05-26 16:28:49 +0300 (Tue, 26 May 2009) | 3 lines branches/zip: Add some Doxygen comments for many structs, typedefs, #defines and global variables. Many are still missing. ------------------------------------------------------------------------ r5134 | marko | 2009-05-27 09:08:43 +0300 (Wed, 27 May 2009) | 1 line branches/zip: Add some Doxygen @return comments. ------------------------------------------------------------------------ r5139 | marko | 2009-05-27 10:01:40 +0300 (Wed, 27 May 2009) | 1 line branches/zip: Add Doxyfile. ------------------------------------------------------------------------ r5143 | marko | 2009-05-27 10:57:25 +0300 (Wed, 27 May 2009) | 3 lines branches/zip: buf0buf.h, Doxyfile: Fix the Doxygen translation. @defgroup is for source code modules, not for field groups. Tell Doxygen to expand the UT_LIST declarations. ------------------------------------------------------------------------ |
||
marko
|
61bddcc89b |
branches/innodb+: Merge revisions 5090:5091 from branches/zip:
(Ran doxygenify.pl conversion locally, then merged and checked consistency.) ------------------------------------------------------------------------ r5091 | marko | 2009-05-25 09:30:14 +0300 (Mon, 25 May 2009) | 33 lines branches/zip: Convert the function comments to Doxygen format. This patch was created by running the following commands: for i in */*[ch]; do doxygenify.pl $i; done perl -i -pe 's#\*{3} \*/$#****/#' */*[ch] where doxygenify.pl is https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510 Verified the consistency as follows: (0) not too many /* in: */ or /* out: */ comments left in the code: grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch] (1) no difference when ignoring blank lines, after stripping all C90-style /* comments */, including multi-line ones, before and after applying this patch: perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch] diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2 (2) after stripping @return comments and !<, generated a diff and omitted the hunks where /* out: */ function return comments were removed: perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\ */*[ch] svn diff| perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print' Some unintended changes were left. These will be removed in a subsequent patch. ------------------------------------------------------------------------ |
||
marko
|
4f1d044053 |
branches/innodb+: Merge revisions 4150:4528 from branches/zip:
------------------------------------------------------------------------ r4152 | marko | 2009-02-10 12:52:27 +0200 (Tue, 10 Feb 2009) | 12 lines branches/zip: When innodb_use_sys_malloc is set, ignore innodb_additional_mem_pool_size, because nothing will be allocated from mem_comm_pool. mem_pool_create(): Remove the assertion about size. The function will work with any size. However, an assertion would fail in ut_malloc_low() when size==0. mem_init(): When srv_use_sys_malloc is set, pass size=1 to mem_pool_create(). mem0mem.c: Add #include "srv0srv.h" that is needed by mem0dbg.c. ------------------------------------------------------------------------ r4153 | vasil | 2009-02-10 22:58:17 +0200 (Tue, 10 Feb 2009) | 14 lines branches/zip: (followup to r4145) Non-functional change: Change the os_atomic_increment() and os_compare_and_swap() functions to macros to avoid artificial limitations on the types of those functions' arguments. As a consequence typecasts from the source code can be removed. Also remove Google's copyright from os0sync.ic because that file no longer contains code from Google. Approved by: Marko (rb://88), also ok from Inaam via IM ------------------------------------------------------------------------ r4163 | marko | 2009-02-12 00:14:19 +0200 (Thu, 12 Feb 2009) | 4 lines branches/zip: Make innodb_thread_concurrency=0 the default. The old default was 8. ------------------------------------------------------------------------ r4169 | calvin | 2009-02-12 10:37:10 +0200 (Thu, 12 Feb 2009) | 3 lines branches/zip: Adjust the result file of innodb_thread_concurrency_basic test. The default value of innodb_thread_concurrency is changed to 0 (from 8) via r4163. ------------------------------------------------------------------------ r4174 | vasil | 2009-02-12 17:38:27 +0200 (Thu, 12 Feb 2009) | 4 lines branches/zip: Fix pathname of the file to patch. ------------------------------------------------------------------------ r4176 | vasil | 2009-02-13 10:06:31 +0200 (Fri, 13 Feb 2009) | 7 lines branches/zip: Fix the failing mysql-test partition_innodb, which failed only if run after innodb_trx_weight (or other test that would leave LATEST DEADLOCK ERROR into the output of SHOW ENGINE INNODB STATUS). Find further explanation for the failure at the top of the added patch partition_innodb.diff. ------------------------------------------------------------------------ r4198 | vasil | 2009-02-17 09:06:07 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: Add the full text of the GPLv2 license into the root directory of the plugin. In previous releases this file was copied from an external source (https://svn.innodb.com/svn/plugin/trunk/support/COPYING) "manually" when creating the source and binary archives. It is less confusing to have this present in the root directory of the SVN branch. ------------------------------------------------------------------------ r4199 | vasil | 2009-02-17 09:11:58 +0200 (Tue, 17 Feb 2009) | 4 lines branches/zip: Add Google's license into COPYING.Google. ------------------------------------------------------------------------ r4200 | vasil | 2009-02-17 09:56:33 +0200 (Tue, 17 Feb 2009) | 11 lines branches/zip: To the files touched by the Google patch from c4144 (excluding include/os0sync.ic because later we removed Google code from that file): * Remove the Google license * Remove old Innobase copyright lines * Add a reference to the Google license and to the GPLv2 license at the top, as recommended by the lawyers at Oracle Legal. ------------------------------------------------------------------------ r4201 | vasil | 2009-02-17 10:12:02 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 1/28] ------------------------------------------------------------------------ r4202 | vasil | 2009-02-17 10:15:06 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 2/28] ------------------------------------------------------------------------ r4203 | vasil | 2009-02-17 10:25:45 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 3/28] ------------------------------------------------------------------------ r4204 | vasil | 2009-02-17 10:55:41 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 4/28] ------------------------------------------------------------------------ r4205 | vasil | 2009-02-17 10:59:22 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 5/28] ------------------------------------------------------------------------ r4206 | vasil | 2009-02-17 11:02:27 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 6/28] ------------------------------------------------------------------------ r4207 | vasil | 2009-02-17 11:04:28 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 7/28] ------------------------------------------------------------------------ r4208 | vasil | 2009-02-17 11:06:49 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 8/28] ------------------------------------------------------------------------ r4209 | vasil | 2009-02-17 11:10:18 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 9/28] ------------------------------------------------------------------------ r4210 | vasil | 2009-02-17 11:12:41 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 10/28] ------------------------------------------------------------------------ r4211 | vasil | 2009-02-17 11:14:40 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 11/28] ------------------------------------------------------------------------ r4212 | vasil | 2009-02-17 11:18:35 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 12/28] ------------------------------------------------------------------------ r4213 | vasil | 2009-02-17 11:24:40 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 13/28] ------------------------------------------------------------------------ r4214 | vasil | 2009-02-17 11:27:31 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 13/28] ------------------------------------------------------------------------ r4215 | vasil | 2009-02-17 11:29:55 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 15/28] ------------------------------------------------------------------------ r4216 | vasil | 2009-02-17 11:33:38 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 16/28] ------------------------------------------------------------------------ r4217 | vasil | 2009-02-17 11:36:44 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 17/28] ------------------------------------------------------------------------ r4218 | vasil | 2009-02-17 11:39:11 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 18/28] ------------------------------------------------------------------------ r4219 | vasil | 2009-02-17 11:41:24 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 19/28] ------------------------------------------------------------------------ r4220 | vasil | 2009-02-17 11:43:50 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 20/28] ------------------------------------------------------------------------ r4221 | vasil | 2009-02-17 11:46:52 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 21/28] ------------------------------------------------------------------------ r4222 | vasil | 2009-02-17 11:50:12 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 22/28] ------------------------------------------------------------------------ r4223 | vasil | 2009-02-17 11:53:58 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 23/28] ------------------------------------------------------------------------ r4224 | vasil | 2009-02-17 12:01:41 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 24/28] ------------------------------------------------------------------------ r4225 | vasil | 2009-02-17 12:05:45 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 25/28] ------------------------------------------------------------------------ r4226 | vasil | 2009-02-17 12:09:16 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 26/28] ------------------------------------------------------------------------ r4227 | vasil | 2009-02-17 12:12:56 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 27/28] ------------------------------------------------------------------------ r4228 | vasil | 2009-02-17 12:14:04 +0200 (Tue, 17 Feb 2009) | 8 lines branches/zip: * Remove old Innobase copyright lines from C source files * Add a reference to the GPLv2 license as recommended by the lawyers at Oracle Legal [Step 28/28] ------------------------------------------------------------------------ r4229 | vasil | 2009-02-17 12:30:55 +0200 (Tue, 17 Feb 2009) | 4 lines branches/zip: Add the copyright notice to the non C files. ------------------------------------------------------------------------ r4231 | marko | 2009-02-17 14:26:53 +0200 (Tue, 17 Feb 2009) | 12 lines Minor cleanup of the Google SMP patch. sync_array_object_signalled(): Add a (void) cast to eliminate a gcc warning about the return value of os_atomic_increment() being ignored. rw_lock_create_func(): Properly indent the preprocessor directives. rw_lock_x_lock_low(), rw_lock_x_lock_func_nowait(): Split lines correctly. rw_lock_set_writer_id_and_recursion_flag(): Silence a Valgrind warning. Do not mix statements and variable declarations. ------------------------------------------------------------------------ r4232 | marko | 2009-02-17 14:59:54 +0200 (Tue, 17 Feb 2009) | 3 lines branches/zip: When assigning lock->recursive = FALSE, also flag lock->writer_thread invalid, so that Valgrind will catch more errors. This is related to Issue #175. ------------------------------------------------------------------------ r4242 | marko | 2009-02-18 17:01:09 +0200 (Wed, 18 Feb 2009) | 2 lines branches/zip: UT_DBG_STOP: Use do{} while(0) to silence a g++-4.3.2 warning about a while(0); statement. This should fix (part of) Issue #176. ------------------------------------------------------------------------ r4243 | marko | 2009-02-18 17:04:03 +0200 (Wed, 18 Feb 2009) | 3 lines branches/zip: buf_buddy_get_slot(): Fix a gcc 4.3.2 warning about an empty body of a "for" statement. This fixes part of Issue #176. ------------------------------------------------------------------------ r4244 | marko | 2009-02-18 17:25:45 +0200 (Wed, 18 Feb 2009) | 11 lines branches/zip: Protect ut_total_allocated_memory with ut_list_mutex. Unprotected updates to ut_total_allocated_memory in os_mem_alloc_large() and os_mem_free_large(), called during fast index creation, may corrupt the variable and cause assertion failures. Also, add UNIV_MEM_ALLOC() and UNIV_MEM_FREE() instrumentation around os_mem_alloc_large() and os_mem_free_large(), so that Valgrind can detect more errors. rb://90 approved by Heikki Tuuri. This addresses Issue #177. ------------------------------------------------------------------------ r4248 | marko | 2009-02-19 11:52:39 +0200 (Thu, 19 Feb 2009) | 2 lines branches/zip: page_zip_set_size(): Fix a g++ 4.3.2 warning about an empty body in a "for" statement. This closes Issue #176. ------------------------------------------------------------------------ r4251 | inaam | 2009-02-19 15:46:27 +0200 (Thu, 19 Feb 2009) | 8 lines branches/zip: Issue #178 rb://91 Change plug.in to have same CXXFLAGS as CFLAGS. This is to ensure that both .c and .cc files get compiled with same flags. To fix the issue where UNIV_LINUX was defined only in .c files. Approved by: Marko ------------------------------------------------------------------------ r4258 | vasil | 2009-02-20 11:52:19 +0200 (Fri, 20 Feb 2009) | 7 lines branches/zip: Cleanup in ChangeLog: * Wrap lines at 78 characters * Changed files are listed alphabetically * White-space cleanup ------------------------------------------------------------------------ r4259 | vasil | 2009-02-20 11:59:42 +0200 (Fri, 20 Feb 2009) | 6 lines branches/zip: ChangeLog: Remove include/os0sync.ic from the entry about the google patch, this file was modified later to not include Google's code. ------------------------------------------------------------------------ r4262 | vasil | 2009-02-20 14:56:59 +0200 (Fri, 20 Feb 2009) | 373 lines branches/zip: Merge revisions 4035:4261 from branches/5.1: ------------------------------------------------------------------------ r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC is only defined for integer columns. This caused an assertion failure when we checked for the maximum value of a column type. We now calculate the max value for floating-point autoinc columns too. Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns rb://84 and Mantis issue://162 ------------------------------------------------------------------------ r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: Add the ULL suffix otherwise there is an overflow. ------------------------------------------------------------------------ r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines Changed paths: M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Merge a change from MySQL: ------------------------------------------------------------ revno: 2709.20.31 committer: Timothy Smith <timothy.smith@sun.com> branch nick: 51 timestamp: Fri 2008-12-19 01:28:51 +0100 message: Disable part of innodb-autoinc.test, because the MySQL server asserts when compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and increment > 1". This change should be reverted when that bug is fixed (and a a few other minor changes to the test as described in comments). modified: mysql-test/r/innodb-autoinc.result mysql-test/t/innodb-autoinc.test ------------------------------------------------------------------------ r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines Changed paths: M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Merge a change from MySQL: [looks like the changes to innodb-autoinc.test were made as part of the following huge merge, but we are merging only changes to that file] ------------------------------------------------------------ revno: 2546.47.1 committer: Luis Soares <luis.soares@sun.com> branch nick: 5.1-rpl timestamp: Fri 2009-01-23 13:22:05 +0100 message: merge: 5.1 -> 5.1-rpl conflicts: Text conflict in client/mysqltest.cc Text conflict in mysql-test/include/wait_until_connected_again.inc Text conflict in mysql-test/lib/mtr_report.pm Text conflict in mysql-test/mysql-test-run.pl Text conflict in mysql-test/r/events_bugs.result Text conflict in mysql-test/r/log_state.result Text conflict in mysql-test/r/myisam_data_pointer_size_func.result Text conflict in mysql-test/r/mysqlcheck.result Text conflict in mysql-test/r/query_cache.result Text conflict in mysql-test/r/status.result Text conflict in mysql-test/suite/binlog/r/binlog_index.result Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result Text conflict in mysql-test/suite/rpl/r/rpl_packet.result Text conflict in mysql-test/suite/rpl/t/rpl_packet.test Text conflict in mysql-test/t/disabled.def Text conflict in mysql-test/t/events_bugs.test Text conflict in mysql-test/t/log_state.test Text conflict in mysql-test/t/myisam_data_pointer_size_func.test Text conflict in mysql-test/t/mysqlcheck.test Text conflict in mysql-test/t/query_cache.test Text conflict in mysql-test/t/rpl_init_slave_func.test Text conflict in mysql-test/t/status.test removed: mysql-test/suite/parts/r/partition_bit_ndb.result mysql-test/suite/parts/t/partition_bit_ndb.test mysql-test/suite/parts/t/partition_sessions.test mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test mysql-test/t/log_bin_trust_function_creators_func-master.opt mysql-test/t/rpl_init_slave_func-slave.opt added: mysql-test/include/check_events_off.inc mysql-test/include/cleanup_fake_relay_log.inc mysql-test/include/have_simple_parser.inc mysql-test/include/no_running_event_scheduler.inc mysql-test/include/no_running_events.inc mysql-test/include/running_event_scheduler.inc mysql-test/include/setup_fake_relay_log.inc mysql-test/include/wait_condition_sp.inc mysql-test/r/fulltext_plugin.result mysql-test/r/have_simple_parser.require mysql-test/r/innodb_bug38231.result mysql-test/r/innodb_bug39438.result mysql-test/r/innodb_mysql_rbk.result mysql-test/r/partition_innodb_semi_consistent.result mysql-test/r/query_cache_28249.result mysql-test/r/status2.result mysql-test/std_data/bug40482-bin.000001 mysql-test/suite/binlog/r/binlog_innodb_row.result mysql-test/suite/binlog/t/binlog_innodb_row.test mysql-test/suite/rpl/r/rpl_binlog_corruption.result mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt mysql-test/suite/rpl/t/rpl_binlog_corruption.test mysql-test/suite/sys_vars/r/tmp_table_size_basic.result mysql-test/suite/sys_vars/t/tmp_table_size_basic.test mysql-test/t/fulltext_plugin-master.opt mysql-test/t/fulltext_plugin.test mysql-test/t/innodb_bug38231.test mysql-test/t/innodb_bug39438-master.opt mysql-test/t/innodb_bug39438.test mysql-test/t/innodb_mysql_rbk-master.opt mysql-test/t/innodb_mysql_rbk.test mysql-test/t/partition_innodb_semi_consistent-master.opt mysql-test/t/partition_innodb_semi_consistent.test mysql-test/t/query_cache_28249.test mysql-test/t/status2.test renamed: mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test modified: .bzr-mysql/default.conf CMakeLists.txt client/mysql.cc client/mysql_upgrade.c client/mysqlcheck.c client/mysqltest.cc configure.in extra/resolve_stack_dump.c extra/yassl/include/openssl/ssl.h include/config-win.h include/m_ctype.h include/my_global.h mysql-test/extra/binlog_tests/database.test mysql-test/extra/rpl_tests/rpl_auto_increment.test mysql-test/include/commit.inc mysql-test/include/have_32bit.inc mysql-test/include/have_64bit.inc mysql-test/include/index_merge1.inc mysql-test/include/linux_sys_vars.inc mysql-test/include/windows_sys_vars.inc mysql-test/lib/mtr_report.pm mysql-test/mysql-test-run.pl mysql-test/r/alter_table.result mysql-test/r/commit_1innodb.result mysql-test/r/create.result mysql-test/r/csv.result mysql-test/r/ctype_ucs.result mysql-test/r/date_formats.result mysql-test/r/events_bugs.result mysql-test/r/events_scheduling.result mysql-test/r/fulltext.result mysql-test/r/func_if.result mysql-test/r/func_in.result mysql-test/r/func_str.result mysql-test/r/func_time.result mysql-test/r/grant.result mysql-test/r/index_merge_myisam.result mysql-test/r/information_schema.result mysql-test/r/innodb-autoinc.result mysql-test/r/innodb.result mysql-test/r/innodb_mysql.result mysql-test/r/log_bin_trust_function_creators_func.result mysql-test/r/log_state.result mysql-test/r/myisampack.result mysql-test/r/mysql.result mysql-test/r/mysqlcheck.result mysql-test/r/partition_datatype.result mysql-test/r/partition_mgm.result mysql-test/r/partition_pruning.result mysql-test/r/query_cache.result mysql-test/r/read_buffer_size_basic.result mysql-test/r/read_rnd_buffer_size_basic.result mysql-test/r/rpl_init_slave_func.result mysql-test/r/select.result mysql-test/r/status.result mysql-test/r/strict.result mysql-test/r/temp_table.result mysql-test/r/type_bit.result mysql-test/r/type_date.result mysql-test/r/type_float.result mysql-test/r/warnings_engine_disabled.result mysql-test/r/xml.result mysql-test/suite/binlog/r/binlog_database.result mysql-test/suite/binlog/r/binlog_index.result mysql-test/suite/binlog/r/binlog_innodb.result mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result mysql-test/suite/binlog/t/binlog_innodb.test mysql-test/suite/funcs_1/r/is_columns_is.result mysql-test/suite/funcs_1/r/is_engines.result mysql-test/suite/funcs_1/r/storedproc.result mysql-test/suite/funcs_1/storedproc/param_check.inc mysql-test/suite/funcs_2/t/disabled.def mysql-test/suite/ndb/t/disabled.def mysql-test/suite/parts/r/partition_bit_innodb.result mysql-test/suite/parts/r/partition_bit_myisam.result mysql-test/suite/parts/r/partition_special_innodb.result mysql-test/suite/parts/t/disabled.def mysql-test/suite/parts/t/partition_special_innodb.test mysql-test/suite/parts/t/partition_value_innodb.test mysql-test/suite/parts/t/partition_value_myisam.test mysql-test/suite/parts/t/partition_value_ndb.test mysql-test/suite/rpl/r/rpl_auto_increment.result mysql-test/suite/rpl/r/rpl_packet.result mysql-test/suite/rpl/r/rpl_row_create_table.result mysql-test/suite/rpl/r/rpl_slave_skip.result mysql-test/suite/rpl/r/rpl_trigger.result mysql-test/suite/rpl/t/disabled.def mysql-test/suite/rpl/t/rpl_packet.test mysql-test/suite/rpl/t/rpl_row_create_table.test mysql-test/suite/rpl/t/rpl_slave_skip.test mysql-test/suite/rpl/t/rpl_trigger.test mysql-test/suite/rpl_ndb/t/disabled.def mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result mysql-test/t/alter_table.test mysql-test/t/create.test mysql-test/t/csv.test mysql-test/t/ctype_ucs.test mysql-test/t/date_formats.test mysql-test/t/disabled.def mysql-test/t/events_bugs.test mysql-test/t/events_scheduling.test mysql-test/t/fulltext.test mysql-test/t/func_if.test mysql-test/t/func_in.test mysql-test/t/func_str.test mysql-test/t/func_time.test mysql-test/t/grant.test mysql-test/t/information_schema.test mysql-test/t/innodb-autoinc.test mysql-test/t/innodb.test mysql-test/t/innodb_mysql.test mysql-test/t/log_bin_trust_function_creators_func.test mysql-test/t/log_state.test mysql-test/t/myisam_data_pointer_size_func.test mysql-test/t/myisampack.test mysql-test/t/mysql.test mysql-test/t/mysqlcheck.test mysql-test/t/partition_innodb_stmt.test mysql-test/t/partition_mgm.test mysql-test/t/partition_pruning.test mysql-test/t/query_cache.test mysql-test/t/rpl_init_slave_func.test mysql-test/t/select.test mysql-test/t/status.test mysql-test/t/strict.test mysql-test/t/temp_table.test mysql-test/t/type_bit.test mysql-test/t/type_date.test mysql-test/t/type_float.test mysql-test/t/warnings_engine_disabled.test mysql-test/t/xml.test mysys/my_getopt.c mysys/my_init.c scripts/mysql_install_db.sh sql-common/my_time.c sql/field.cc sql/field.h sql/filesort.cc sql/ha_partition.cc sql/ha_partition.h sql/item.cc sql/item_cmpfunc.cc sql/item_func.h sql/item_strfunc.cc sql/item_sum.cc sql/item_timefunc.cc sql/item_timefunc.h sql/log.cc sql/log.h sql/log_event.cc sql/log_event.h sql/mysql_priv.h sql/mysqld.cc sql/opt_range.cc sql/partition_info.cc sql/repl_failsafe.cc sql/rpl_constants.h sql/set_var.cc sql/slave.cc sql/spatial.h sql/sql_acl.cc sql/sql_base.cc sql/sql_binlog.cc sql/sql_class.h sql/sql_cursor.cc sql/sql_delete.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_locale.cc sql/sql_parse.cc sql/sql_partition.cc sql/sql_plugin.cc sql/sql_plugin.h sql/sql_profile.cc sql/sql_repl.cc sql/sql_select.cc sql/sql_select.h sql/sql_show.cc sql/sql_table.cc sql/sql_trigger.cc sql/sql_trigger.h sql/table.cc sql/table.h sql/unireg.cc storage/csv/ha_tina.cc storage/federated/ha_federated.cc storage/heap/ha_heap.cc storage/innobase/Makefile.am storage/innobase/btr/btr0sea.c storage/innobase/buf/buf0lru.c storage/innobase/dict/dict0dict.c storage/innobase/dict/dict0mem.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/include/btr0sea.h storage/innobase/include/dict0dict.h storage/innobase/include/dict0mem.h storage/innobase/include/ha_prototypes.h storage/innobase/include/lock0lock.h storage/innobase/include/row0mysql.h storage/innobase/include/sync0sync.ic storage/innobase/include/ut0ut.h storage/innobase/lock/lock0lock.c storage/innobase/os/os0file.c storage/innobase/plug.in storage/innobase/row/row0mysql.c storage/innobase/row/row0sel.c storage/innobase/srv/srv0srv.c storage/innobase/srv/srv0start.c storage/innobase/ut/ut0ut.c storage/myisam/ft_boolean_search.c strings/ctype.c strings/xml.c tests/mysql_client_test.c win/configure.js mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test ------------------------------------------------------------------------ r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: minor non-functional changes. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4263 | vasil | 2009-02-20 15:00:46 +0200 (Fri, 20 Feb 2009) | 4 lines branches/zip: Add a ChangeLog entry for a change in r4262. ------------------------------------------------------------------------ r4265 | marko | 2009-02-20 22:31:03 +0200 (Fri, 20 Feb 2009) | 5 lines branches/zip: Make innodb_use_sys_malloc=ON the default. Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc) to improve branch prediction in the default case. Approved by Ken over the IM. ------------------------------------------------------------------------ r4266 | vasil | 2009-02-20 23:29:32 +0200 (Fri, 20 Feb 2009) | 7 lines branches/zip: Add a sentence at the top of COPYING.Google to clarify that this license does not apply to the whole InnoDB. Suggested by: Ken ------------------------------------------------------------------------ r4268 | marko | 2009-02-23 12:43:51 +0200 (Mon, 23 Feb 2009) | 9 lines branches/zip: Initialize ut_list_mutex at startup. Without this fix, ut_list_mutex would be used uninitialized when innodb_use_sys_malloc=1. This fix addresses Issue #181. ut_mem_block_list_init(): Rename to ut_mem_init() and make public. ut_malloc_low(), ut_free_all_mem(): Add ut_a(ut_mem_block_list_inited). mem_init(): Call ut_mem_init(). ------------------------------------------------------------------------ r4269 | marko | 2009-02-23 15:09:49 +0200 (Mon, 23 Feb 2009) | 7 lines branches/zip: When freeing an uncompressed BLOB page, tolerate garbage in FIL_PAGE_TYPE. (Bug #43043, Issue #182) btr_check_blob_fil_page_type(): New function. btr_free_externally_stored_field(), btr_copy_blob_prefix(): Call btr_check_blob_fil_page_type() to check FIL_PAGE_TYPE. ------------------------------------------------------------------------ r4272 | marko | 2009-02-23 23:10:18 +0200 (Mon, 23 Feb 2009) | 8 lines branches/zip: Adjust the fix of Issue #182 in r4269 per Inaam's suggestion. btr_check_blob_fil_page_type(): Replace the parameter const char* op with ibool read. Do not print anything about page type mismatch when reading a BLOB page in Antelope format. Print space id before page number. ------------------------------------------------------------------------ r4273 | marko | 2009-02-24 00:11:11 +0200 (Tue, 24 Feb 2009) | 1 line branches/zip: ut_mem_init(): Add the assertion !ut_mem_block_list_inited. ------------------------------------------------------------------------ r4274 | marko | 2009-02-24 00:14:38 +0200 (Tue, 24 Feb 2009) | 12 lines branches/zip: Fix bugs in the fix of Issue #181. Tested inside and outside Valgrind, with innodb_use_sys_malloc set to 0 and 1. mem_init(): Invoke ut_mem_init() before mem_pool_create(), because the latter one will invoke ut_malloc(). srv_general_init(): Do not initialize the memory subsystem (mem_init()). innobase_init(): Initialize the memory subsystem (mem_init()) before calling srv_parse_data_file_paths_and_sizes(), which needs ut_malloc(). Call ut_free_all_mem() in error handling to clean up after the mem_init(). ------------------------------------------------------------------------ r4280 | marko | 2009-02-24 15:14:59 +0200 (Tue, 24 Feb 2009) | 1 line branches/zip: Remove unused function os_mem_alloc_nocache(). ------------------------------------------------------------------------ r4281 | marko | 2009-02-24 16:02:48 +0200 (Tue, 24 Feb 2009) | 1 line branches/zip: Remove the unused function dict_index_get_type(). ------------------------------------------------------------------------ r4283 | marko | 2009-02-24 23:06:56 +0200 (Tue, 24 Feb 2009) | 1 line branches/zip: srv0start.c: Remove unnecessary #include "mem0pool.h". ------------------------------------------------------------------------ r4284 | marko | 2009-02-24 23:26:38 +0200 (Tue, 24 Feb 2009) | 1 line branches/zip: mem0mem.c: Remove unnecessary #include "mach0data.h". ------------------------------------------------------------------------ r4288 | vasil | 2009-02-25 10:48:07 +0200 (Wed, 25 Feb 2009) | 21 lines branches/zip: Merge revisions 4261:4287 from branches/5.1: ------------------------------------------------------------------------ r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two changes to the autoinc handling. 1. To fix the immediate problem from the bug report, we must ensure that the value written to the table is always less than the max value stored in dict_table_t. 2. The second related change is that according to MySQL documentation when the offset is greater than the increment, we should ignore the offset. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4289 | vasil | 2009-02-25 10:53:51 +0200 (Wed, 25 Feb 2009) | 4 lines branches/zip: Add ChangeLog entry for the fix in r4288. ------------------------------------------------------------------------ r4290 | vasil | 2009-02-25 11:05:44 +0200 (Wed, 25 Feb 2009) | 11 lines branches/zip: Make ChangeLog entries for bugs in bugs.mysql.com in the form: Fix Bug#12345 bug title (for bugs after 1.0.2 was released and the ChangeLog published) There is no need to bloat the ChangeLog with information that is available via bugs.mysql.com. Discussed with: Marko ------------------------------------------------------------------------ r4291 | vasil | 2009-02-25 11:08:32 +0200 (Wed, 25 Feb 2009) | 4 lines branches/zip: Fix Bug synopsis and remove explanation ------------------------------------------------------------------------ r4292 | marko | 2009-02-25 12:09:15 +0200 (Wed, 25 Feb 2009) | 25 lines branches/zip: Correct the initialization of the memory subsystem once again, to finally put Issue #181 to rest. Revert some parts of r4274. It is best not to call ut_malloc() before srv_general_init(). mem_init(): Do not call ut_mem_init(). srv_general_init(): Initialize the memory subsystem in two phases: first ut_mem_init(), then mem_init(). This is because os_sync_init() and sync_init() depend on ut_mem_init() and mem_init() depends on os_sync_init() or sync_init(). srv_parse_data_file_paths_and_sizes(), srv_parse_log_group_home_dirs(): Remove the output parameters. Assign to the global variables directly. Allocate memory with malloc() instead of ut_malloc(), because these functions will be called before srv_general_init(). srv_free_paths_and_sizes(): New function, for cleaning up after srv_parse_data_file_paths_and_sizes() and srv_parse_log_group_home_dirs(). rb://92 approved by Sunny Bains ------------------------------------------------------------------------ r4297 | vasil | 2009-02-25 17:19:19 +0200 (Wed, 25 Feb 2009) | 4 lines branches/zip: White-space cleanup in the ChangeLog ------------------------------------------------------------------------ r4301 | vasil | 2009-02-25 21:33:32 +0200 (Wed, 25 Feb 2009) | 5 lines branches/zip: Do not output the commands that restore the environment because they depend on the state of the environment before the test starts executing. ------------------------------------------------------------------------ r4315 | vasil | 2009-02-26 09:21:20 +0200 (Thu, 26 Feb 2009) | 5 lines branches/zip: Apply any necessary patches to the mysql tree at the end of setup.sh This step was previously done manually (and sometimes forgotten). ------------------------------------------------------------------------ r4319 | marko | 2009-02-26 23:27:51 +0200 (Thu, 26 Feb 2009) | 6 lines branches/zip: btr_check_blob_fil_page_type(): Do not report FIL_PAGE_TYPE mismatch even when purging a BLOB. Heavy users may have large data files created with MySQL 5.0 or earlier, and they don not want to have the error log flooded with such messages. This fixes Issue #182. ------------------------------------------------------------------------ r4320 | inaam | 2009-02-27 02:13:19 +0200 (Fri, 27 Feb 2009) | 8 lines branches/zip This is to revert the changes made to the plug.in (r4251) as a fix for issue# 178. Changes to plug.in will not propogate to a plugin installation unless autotools are rerun which is unacceptable. A fix for issue# 178 will be committed in a separate commit. ------------------------------------------------------------------------ r4321 | inaam | 2009-02-27 02:16:46 +0200 (Fri, 27 Feb 2009) | 6 lines branches/zip This is a fix for issue#178. Instead of using UNIV_LINUX which is defined through CFLAGS we use compiler generated define __linux__ that is effective for both .c and .cc files. ------------------------------------------------------------------------ r4324 | vasil | 2009-02-27 13:27:18 +0200 (Fri, 27 Feb 2009) | 39 lines branches/zip: Add FreeBSD to the list of the operating systems that have sizeof(pthread_t) == sizeof(void*) (i.e. word size). On FreeBSD pthread_t is defined like: /usr/include/sys/_pthreadtypes.h: typedef struct pthread *pthread_t; I did the following tests (per Inaam's recommendation): a) appropriate version of GCC is available on that platform (4.1.2 or higher for atomics to be available) On FreeBSD 6.x the default compiler is 3.4.6, on FreeBSD 7.x the default one is 4.2.1. One can always install the version of choice from the ports collection. If gcc 3.x is used then HAVE_GCC_ATOMIC_BUILTINS will not be defined and thus the change I am committing will make no difference. b) find out if sizeof(pthread_t) == sizeof(long) On 32 bit both are 4 bytes, on 64 bit both are 8 bytes. c) find out the compiler generated platform define (e.g.: __aix, __sunos__ etc.) The macro is __FreeBSD__. d) patch univ.i with the appropriate platform define e) build the mysql f) ensure it is using atomic builtins (look at the err.log message at system startup. It should say we are using atomics for both mutexes and rw-locks) g) do sanity testing (keeping in view the smp changes) I ran the mysql-test suite. All tests pass. ------------------------------------------------------------------------ r4353 | vasil | 2009-03-05 09:27:29 +0200 (Thu, 05 Mar 2009) | 6 lines branches/zip: As suggested by Ken, print a message that says that the Google SMP patch (GCC atomics) is disabled if it is. Also extend the message when the patch is partially enabled to make it clear that it is partially enabled. ------------------------------------------------------------------------ r4356 | vasil | 2009-03-05 13:49:51 +0200 (Thu, 05 Mar 2009) | 4 lines branches/zip: Fix typo made in r4353. ------------------------------------------------------------------------ r4357 | vasil | 2009-03-05 16:38:59 +0200 (Thu, 05 Mar 2009) | 23 lines branches/zip: Implement a check whether pthread_t objects can be used by GCC atomic builtin functions. This check is implemented in plug.in and defines the macro HAVE_ATOMIC_PTHREAD_T. This macro is checked in univ.i and the relevant part of the code enabled (the one that uses GCC atomics against pthread_t objects). In addition to this, the same program that is compiled as part of the plug.in check is added in ut/ut0auxconf.c. In the InnoDB Plugin source archives that are shipped to the users, a generated Makefile.in is added. That Makefile.in will be modified to compile ut/ut0auxconf.c and define the macro HAVE_ATOMIC_PTHREAD_T if the compilation succeeds. I.e. Makefile.in will emulate the work that is done by plug.in. This is done in order to make the check happen and HAVE_ATOMIC_PTHREAD_T eventually defined without regenerating MySQL's ./configure from ./storage/innobase/plug.in. The point is not to ask users to install the autotools and regenerate ./configure. rb://95 Approved by: Marko ------------------------------------------------------------------------ r4360 | vasil | 2009-03-05 22:23:17 +0200 (Thu, 05 Mar 2009) | 21 lines branches/zip: Merge revisions 4287:4357 from branches/5.1: ------------------------------------------------------------------------ r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc M /branches/5.1/mysql-test/innodb-autoinc.result M /branches/5.1/mysql-test/innodb-autoinc.test branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv It was not a SIGSEGV but an assertion failure. The assertion was checking the invariant that *first_value passed in by MySQL doesn't contain a value that is greater than the max value for that type. The assertion has been changed to a check and if the value is greater than the max we report a generic AUTOINC failure. rb://93 Approved by Heikki ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4361 | vasil | 2009-03-05 22:27:54 +0200 (Thu, 05 Mar 2009) | 30 lines branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict): ------------------------------------------------------------------------ r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: Merge a change from MySQL: ------------------------------------------------------------ revno: 2728.19.1 committer: Alfranio Correia <alfranio.correia@sun.com> branch nick: mysql-5.1-bugteam timestamp: Tue 2009-02-03 11:36:46 +0000 message: BUG#42445 Warning messages in innobase/handler/ha_innodb.cc There was a type casting problem in the storage/innobase/handler/ha_innodb.cc, (int ha_innobase::write_row(...)). Innobase uses has an internal error variable of type 'ulint' while mysql uses an 'int'. To fix the problem the function manipulates an error variable of type 'ulint' and only casts it into 'int' when needs to return the value. modified: storage/innobase/handler/ha_innodb.cc ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4362 | vasil | 2009-03-05 22:29:07 +0200 (Thu, 05 Mar 2009) | 23 lines branches/zip: Merge revision 4359 from branches/5.1: ------------------------------------------------------------------------ r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines Changed paths: M /branches/5.1/handler/ha_innodb.cc branches/5.1: Merge a change from MySQL: ------------------------------------------------------------ revno: 2747 committer: Timothy Smith <timothy.smith@sun.com> branch nick: 51 timestamp: Fri 2009-01-16 17:49:07 +0100 message: Add another cast to ignore int/ulong difference in error types, silence warning on Win64 modified: storage/innobase/handler/ha_innodb.cc ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4363 | vasil | 2009-03-05 22:31:37 +0200 (Thu, 05 Mar 2009) | 4 lines branches/zip: Add ChangeLog entry for the bugfix in c4360. ------------------------------------------------------------------------ r4378 | calvin | 2009-03-09 10:10:17 +0200 (Mon, 09 Mar 2009) | 7 lines branches/zip: remove compile flag MYSQL_SERVER for dynamic plugin The dynamic plugin on Windows used to be built with MYSQL_SERVER compile flag, while it is not the case for other platforms. r3797 assumed MYSQL_SERVER was not defined for dynamic plugin, which introduced the engine crash during dropping a database. ------------------------------------------------------------------------ r4396 | marko | 2009-03-12 09:22:27 +0200 (Thu, 12 Mar 2009) | 3 lines branches/zip: btr_store_big_rec_extern_fields(): Initialize FIL_PAGE_TYPE in a separate redo log entry. This will make ibbackup --apply-log debugging easier. ------------------------------------------------------------------------ r4397 | marko | 2009-03-12 09:26:11 +0200 (Thu, 12 Mar 2009) | 3 lines branches/zip: trx_sys_create_doublewrite_buf(): As the dummy change, initialize FIL_PAGE_TYPE. This will make it easier to write the debug assertions for ibbackup --apply-log. ------------------------------------------------------------------------ r4401 | marko | 2009-03-12 10:26:40 +0200 (Thu, 12 Mar 2009) | 19 lines branches/zip: Merge revisions 4359:4400 from branches/5.1: ------------------------------------------------------------------------ r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 2 lines branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position also for unlock_row(). (Bug #39320) ------------------------------------------------------------------------ r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 5 lines branches/5.1: Fix a bug in multi-table semi-consistent reads. Remember the acquired record locks per table handle (row_prebuilt_t) rather than per transaction (trx_t), so that unlock_row should successfully unlock all non-matching rows in multi-table operations. This deficiency was found while investigating Bug #39320. ------------------------------------------------------------------------ These were submitted as rb://94 and rb://96 and approved by Heikki Tuuri. ------------------------------------------------------------------------ r4455 | marko | 2009-03-16 11:43:34 +0200 (Mon, 16 Mar 2009) | 2 lines branches/zip: UT_LIST_VALIDATE(): Add the parameter ASSERTION and adjust all callers. ------------------------------------------------------------------------ r4456 | marko | 2009-03-16 12:59:25 +0200 (Mon, 16 Mar 2009) | 6 lines branches/zip: UT_LIST_VALIDATE(): Assert that the link is non-NULL before dereferencing it. In this way, ut_list_node_313 will be pointing to the last non-NULL list item at the time of the assertion failure. (gcc-4.3.2 -O3 seems to optimize the common subexpressions and make the variable NULL, though.) ------------------------------------------------------------------------ r4457 | marko | 2009-03-16 14:12:02 +0200 (Mon, 16 Mar 2009) | 2 lines branches/zip: sync_thread_add_level(): Make the assertions about level == SYNC_BUF_BLOCK more readable. ------------------------------------------------------------------------ r4461 | vasil | 2009-03-17 09:38:19 +0200 (Tue, 17 Mar 2009) | 6 lines branches/zip: Remove mysql-test/patches/bug32625.diff because that bug was fixed in the mysql repository (1 year and 4 months after sending them the simple patch!). See http://bugs.mysql.com/32625 ------------------------------------------------------------------------ r4465 | marko | 2009-03-17 12:34:19 +0200 (Tue, 17 Mar 2009) | 1 line branches/zip: buf0buddy.c: Add and adjust some debug assertions. ------------------------------------------------------------------------ r4473 | vasil | 2009-03-17 15:50:30 +0200 (Tue, 17 Mar 2009) | 5 lines branches/zip: Increment the InnoDB Plugin version from 1.0.3 to 1.0.4 now that 1.0.3 has been released. ------------------------------------------------------------------------ r4478 | vasil | 2009-03-18 11:53:53 +0200 (Wed, 18 Mar 2009) | 5 lines branches/zip: Remove mysql-test/patches/bug41893.diff because that bug has been fixed in the MySQL repository, see http://bugs.mysql.com/41893. ------------------------------------------------------------------------ r4479 | marko | 2009-03-18 12:43:54 +0200 (Wed, 18 Mar 2009) | 2 lines branches/zip: buf_LRU_block_remove_hashed_page(): Add some debug assertions. ------------------------------------------------------------------------ r4480 | marko | 2009-03-18 14:32:13 +0200 (Wed, 18 Mar 2009) | 1 line branches/zip: buf_buddy_free_low(): Correct the function comment. ------------------------------------------------------------------------ r4482 | marko | 2009-03-19 15:23:32 +0200 (Thu, 19 Mar 2009) | 12 lines branches/zip: Merge revisions 4400:4481 from branches/5.1: ------------------------------------------------------------------------ r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines branches/5.1: row_unlock_for_mysql(): Do not unlock records that were modified by the current transaction. This bug was introduced or unmasked in r4400. rb://97 approved by Heikki Tuuri ------------------------------------------------------------------------ ------------------------------------------------------------------------ r4490 | marko | 2009-03-20 12:33:33 +0200 (Fri, 20 Mar 2009) | 4 lines branches/zip: Non-functional change for reducing dependencies in InnoDB Hot Backup: Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with dict_ind_redundant and dict_ind_compact, initialized in dict_init(). ------------------------------------------------------------------------ r4491 | marko | 2009-03-20 12:45:18 +0200 (Fri, 20 Mar 2009) | 2 lines branches/zip: Add const qualifiers or in/out comments to some function parameters in log0log. ------------------------------------------------------------------------ r4492 | marko | 2009-03-20 12:52:14 +0200 (Fri, 20 Mar 2009) | 5 lines branches/zip: page_validate(): Always report the space id and the name of the index. In Hot Backup, do not invoke comparison functions, as MySQL collations will be unavailable. ------------------------------------------------------------------------ r4493 | marko | 2009-03-20 13:24:06 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: Replace fil_get_space_for_id_low() with fil_space_get_by_id(). ------------------------------------------------------------------------ r4494 | marko | 2009-03-20 13:51:35 +0200 (Fri, 20 Mar 2009) | 3 lines branches/zip: fil0fil.c: Refer to fil_system directly, not via local vars. This eliminates some "unused variable" warnings when building InnoDB Hot Backup in such a way that all mutex operations are no-ops. ------------------------------------------------------------------------ r4495 | marko | 2009-03-20 14:15:52 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h. ------------------------------------------------------------------------ r4496 | marko | 2009-03-20 14:48:26 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: recv_recover_page(): Remove compile-time constant parameters. ------------------------------------------------------------------------ r4497 | marko | 2009-03-20 14:56:19 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: recv_sys_init(): Remove a compile-time constant parameter. ------------------------------------------------------------------------ r4498 | marko | 2009-03-20 15:08:05 +0200 (Fri, 20 Mar 2009) | 4 lines branches/zip: Non-functional change: Add const qualifiers. log_block_checksum_is_ok_or_old_format(), recv_sys_add_to_parsing_buf(): The log block is read-only. Make it const. ------------------------------------------------------------------------ r4499 | marko | 2009-03-20 15:10:25 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: recv_scan_log_recs(): Remove a compile-time constant parameter. ------------------------------------------------------------------------ r4500 | marko | 2009-03-20 15:47:17 +0200 (Fri, 20 Mar 2009) | 1 line branches/zip: fil_init(): Add the parameter hash_size. ------------------------------------------------------------------------ r4501 | vasil | 2009-03-20 16:50:41 +0200 (Fri, 20 Mar 2009) | 4 lines branches/zip: Add any entry about the release of 1.0.3 in the ChangeLog. ------------------------------------------------------------------------ r4515 | marko | 2009-03-23 10:49:53 +0200 (Mon, 23 Mar 2009) | 1 line branches/zip: hash_table_t: adaptive: Remove from UNIV_HOTBACKUP builds. ------------------------------------------------------------------------ r4516 | marko | 2009-03-23 10:57:16 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Define and use ASSERT_HASH_MUTEX_OWN. Make it a no-op in UNIV_HOTBACKUP builds. ------------------------------------------------------------------------ r4517 | marko | 2009-03-23 11:07:20 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Define and use PAGE_ZIP_MATCH. In UNIV_HOTBACKUP builds, assume fixed allocation. ------------------------------------------------------------------------ r4521 | marko | 2009-03-23 12:05:47 +0200 (Mon, 23 Mar 2009) | 1 line branches/zip: buf_page_print(): Clean up the code #ifdef UNIV_HOTBACKUP. ------------------------------------------------------------------------ r4522 | marko | 2009-03-23 12:20:50 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Exclude some operating system interface code from UNIV_HOTBACKUP builds. ------------------------------------------------------------------------ r4523 | marko | 2009-03-23 13:00:43 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Remove the remaining references to hash_table_t::adapive from UNIV_HOTBACKUP builds. This should have been done in r4515. ------------------------------------------------------------------------ r4524 | marko | 2009-03-23 14:05:18 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Enclose recv_recovery_from_backup_on and recv_recovery_from_backup_is_on() in #ifdef UNIV_LOG_ARCHIVE. ------------------------------------------------------------------------ r4525 | marko | 2009-03-23 14:57:45 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: recv_parse_or_apply_log_rec_body(): Add debug assertions ensuring that FIL_PAGE_TYPE makes sense when applying log records. ------------------------------------------------------------------------ r4526 | marko | 2009-03-23 16:21:34 +0200 (Mon, 23 Mar 2009) | 2 lines branches/zip: Remove unneeded definitions and dependencies from UNIV_HOTBACKUP builds. ------------------------------------------------------------------------ r4527 | calvin | 2009-03-23 23:15:33 +0200 (Mon, 23 Mar 2009) | 5 lines branches/zip: adjust build files on Windows Adjust the patch positions based on the latest MySQL source. Also add the patches to the .bat files for vs9. ------------------------------------------------------------------------ |
||
marko
|
d118d29eb3 |
branches/innodb+: Merge revisions 4006:4060 from branches/zip:
------------------------------------------------------------------------ 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. ------------------------------------------------------------------------ |
||
marko
|
0a8380ab4a |
branches/innodb+: Merge revisions 3519:3541 from branches/zip:
------------------------------------------------------------------------ r3537 | marko | 2008-12-16 10:24:03 +0200 (Tue, 16 Dec 2008) | 3 lines branches/zip: sync_thread_add_level(): Add a comment explaining the assertion about SYNC_BUF_POOL and SYNC_BUF_BLOCK. ------------------------------------------------------------------------ r3540 | marko | 2008-12-16 12:13:31 +0200 (Tue, 16 Dec 2008) | 2 lines branches/zip: buf_page_init_for_read(): Use common code for error exit. ------------------------------------------------------------------------ r3541 | marko | 2008-12-16 12:14:58 +0200 (Tue, 16 Dec 2008) | 3 lines branches/zip: btr_cur_optimistic_delete(): Note that no further pages must be latched before calling mtr_commit(mtr) if the function returns TRUE. ------------------------------------------------------------------------ |
||
marko
|
60bbfd6d0b |
branches/innodb+: Clean up the buffering of purges. Instead of
traversing the index B-tree twice (first in BTR_WATCH_LEAF mode and then in BTR_DELETE mode), let BTR_DELETE take care of checking that the record can be purged, and either buffering or performing the purge. row_purge_poss_sec(): New function, to check if it is possible to purge a secondary index record. Refactored from row_purge_remove_sec_if_poss_low(). row_purge_remove_sec_if_poss_nonbuffered(): Rename to row_purge_remove_sec_if_poss_tree(). Remove the parameter mode (always use BTR_MODIFY_TREE). Use row_purge_poss_sec(). row_purge_remove_sec_if_poss_low(): Rename to row_purge_remove_sec_if_poss_leaf(). Remove the parameter mode (always use BTR_MODIFY_LEAF). Let row_search_index_entry() do all the hard work. btr_cur_t: Add purge_node, which will be needed by btr_cur_search_to_nth_level() for BTR_DELETE. Replace the flag value BTR_CUR_ABORTED with BTR_CUR_DELETE_REF and BTR_CUR_DELETE_FAILED. enum row_search_result, row_search_index_entry(): Replace ROW_NOT_IN_POOL with ROW_NOT_DELETED_REF and ROW_NOT_DELETED. btr_cur_search_to_nth_level(): Remove BTR_WATCH_LEAF. As a side effect, the adaptive hash index can be used in purge as well. If BTR_DELETE cannot be buffered, attempt btr_cur_optimistic_delete(). Either way, check row_purge_poss_sec(). Move the code to set cursor->ibuf_count to get rid of another if (height == 0) check. Eliminate the label loop_end. Do not call ibuf_should_try() twice. ibuf_should_try(): Now that the successful calls to this function will be halved, halve the magic constant that ibuf_flush_count will be compared to, accordingly. The changes regarding ibuf_should_try() were merged from branches/zip r3515. rb://60 approved by Heikki over IM |
||
marko
|
6c3a99a738 |
branches/innodb+: btr_cur_t: Remove leaf_in_buf_pool. The flag can be
determined from flag == BTR_CUR_ABORTED. This flag value was previously never tested for. It was only assigned to, in the only place where leaf_in_buf_pool would be set FALSE. btr_cur_search_to_nth_level(): Do not initialize cursor->leaf_in_buf_pool. btr_pcur_was_buffered(): Remove. The only caller, row_search_index_entry(), will switch (cursor->flag) and handle BTR_CUR_ABORTED as well. row_purge_remove_sec_if_poss_low(): Remove the assertions on leaf_in_buf_pool. |
||
marko
|
a980b544cd |
branches/innodb+: Merge revisions 2774:2799 from branches/zip:
------------------------------------------------------------------------ r2781 | marko | 2008-10-13 13:40:57 +0300 (Mon, 13 Oct 2008) | 1 line branches/zip: page_cur_delete_rec(): Call page_zip_validate_low(). ------------------------------------------------------------------------ r2783 | vasil | 2008-10-13 18:34:34 +0300 (Mon, 13 Oct 2008) | 9 lines branches/zip: Remove mysql-test/patches/bug37312.diff because MySQL "fixed" Bug#37312 by removing the test. http://bugs.mysql.com/37312 http://lists.mysql.com/commits/54462 ------------------------------------------------------------------------ r2784 | marko | 2008-10-13 21:35:30 +0300 (Mon, 13 Oct 2008) | 1 line branches/zip: Add missing NULL check to the assertion added in r2781. ------------------------------------------------------------------------ r2785 | marko | 2008-10-13 22:29:12 +0300 (Mon, 13 Oct 2008) | 2 lines branches/zip: page_cur_delete_rec(): Remove the bogus page_zip_validate_low() assertion that was added in r2781 and explain why it was bogus. ------------------------------------------------------------------------ r2786 | calvin | 2008-10-14 19:14:47 +0300 (Tue, 14 Oct 2008) | 7 lines branches/zip: fix Mantis issue #96 Problem compiling ha_innodb.cc on 64-bit Windows Change the definition of srv_replication_delay from ulint to ulong. ulint is 64-bit on Win64. Approved by: Heikki (on IM) ------------------------------------------------------------------------ r2787 | calvin | 2008-10-14 19:19:41 +0300 (Tue, 14 Oct 2008) | 7 lines branches/zip: fix compiler warning Change the definition of add_on from ulint to ullint, to eliminate the warning in .\btr\btr0cur.c: conversion from 'ullint' to 'ulint', possible loss of data Approved by: Heikki (on IM) ------------------------------------------------------------------------ r2793 | marko | 2008-10-15 10:00:06 +0300 (Wed, 15 Oct 2008) | 2 lines branches/zip: row_create_table_for_mysql(), row_create_index_for_mysql(): Note that the dictionary object will be freed. ------------------------------------------------------------------------ r2794 | marko | 2008-10-15 10:32:40 +0300 (Wed, 15 Oct 2008) | 9 lines branches/zip: When invoking page_zip_copy_recs(), update the lock table and the adaptive hash index. This should fix Issue #95 and Issue #87. page_zip_copy_recs(): Copy PAGE_MAX_TRX_ID as well, to have similar behavior to page_copy_rec_list_start() and page_copy_rec_list_end(). btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_lift_page_up(): Update the lock table and the adaptive hash index. ------------------------------------------------------------------------ r2797 | marko | 2008-10-15 13:21:54 +0300 (Wed, 15 Oct 2008) | 3 lines branches/zip: Introduce UNIV_ZIP_COPY for invoking page_zip_copy_recs() more often in B-tree operations. ------------------------------------------------------------------------ r2799 | marko | 2008-10-15 14:27:42 +0300 (Wed, 15 Oct 2008) | 25 lines branches/zip: When the server crashes while freeing an externally stored column of a compressed table, the BTR_EXTERN_LEN field in the BLOB pointer will be written as 0. Tolerate this in the functions that deal with externally stored columns. This fixes Issue #80 and was posted at rb://26. Note that the clustered index record is always deleted or purged last, after any secondary index records referring to it have been deleted. btr_free_externally_stored_field(): On an uncompressed table, zero out the BTR_EXTERN_LEN, so that half-deleted BLOBs can be detected after crash recovery. btr_copy_externally_stored_field_prefix(): Return 0 if the BLOB has been half-deleted. row_upd_ext_fetch(): Assert that the externally stored column exists. row_ext_cache_fill(): Allow btr_copy_externally_stored_field_prefix() to return 0. row_sel_sec_rec_is_for_blob(): Return FALSE if the BLOB has been half-deleted. This is correct, because the clustered index record would have been deleted or purged last, after any secondary index records referring to it had been deleted. ------------------------------------------------------------------------ |
||
marko
|
16938c62c4 | branches/innodb+: struct btr_cur_struct: leaf_in_buf_pool: Correct the comment. | ||
marko
|
24f1b3a91e |
branches/innodb+: Minor cleanup.
btr0cur.c: Undo changes to white space that make the code differ from branches/zip. btr_cur_del_unmark_for_ibuf(): Remove this unused function. btr_cur_set_deleted_flag_for_ibuf(): Add missing UNIV_INTERN specifier. Correct the function comment. Call btr_rec_set_deleted_flag() instead of rec_set_deleted_flag_new(), so that delete buffering will actually work on ROW_FORMAT=REDUNDANT tables. |
||
sunny
|
d0e8003b2f |
branches/innodb+: Merge revisions 2460:2579 from branches/zip
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" |
||
inaam
|
c5dacc2914 | branches/innodb+: Merge revisions 2344:2454 from branches/zip | ||
sunny
|
fceb78e698 | branches/innodb+: Delete buffer port from branches/fts:r2283 | ||
marko
|
bddb5a0cca |
branches/zip: Add a UNIV_INTERN qualifier to every global function declaration
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. |
||
marko
|
b52a30e09d |
branches/zip: When storing a longer prefix of an externally stored column
to the undo log, also store the original length of the column, so that the changes will be correctly undone in transaction rollback or when fetching previous versions of the row. innodb-zip.test: New file, for tests of the compression. upd_field_t: Add orig_len, the original length of new_val. btr_push_update_extern_fields(): Restore the original prefix of the column. Add the parameter heap where memory will be allocated if necessary. trx_undo_rec_get_col_val(): Add the output parameter orig_len. trx_undo_page_report_modify_ext(): New function: Write an externally stored column to the undo log. This is only called from trx_undo_page_report_modify(), and this is the only caller of trx_undo_page_fetch_ext(). trx_undo_update_rec_get_update(): Read the original length of the column prefix to upd_field->orig_len. |
||
marko
|
e693d5170d |
branches/zip: Add comments about the lock and latch protection of externally
stored columns (BLOBs). btr_copy_blob_prefix(), btr_copy_zblob_prefix(), btr_copy_externally_stored_field_prefix_low(), btr_copy_externally_stored_field_prefix(), btr_copy_externally_stored_field(), btr_rec_copy_externally_stored_field(): Note that the page containing the clustered index record that points to the BLOB must be latched. btr_copy_zblob_prefix(): Note that there is no latch on the page, and thus all accesses to a given page via this function must be covered by the same set of locks or latches. btr_copy_zblob_prefix(): Note that the block acquired by buf_page_get_zip() is protected by an exclusive table lock or or by a latch on the clustered index record. |
||
marko
|
8fb8584e75 |
branches/zip: row_ext: Fetch the BLOB prefixes already at row_ext_create().
Only add indexed BLOBs to row_ext. trx_undo_rec_get_partial_row(): Move the BLOB fetching to row_ext_create(). row_build(): Pass only those BLOBs to row_ext_create() that are referenced by ordering columns of some indexes, similar to trx_undo_rec_get_partial_row(). row_ext_create(): Add the parameter "tuple". Move the implementation from row0ext.ic to row0ext.c. row_ext_lookup_ith(), row_ext_lookup(): Return a const pointer. Remove the parameters "field" and "f_len". Make the row_ext_t* parameter const. row_ext_t: Remove the field zip_size. field_ref_zero[]: Declare in btr0types.h instead of btr0cur.h. row_ext_lookup_low(): Rename to row_ext_cache_fill() and change the signature. |
||
marko
|
962ed52317 |
branches/zip: Clean up after r2129:
univ.i: Do not define UNIV_DEBUG, UNIV_ZIP_DEBUG. btr_cur_del_unmark_for_ibuf(): Use the same comment in both btr0cur.c and btr0cur.h. Wrap long lines. |
||
sunny
|
eca3cb2378 |
branches/zip: Fix a bug where the zipped page and the uncompressed page
contents end up with conflicting versions of a record's state. The zipped page record was not being marked as "(un)deleted" because we were not passing the zipped page contents to the (un)delete function, which first (un)delete marks the uncompressed version and then based on whether page_zip is NULL or not (un)delete marks the record in the compressed page. |
||
marko
|
06299dddd4 |
branches/zip: In purge, avoid dereferencing unset BLOB pointers of freshly
inserted, uncommitted clustered index records when determining if a secondary index record that contains a column prefix of an externally stored column is referencing the clustered index record. field_ref_zero[]: A BLOB pointer full of zero, for use in comparisons. btr_copy_externally_stored_field_prefix(): Assert that the BLOB pointer is set. row_ext_lookup_ith(), row_ext_lookup(), row_ext_lookup_low(): Document that field_ref_zero is returned when the BLOB cannot be fetched. row_ext_lookup_low(): Return field_ref_zero and *len = 0 when the BLOB pointer is unset. row_build_index_entry(): Return NULL when a needed BLOB pointer cannot be dereferenced (row_ext_lookup returns field_ref_zero). Check the return value for NULL in callers. row_vers_impl_x_locked_off_kernel(): Avoid comparisons when row_build_index_entry() returns NULL. row_vers_old_has_index_entry(): Ignore records for which row_build_index_entry() returns NULL. The entry should never be NULL in rollback, but it may be NULL in purge. row_merge_buf_add(): Assert that row_ext_lookup() does not return field_ref_zero. The table will be locked during index creation. |
||
marko
|
cd12974298 |
branches/zip: Minor cleanup of B-tree cursor operations.
btr_pcur_get_rel_pos(): Add a const qualifier. btr_pcur_get_btr_cur(), btr_pcur_get_page_cur(): btr_cur_get_page_cur(): Define as const-preserving macros. btr_pcur_is_on_user_rec(), btr_pcur_is_after_last_on_page(), btr_pcur_is_before_first_on_page(): Remove the unused parameter mtr. Add a const qualifier. btr_pcur_move_to_next_on_page(), btr_pcur_move_to_prev_on_page(): Remove the unused parameter mtr. page_cur_search(): Add const qualifiers. page_cur_get_page(), page_cur_is_before_first(), page_cur_is_after_last(): Add debug assertions. |
||
marko
|
e7267909d7 |
branches/zip: Initialize dfield_t::ext as soon as possible. This should
fix the bugs introduced in r1591. row_rec_to_index_entry_low(): Clear "n_ext". Do not allow it to be NULL. Add const qualifier to dict_index_t*. row_rec_to_index_entry(): Add the parameters "offsets" and "n_ext". btr_cur_optimistic_update(): Add an assertion that there are no externally stored columns. Remove the unreachable call to btr_cur_unmark_extern_fields() and the preceding unnecessary call to rec_get_offsets(). btr_push_update_extern_fields(): Remove the parameters index, offsets. Only report the additional externally stored columns of the update vector. row_build(), trx_undo_rec_get_partial_row(): Flag externally stored columns also with dfield_set_ext(). rec_copy_prefix_to_dtuple(): Assert that there are no externally stored columns in the prefix. row_build_row_ref(): Note and assert that the index is a secondary index, and assert that there are no externally stored columns. row_build_row_ref_fast(): Assert that there are no externally stored columns. rec_offs_get_n_alloc(): Expose the function. row_build_row_ref_in_tuple(): Assert that there are no externally stored columns in a record of a secondary index. row_build_row_ref_from_row(): Assert that there are no externally stored columns. row_upd_check_references_constraints(): Add the parameter offsets, to avoid a redundant call to rec_get_offsets(). row_upd_del_mark_clust_rec(): Add the parameter offsets. Remove duplicated code. row_ins_index_entry_set_vals(): Copy the external storage flag. sel_pop_prefetched_row(): Assert that there are no externally stored columns. row_scan_and_check_index(): Copy offsets to a temporary heap across the invocation of row_rec_to_index_entry(). |
||
marko
|
c6f5ea288a |
branches/zip: btr_push_update_extern_fields(): Add parameter "index"
and use it for flagging externally stored columns in the data tuple. The data tuple contains the same columns as the clustered index record, but in a different order. This error was introduced in r1591. TODO: the assertion ut_ad(!dfield_is_ext()) may fail in btr_cur_pessimistic_update(). |
||
marko
|
c09dd214be | branches/zip: Add const qualifiers to the upd_t* parameters of some functions. | ||
marko
|
632ec54002 |
branches/zip: Make merge sort handle externally stored columns.
Some things still fail in innodb-index.test, and there seems to be a race condition (data dictionary lock wait) when running with --valgrind. dfield_t: Add an "external storage" flag, dfield->ext. dfield_is_null(), dfield_is_ext(), dfield_set_ext(), dfield_set_null(): New functions. dfield_copy(), dfield_copy_data(): Add const qualifiers, fix in/out comments. data_write_sql_null(): Use memset(). big_rec_field_t: Replace byte* data with const void* data. ut_ulint_sort(): Remove. upd_field_t: Remove extern_storage. upd_node_t: Replace ext_vec, n_ext_vec with n_ext. row_merge_copy_blobs(): New function. row_ins_index_entry(): Add the parameter "ibool foreign" for suppressing foreign key checks during fast index creation or when inserting into secondary indexes. btr_page_insert_fits(): Add const qualifiers. btr_cur_add_ext(), upd_ext_vec_contains(): Remove. dfield_print_also_hex(), dfield_print(): Replace if...else if with switch. Observe dfield_is_ext(). |
||
marko
|
96f554c52a |
branches/zip: btr_rec_copy_externally_stored_field(): Add const qualifier
to rec_t*. Remove the ut_ad(rec_offs_validate()), because this function will be called from row0merge.c on a record that lacks the REC_N_NEW_EXTRA_BYTES. |
||
marko
|
7e687905be |
branches/zip: Add some const qualifiers, mainly to upd_t*.
upd_get_n_fields(), upd_get_nth_field(): Add const qualifiers. |
||
marko
|
efb7461351 |
branches/zip: btr_cur_optimistic_insert(): Set the insert buffer free bits
exactly. Rename the local variable "ulint level" to "ibool leaf". Document that if the function returns DB_SUCCESS on a compressed page that is covered by the insert buffer, the mini-transaction must be committed before latching any further pages. Verify that this is the case on all execution paths. |
||
marko
|
382cb9fdf1 |
branches/zip: Document and obey the rules for modifying the free bits in
the insert buffer bitmap. ibuf_set_free_bits_func(): Never disable redo logging. ibuf_update_free_bits_zip(): Remove. btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert buffer bitmap. Instead, document that callers will have to take care of it, and adapt the callers. btr_compress(): On error, reset the insert buffer free bits. btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap. btr_compress(), btr_cur_optimistic_insert(): On compressed pages, reset the insert buffer bitmap. Document why. btr_cur_update_alloc_zip(): Document why it is necessary and sufficient to reset the insert buffer free bits. btr_cur_update_in_place(), btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Update the free bits in the same mini-transaction. Document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths. row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(), row_undo_mod_clust_low(): Because these functions call btr_cur_update_in_place(), btr_cur_optimistic_update(), or btr_cur_pessimistic_update(), document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths. |
||
marko
|
a369b00981 |
branches/zip: btr_cur_pessimistic_update(): Add parameter heap.
Previously, when big_rec was returned, the fields would point to freed memory. The memory heap was allocated locally, and the data tuple was allocated from the heap, and the big_rec would point to some fields in the data tuple. row_ins_clust_index_entry_by_modify(): Add parameter heap, for the same reason. |
||
marko
|
0d6c2414a7 |
branches/zip: Remove a few buf_block_align() calls from debug builds.
btr_check_node_ptr(): Replace page_t* parameter with buf_block_t*. btr_free_externally_stored_field(): Add const qualifier to rec. Remove an explicit buf_block_align() call, but replace an mtr_memo_contains() with mtr_memo_contains_page(). row_upd_rec_sys_fields(): Reorder an assertion containing buf_block_align() so that the costly call can be avoided in some cases. |
||
marko
|
c1ffbbd90f |
branches/zip: Remove all references to buf_block_align() except those
from the adaptive hash index [btr_search_guess_on_hash() and btr_search_validate()]. Some references to buf_block_align() remain in debug builds. btr_store_big_rec_extern_fields(): Add the parameter rec_block. page_rec_get_next_low(): Do not assume that the page has been allocated from the buffer pool when printing the diagnostic information. page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip with the parameter buf_block_t* block. |
||
marko
|
b6e26f24d7 |
branches/zip: Remove some more buf_block_align() calls.
btr_cur_t: Move page_block to page_cur_t::block. page_cur_get_block(), page_cur_get_page_zip(): New functions. page_cur_position(): Add parameter block. Remove many page_zip parameters, now that there is page_cur_get_page_zip(). Replace some page, page_zip parameters with block. Add some const qualifiers to function parameters and remove casts. PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW: New constants. Replace some cursor code in low-level diagnostic functions with direct management of rec, because buf_block_t::buf_fix_count may be 0 when the functions are called, and debug assertions would fail. |
||
marko
|
d6c684798e | branches/zip: Add const qualifiers to function parameters, mostly dtuple_t. | ||
marko
|
120e544dc1 |
branches/zip: btr_cur_t: replace left_page with left_block, to avoid
calling buf_block_align() in btr_pcur_move_backward_from_page(). Also, enclose some assertions about page_is_comp() in #ifdef UNIV_BTR_DEBUG. |
||
marko
|
d583b1803c |
branches/zip: Eliminate many buf_block_align() calls.
Replace page_t* or page_zip_des_t* parameters in some functions with buf_block_t*. buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG. btr_cur_t: Add buf_block_t* page_block. btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip(): New functions. btr_cur_position(): Add the parameter block. |
||
marko
|
174bd7b7ca |
branches/zip: dtuple_convert_big_rec(): Do not store anything locally
of externally stored columns, and fix bugs introduced in r873. (Bug #22496) btr_page_get_sure_split_rec(), btr_page_insert_fits(), rec_get_converted_size(), rec_convert_dtuple_to_rec(), rec_convert_dtuple_to_rec_old(), rec_convert_dtuple_to_rec_new(): Add parameters ext and n_ext. Flag external fields during the conversion. rec_set_field_extern_bits(), rec_set_field_extern_bits_new(), rec_offs_set_nth_extern(), rec_set_nth_field_extern_bit_old(): Remove. The bits are set by rec_convert_dtuple_to_rec(). page_cur_insert_rec_low(): Remove the parameters ext and n_ext. btr_cur_add_ext(): New utility function for updating and sorting ext[]. Low-level functions now expect the array to be in ascending order for performance reasons. Used in btr_cur_optimistic_insert(), btr_cur_pessimistic_insert(), and btr_cur_pessimistic_update(). btr_cur_optimistic_insert(): Remove some defensive code, because we cannot compute the added parameters of rec_get_converted_size(). btr_push_update_extern_fields(): Sort the array. Require the array to be twice the maximum usage, so that ut_ulint_sort() can be used. dtuple_convert_big_rec(): Allocate new space for the BLOB pointer, to avoid overwriting prefix indexes to the same column. Adapt dtuple_convert_back_big_rec(). row_build_index_entry(): Fetch the columns also for prefix indexes of the clustered index. page_zip_apply_log(), page_zip_decompress_clust(): Allow externally stored fields to lack a locally stored part. |
||
marko
|
c66a0754b9 |
branches/zip: Implement the ability to fetch a prefix of an externally
stored column. This is the first part of fixing Bug #22496. btr_copy_externally_stored_field_prefix(): New function. btr_copy_externally_stored_field(): Split to btr_copy_externally_stored_field_prefix_low(). row_sel_sec_rec_is_for_blob(): New function, used by row_sel_sec_rec_is_for_clust_rec() in selects via a secondary index. |
||
marko
|
68a65c142c | branches/zip: Merge revisions 804:838 from trunk. | ||
marko
|
38e09b2fea |
branches/zip: Merge revisions 720:765 from trunk and reindent the code
as per revisions r763:765. |
||
marko
|
011035566a |
branches/zip: Fix a bug in consistent reads of rows containing BLOB data.
btr_rec_copy_externally_stored_field(): Add parameter zip_size. Do not call buf_block_align(rec), because rec can also be in dynamically allocated memory. buf_block_align() can only be invoked on addresses inside the buffer pool. page_zip_clear_rec(): Improve formatting. |
||
marko
|
0c4dfda3be | branches/zip: Merge revisions 265:459 from trunk. | ||
marko
|
747c8fad44 | branches/zip: Merge revisions 200:236 from trunk. | ||
marko
|
9d4fa728f4 |
branches/zip:
Fix the way how btr_free_externally_stored_field() is called in purge. btr_free_externally_stored_field(): Add parameter field_ref that points directly to the BLOB reference. Use rec, offsets, page_zip, and i only for the page_zip_write_blob_ptr() call. row_purge_upd_exist_or_extern(): Do not assume that the undo log contains the entire record. Only pass the BLOB reference to btr_free_externally_stored_field(). |
||
marko
|
1b7710af93 |
branches/zip: Implement the compression of BLOB columns.
This has not been extensively tested yet, because some other part of the code breaks in "ibtestblob". btr_free_page_low(): Add parameters "space" and "page_no", because they are omitted from compressed BLOB pages. btr0cur.c: Implement the compression and decompression of BLOB columns, enabled at compile-time (#define ZIP_BLOB TRUE) for now. btr_rec_free_externally_stored_fields(), btr_copy_externally_stored_field(): Made static mlog_log_string(): New function, split from mlog_write_string(), allows to avoid a dummy memcpy() of compressed BLOB pages. |
||
marko
|
4b3be43c2a |
branches/zip: Remove in-place updates of the "external storage"
flag of records. The flags may only be updated in heap-allocated copies of records. btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_cur_insert_if_possible(), btr_cur_optimistic_insert(), btr_cur_pessimistic_insert(), page_cur_tuple_insert(), page_cur_insert_rec_low(): Add parameters "ext" and "n_ext". dtuple_convert_big_rec(): Make parameter "ext" const. |
||
marko
|
12050c5c1c |
branches/zip: Prepare for in-place updates of B-tree node pointers,
BLOB pointers, trx_id, and roll_ptr. btr_empty(), btr_create(), page_create(): Add parameter "index", as some index information will be encoded on the compressed page. Define REC_NODE_PTR_SIZE as 4. Allow btr_page_reorganize() and btr_page_reorganize_low() to fail. Define the error code DB_ZIP_OVERFLOW. Make row_ins_index_entry_low() static. page0zip: Encode the index, log reorganized records, and store uncompressed fields separately from the compressed data stream. |
||
marko
|
10fffd0dc5 |
branches/zip: Remember to update page_zip when updating "extern" flags.
Add function parameters and TODO comments regarding that. |