- 12 May, 2012 1 commit
-
-
Sergey Petrunya authored
in greedy_search with LEFT JOINs and unique keys - Backport the fix for BUG#806524 from MariaDB 5.3
-
- 24 Apr, 2012 1 commit
-
-
Sergei Golubchik authored
remove a redundant line in Makefile.am
-
- 06 Apr, 2012 1 commit
-
-
Alexey Botchkov authored
RB-tree index in the MEMORY table fails if it grews over 4G. That happened because the old_allocated variable in hp_rb_write_key() had the uint type. Changed with the 'size_t' type to be same as the 'rb_tree.allocated'. per-file comments: storage/heap/hp_write.c MDEV-80 Memory engine table full at much less than max_heap_table_size with btree index. uint->size_t for the 'old_allocated'.
-
- 05 Apr, 2012 1 commit
-
-
Sergei Golubchik authored
-
- 04 Apr, 2012 3 commits
-
-
Sergei Golubchik authored
don't cast implicitly an int to a char, when a boolean value is desired.
-
Michael Widenius authored
-
Michael Widenius authored
-
- 03 Apr, 2012 1 commit
-
-
Michael Widenius authored
The main problem was a bug in CSV where it provided wrong statistics (it claimed the table was empty when it wasn't) I also fixed wrong freeing of blob's in the CSV handler. (Any call to handler::read_first_row() on a CSV table with blobs would fail) mysql-test/r/csv.result: Added new test case mysql-test/r/partition_innodb.result: Updated test results after fixing bug with impossible partitions and const tables mysql-test/t/csv.test: Added new test case sql/sql_select.cc: Cleaned up code for handling of partitions. Fixed also a bug where we didn't threat a table with impossible partitions as a const table. storage/csv/ha_tina.cc: Allocate blobroot onces.
-
- 30 Mar, 2012 1 commit
-
-
Michael Widenius authored
Fixed that repair removes the 'table is moved' mark. mysql-test/suite/maria/r/maria-autozerofill.result: Test case for lp:967914 mysql-test/suite/maria/t/maria-autozerofill.test: Test case for lp:967914 storage/maria/ha_maria.cc: Fixed that repair removes the 'table is moved' mark.
-
- 29 Mar, 2012 2 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
- 28 Mar, 2012 1 commit
-
-
Michael Widenius authored
The issue was that check/optimize/anaylze did not zerofill the table before they started to work on it. Added one more element to not often used function handler::auto_repair() to allow handler to decide when to auto repair. mysql-test/suite/maria/r/maria-autozerofill.result: Test case for lp:944422 mysql-test/suite/maria/t/maria-autozerofill.test: Test case for lp:944422 sql/ha_partition.cc: Added argument to auto_repair() sql/ha_partition.h: Added argument to auto_repair() sql/handler.h: Added argument to auto_repair() sql/table.cc: Let auto_repair() decide which errors to trigger auto-repair storage/archive/ha_archive.h: Added argument to auto_repair() storage/csv/ha_tina.h: Added argument to auto_repair() storage/maria/ha_maria.cc: Give better error & warning messages for auto-repaired tables. storage/maria/ha_maria.h: Added argument to auto_repair() Always auto-repair in case of moved table. storage/maria/ma_open.c: Remove special handling of HA_ERR_OLD_FILE (this is now handled in auto_repair()) storage/myisam/ha_myisam.h: Added argument to auto_repair()
-
- 21 Mar, 2012 1 commit
-
-
Sergei Golubchik authored
lp:933959 Assertion `0' failed in net_end_statement(THD*) on concurrent SELECT FROM I_S.INNODB_SYS_INDEXES and ALTER TABLE Workaround: report a generic error if an I_S plugin failed silently.
-
- 15 Mar, 2012 1 commit
-
-
Vladislav Vaintroub authored
-
- 14 Mar, 2012 1 commit
-
-
Sergei Golubchik authored
use vsnprintf() use write() on windows, not WriteFile or fwrite() localtime_r is still a problem
-
- 12 Mar, 2012 1 commit
-
-
Vladislav Vaintroub authored
-
- 02 Mar, 2012 2 commits
-
-
Joerg Bruehe authored
-
Joerg Bruehe authored
to pick up some new security fixes that are in it. Patch provided by Georgi Kodinov.
-
- 28 Feb, 2012 3 commits
-
-
Karen Langford authored
-
Joerg Bruehe authored
-
Joerg Bruehe authored
Update the year in the copyright notice, file "README".
-
- 24 Feb, 2012 1 commit
-
-
Michael Widenius authored
Problem was a crash in internal temporary (Maria) files when row length exceeded 65535 mysql-test/suite/maria/r/maria3.result: Added test case mysql-test/suite/maria/t/maria3.test: Added test case storage/maria/ma_open.c: Added support for row length > 65535. This fixes crash when using tables with longer row lengths.
-
- 21 Feb, 2012 1 commit
-
-
Michael Widenius authored
-
- 20 Feb, 2012 5 commits
-
-
Michael Widenius authored
-
Michael Widenius authored
Fixed supression in mysql-test-run so it also works on windows. mysql-test/mysql-test-run.pl: Fixed supression so it also works on windows. mysql-test/valgrind.supp: More general handling of memory loss in dlclose (backported from 5.2) sql/signal_handler.cc: Added newlines around link to how to do bug reports
-
Vladislav Vaintroub authored
"safe exception patch". Remove misleading comments suggesting about signal() Windows, the routine here is part of a exception handler, and sig parameter is an exception code.
-
Michael Widenius authored
-
Michael Widenius authored
Fixed README with link to source Merged InnoDB change to XtraDB README: Added information of where to find MariaDB code storage/archive/ha_archive.cc: Removed memset() of rows, a MariaDB checksum's doesn't touch not used data.
-
- 18 Feb, 2012 1 commit
-
-
Georgi Kodinov authored
-
- 17 Feb, 2012 4 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Marko Mäkelä authored
This bug was originally filed and fixed as Bug#12612184. The original fix was buggy, and it was patched by Bug#12704861. Also that patch was buggy (potentially breaking crash recovery), and both fixes were reverted. This fix was not ported to the built-in InnoDB of MySQL 5.1, because the function signatures of many core functions are different from InnoDB Plugin and later versions. The block allocation routines and their callers would have to changed so that they handle block descriptors instead of page frames. When a record is updated so that its size grows, non-updated columns can be selected for external (off-page) storage. The bug is that the initially inserted updated record contains an all-zero BLOB pointer to the field that was not updated. Only after the BLOB pages have been allocated and written, the valid pointer can be written to the record. Between the release of the page latch in mtr_commit(mtr) after btr_cur_pessimistic_update() and the re-latching of the page in btr_pcur_restore_position(), other threads can see the invalid BLOB pointer consisting of 20 zero bytes. Moreover, if the system crashes at this point, the situation could persist after crash recovery, and the contents of the non-updated column would be permanently lost. The problem is amplified by the ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED that were introduced in innodb_file_format=barracuda in InnoDB Plugin, but the bug does exist in all InnoDB versions. The fix is as follows. After a pessimistic B-tree operation that needs to write out off-page columns, allocate the pages for these columns in the mini-transaction that performed the B-tree operation (btr_mtr), but write the pages in a separate mini-transaction (blob_mtr). Do mtr_commit(blob_mtr) before mtr_commit(btr_mtr). A quirk: Do not reuse pages that were previously freed in btr_mtr. Only write the off-page columns to 'fresh' pages. In this way, crash recovery will see redo log entries for blob_mtr before any redo log entry for btr_mtr. It will apply the BLOB page writes to pages that were marked free at that point. If crash recovery fails to see all of the btr_mtr redo log, there will be some unreachable BLOB data in free pages, but the B-tree will be in a consistent state. btr_page_alloc_low(): Renamed from btr_page_alloc(). Add the parameter init_mtr. Return an allocated block, or NULL. If init_mtr!=mtr but the page was already X-latched in mtr, do not initialize the page. btr_page_alloc(): Wrapper for btr_page_alloc_for_ibuf() and btr_page_alloc_low(). btr_page_free(): Add a debug assertion that the page was a B-tree page. btr_lift_page_up(): Return the father block. btr_compress(), btr_cur_compress_if_useful(): Add the parameter ibool adjust, for adjusting the cursor position. btr_cur_pessimistic_update(): Preserve the cursor position when big_rec will be written and the new flag BTR_KEEP_POS_FLAG is defined. Remove a duplicate rec_get_offsets() call. Keep the X-latch on index->lock when big_rec is needed. btr_store_big_rec_extern_fields(): Replace update_inplace with an operation code, and local_mtr with btr_mtr. When not doing a fresh insert and btr_mtr has freed pages, put aside any pages that were previously X-latched in btr_mtr, and free the pages after writing out all data. The data must be written to 'fresh' pages, because btr_mtr will be committed and written to the redo log after the BLOB writes have been written to the redo log. btr_blob_op_is_update(): Check if an operation passed to btr_store_big_rec_extern_fields() is an update or insert-by-update. fseg_alloc_free_page_low(), fsp_alloc_free_page(), fseg_alloc_free_extent(), fseg_alloc_free_page_general(): Add the parameter init_mtr. Return an allocated block, or NULL. If init_mtr!=mtr but the page was already X-latched in mtr, do not initialize the page. xdes_get_descriptor_with_space_hdr(): Assert that the file space header is being X-latched. fsp_alloc_from_free_frag(): Refactored from fsp_alloc_free_page(). fsp_page_create(): New function, for allocating, X-latching and potentially initializing a page. If init_mtr!=mtr but the page was already X-latched in mtr, do not initialize the page. fsp_free_page(): Add ut_ad(0) to the error outcomes. fsp_free_page(), fseg_free_page_low(): Increment mtr->n_freed_pages. fsp_alloc_seg_inode_page(), fseg_create_general(): Assert that the page was not previously X-latched in the mini-transaction. A file segment or inode page should never be allocated in the middle of an mini-transaction that frees pages, such as btr_cur_pessimistic_delete(). fseg_alloc_free_page_low(): If the hinted page was allocated, skip the check if the tablespace should be extended. Return NULL instead of FIL_NULL on failure. Remove the flag frag_page_allocated. Instead, return directly, because the page would already have been initialized. fseg_find_free_frag_page_slot() would return ULINT_UNDEFINED on error, not FIL_NULL. Correct a bogus assertion. fseg_alloc_free_page(): Redefine as a wrapper macro around fseg_alloc_free_page_general(). buf_block_buf_fix_inc(): Move the definition from the buf0buf.ic to buf0buf.h, so that it can be called from other modules. mtr_t: Add n_freed_pages (number of pages that have been freed). page_rec_get_nth_const(), page_rec_get_nth(): The inverse function of page_rec_get_n_recs_before(), get the nth record of the record list. This is faster than iterating the linked list. Refactored from page_get_middle_rec(). trx_undo_rec_copy(): Add a debug assertion for the length. trx_undo_add_page(): Return a block descriptor or NULL instead of a page number or FIL_NULL. trx_undo_report_row_operation(): Add debug assertions. trx_sys_create_doublewrite_buf(): Assert that each page was not previously X-latched. page_cur_insert_rec_zip_reorg(): Make use of page_rec_get_nth(). row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG, so that the repositioning of the cursor can be avoided. row_ins_index_entry_low(): Add DEBUG_SYNC points before and after writing off-page columns. If inserting by updating a delete-marked record, do not reposition the cursor or commit the mini-transaction before writing the off-page columns. row_build(): Tighten a debug assertion about null BLOB pointers. row_upd_clust_rec(): Add DEBUG_SYNC points before and after writing off-page columns. Do not reposition the cursor or commit the mini-transaction before writing the off-page columns. rb:939 approved by Jimmy Yang
-
- 16 Feb, 2012 7 commits
-
-
Joerg Bruehe authored
-
Marko Mäkelä authored
error LNK2001: unresolved external symbol _debug_sync_C_callback_ptr
-
Kent Boortz authored
-
MySQL Build Team authored
-
Marko Mäkelä authored
OF WIDE RECORDS row_ins_index_entry_low(), row_upd_clust_rec(): Make a redo log checkpoint if a DEBUG flag is set. Add DEBUG_SYNC around btr_store_big_rec_extern_fields(). rb:946 approved by Jimmy Yang
-
Marko Mäkelä authored
-
Kent Boortz authored
-