Commit graph

243 commits

Author SHA1 Message Date
marko
1ed1ede9ea Merge changes from MySQL AB:
innodb_mysql.test, innodb_mysql.result:
  Bug #16798: Uninitialized row buffer reads in ref-or-null optimizer
  Bug #12882: min/max inconsistent on empty table
  Test of behaviour with CREATE ... SELECT
 Moved from group_min_max.test:
  Bug #12672: primary key implicitly included in every innodb index
  Bug #6142: a problem with empty innodb table 
  Bug #9798: group by with rollup

ChangeSet@2006/06/01 21:47:15+03:00 bell@sanja.is.com.ua 
#   interface for transaction log management added to handlerton
#   iterators creation interface added to handlerton
ha_innodb.cc: Add get_log_status = create_iterator = NULL

ChangeSet@2006/06/04 18:52:22+03:00 monty@mysql.com 
#   This changeset is largely a handler cleanup changeset (WL#3281),
#   but includes fixes and cleanups that was found necessary while
#   testing the handler changes
# sql/ha_innodb.h
#   2006/06/04 18:52:09+03:00 monty@mysql.com +6 -13
#   Update to 'newer' table handler interface
#   - table_flags are now ulonglong
#   - Added reset() method
#   - Removed not needed ha_retrieve_all_cols() and ha_retrieve_all_pk()
#     columns.
#   - Made build_template() a class function to be able to easier access
#     class variables
# sql/ha_innodb.cc
#   2006/06/04 18:52:09+03:00 monty@mysql.com +37 -44
#   Update to 'newer' table handler interface
#   - Update innobase_create_handler() to new interface
#   - Removed HA_NOT_EXACT_COUNT (not needed)
#   - Renamed HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
#     to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
#   - Prefixed base status variables with 'stats'
#   - Use table column bitmaps instead of ha_get_bit_in_read_set()
#   - Added ::reset(), with code from ::extra(HA_EXTRA_RESET)
#   - Removed HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIEVE_PRIMARY_KEY as
#     the table->read_set and table->write_set bitmaps now are accurate

ChangeSet@2006/06/02 22:21:32+02:00 guilhem@mysql.com 
#   First push for WL#3146 "less locking in auto_increment". It is a
#   0-real-change patch.
#   New prototype for get_auto_increment() (but new arguments not yet used),
#   to be able to reserve a finite interval of auto_increment values from
#   cooperating engines.
#   A hint on how many values to reserve is found in
#   handler::estimation_rows_to_insert,
#   filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
#   NOTE: this patch changes nothing, for all engines.
#   But it makes the API ready for those
#   engines which will want to do reservation.
#   More csets will come to complete WL#3146.
ha_innodb.h, ha_innodb.cc: update to new prototype of get_auto_increment

ChangeSet@2006/05/28 14:51:01+02:00 serg@sergbook.mysql.com 
#   handlerton cleanup:
#   duplicate fields removed, st_mysql_storage_engine added to support
#   run-time handlerton initialization (no compiler warnings), handler API
#   is now tied to MySQL version, handlerton->plugin mapping added
#   (slot-based), dummy default_hton removed, plugin-type-specific
#   initialization generalized, built-in plugins are now initialized too,
#   --default-storage-engine no longer needs a list of storage engines
#   in handle_options().
#   
# sql/ha_innodb.h
#   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +1 -1
#   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
#   initialize handlerton run-time to avoid compiler warnings
# 
# sql/ha_innodb.cc
#   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +37 -52
#   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
#   initialize handlerton run-time to avoid compiler warnings

ChangeSet@2006/06/01 23:59:34+02:00 serg@serg.mylan 
#   second patch for make distcheck
ha_innodb.cc: enclose in #ifdef WITH_INNOBASE_STORAGE_ENGINE / #endif
2006-06-13 12:50:11 +00:00
marko
cb47e450b2 dtype_get_max_size(): Remove UNIV_INLINE qualifier, as the function is
defined inside a .c file rather than an .ic file.
2006-06-09 19:57:03 +00:00
marko
9e616704cc btr_cur_search_to_nth_level(): Reacquire btr_search_latch after inserting
to the insert buffer.  This was noticed while analyzing Bug #19081, but
this should not fix Bug #19081, since according to Heikki, btr_search_latch
is not reserved during an insert.
2006-06-09 19:54:58 +00:00
marko
4858e1615e rw_lock_s_unlock_func(): Change a debug assertion to a production assertion
in order to track down Bug #19081.
2006-06-09 10:14:20 +00:00
osku
685dd69089 Revert r622 (innodb_sql table) as it was decided it's not appropriate for
the GPL InnoDB version.
2006-06-09 06:37:41 +00:00
osku
85cd21bf65 Don't take unnecessary locks on supremum records when the
srv_locks_unsafe_for_binlog option is enabled. Fixes an assertion failure in
the innodb_unsafe_binlog testcase when compiled with UNIV_DEBUG.
2006-06-08 06:14:09 +00:00
osku
870edae7e4 Add special 'innodb_sql' table that can be used to pass SQL commands to
InnoDB through MySQL.
2006-06-08 06:12:29 +00:00
osku
0bd58bb3d9 Add support for lock waits in the SQL parser. 2006-06-08 06:08:23 +00:00
marko
b47a268f2d Merge r614 from branches/5.0: Merge r32 from innodb-4.1:
ibuf_fixed_addr_page(): Add parameter space.  As the insert buffer B-tree
is only located in the system tablespace (space 0), IBUF_TREE_ROOT_PAGE_NO
is only special in space 0.
2006-06-05 11:38:05 +00:00
osku
bb83ec4fb2 From MySQL:
Rename cmakelists.txt to CMakeLists.txt.
2006-06-02 07:22:40 +00:00
osku
23f6d69488 From MySQL:
Fix bug #17264. For alter table on win32 for succesful operation completion
it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however in
InnoDB handler TL_WRITE is lifted to TL_WRITE_ALLOW_WRITE, which causes race
condition when several clients do alter table simultaneously.
2006-06-02 07:10:14 +00:00
osku
0be459fdb0 Make dict_remove_db_name non-static. 2006-06-01 09:25:31 +00:00
osku
09265e8c7e SQL parser: Modify syntax so that the only valid top-level statement is a
procedure definition, since it's the only the one that actually works.
2006-06-01 07:19:16 +00:00
osku
8c9f734413 pars_sql(): Remove redundant call to strlen. 2006-05-31 10:20:38 +00:00
marko
8481036b66 Document better the "bool table_id" flags introduced in r590. 2006-05-31 07:35:02 +00:00
osku
56f50a6520 trx_sig_send() always succeeds or asserts, so remove return value and adjust
callers.
2006-05-31 06:00:56 +00:00
osku
c0abd9e432 Revert r598, it is incompatible with the upcoming support for lock waits in
InnoDB's SQL parser.
2006-05-31 05:35:50 +00:00
osku
f752e64db7 Changes to InnoDB's SQL parser:
-Change default mode of SELECT from "lock in share mode" to "consistent
 read".

 -Remove support from SELECT for specifying "consistent read".

 -Add support in SELECT for specifying "lock in share mode".

 -Change all uses of SQL parser to specify "lock in share mode".
2006-05-31 05:34:18 +00:00
osku
651c12c615 que_run_threads(): Check we haven't accidentally left an active transaction
in e.g. TRX_LOCK_WAIT state.
2006-05-30 06:16:32 +00:00
marko
c0dce89796 Merge r596 from branches/5.0: row_sel_try_search_shortcut(): Do not return
SEL_FOUND when the record was not found.  This bug was introduced in
MySQL/InnoDB 5.0.3, but luckily it should never manifest itself, given
that existing InnoDB SQL code never makes use of consistent reads.
2006-05-29 12:02:24 +00:00
osku
7f51be5c0f Disable prefetch and adaptive hash index for tables with rows over 1024
bytes in InnoDB's SQL parser.
2006-05-26 11:01:39 +00:00
marko
08209c5d30 Clean up r590:
dict_scan_table_name(): Remove fallback to differently encoded name when
the table is not found.  The encoding is handled at a higher level.

innodb.result: Adjust the results for changes in the foreign key error
messages.
2006-05-26 09:14:54 +00:00
osku
f41cfe9945 Add max_row_size to dict_table_t. 2006-05-26 05:52:59 +00:00
marko
b4cf335cf5 innobase_print_identifier(): Remove TODO comment before calling
get_quote_char_for_identifier().  That function apparently assumes the
identifier to be encoded in UTF-8.
2006-05-24 10:58:43 +00:00
marko
83edf1fce1 Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1.
ut_print_name(), ut_print_namel(): Add parameter table_id for distinguishing
names of tables from other identifiers (names of indexes, columns and
constraints).

innobase_convert_from_table_id(), innobase_convert_from_id(),
innobase_convert_from_filename(), innobase_get_charset(): New functions.

dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(),
dict_skip_word(), dict_create_foreign_constraints_low():
Add parameter "cs", so that isspace() can be replaced with my_isspace(),
whose operation depends on the connection character set.

dict_scan_id(): Convert the identifier to UTF-8.

dict_str_starts_with_keyword(): New extern function, to replace dict_accept()
in row_search_for_mysql().

mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier().

ha_innobase::create(): Remove the thd->convert_string() call.
Pass the statement to InnoDB in the connection character set
and let InnoDB convert the identifiers to UTF-8.
2006-05-24 10:27:17 +00:00
osku
d05cf4df80 Optimize BLOB selects by using prebuilt->blob_heap directly instead of first
reading BLOB data to a temporary heap and then copying it to
prebuilt->blob_heap.
2006-05-23 11:35:58 +00:00
osku
c755d06637 Fetch externally stored fields when using InnoDB's internal SQL parser. 2006-05-23 05:49:17 +00:00
marko
06f7b09f89 Implement InnoDB assertions (ut_a and ut_error) with abort() when
the code is compiled with GCC 3 or later on other platforms than
Windows or Netware.  Also disable the variable ut_dbg_stop_threads
and the function ut_dbg_stop_thread() in this case, unless
UNIV_SYNC_DEBUG is defined.  This should allow the compiler to
generate more compact code for assertions.
2006-05-22 08:11:38 +00:00
osku
d575c51343 btr_copy_externally_stored_field(): Only set the 'offset' variable when
needed.
2006-05-22 07:50:05 +00:00
osku
ef6413ce9d row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field
when handling an externally stored column.
2006-05-22 07:29:00 +00:00
osku
18131c474d Add ib_list_create_heap(). 2006-05-18 10:02:01 +00:00
marko
2d17e9037e recv_parse_or_apply_log_rec_body(): Remove bogus debug assertion. 2006-05-16 06:47:06 +00:00
marko
36667b2c15 srv_parse_data_file_paths_and_sizes(): Accept lower-case 'm' and 'g'
as abbreviations of megabyte and gigabyte.  (Bug #19609)

srv_parse_megabytes(): New function.
2006-05-12 19:25:18 +00:00
osku
30632c4483 Move trx_commit_for_mysql(trx) calls in row0mysql.c before calls to
row_mysql_unlock_data_dictionary(trx), fixing bug #19727.
2006-05-12 11:13:18 +00:00
marko
2d04dfb153 Define UNIV_BTR_DEBUG for enabling consistency checks of
FIL_PAGE_NEXT and FIL_PAGE_PREV when accessing sibling pages
of B-tree indexes.

btr_validate_level(): Check the validity of the doubly linked list
formed by FIL_PAGE_NEXT and FIL_PAGE_PREV.
2006-05-11 16:59:18 +00:00
marko
30ae8a2e96 Improve the documentation of FIL_PAGE_PREV, FIL_PAGE_NEXT,
and REC_INFO_MIN_REC_FLAG.
2006-05-11 12:44:01 +00:00
osku
7a39d1d6e4 Add mem_heap_printf() and mem_heap_cat(). 2006-05-11 04:55:18 +00:00
osku
879aa87a32 Add innobase_convert_string wrapper function to ha_innodb.cc, and a new file
ha_prototypes.h.
2006-05-11 04:51:52 +00:00
osku
300ad47fbe Add support for DATA_CHAR type in bound literals in the SQL parser. 2006-05-10 06:37:13 +00:00
marko
847adf32cf Port r543 from innodb/branches/5.0: Port r29 from innodb-4.1/trunk:
export.sh: Generate the files to-mysql/patches/r$REV.patch
containing the output of "svn log" and "svn diff" for each change.
2006-05-09 08:37:14 +00:00
osku
3801001142 Increment statistic counter in ha_innobase::index_prev(). Fixes bug #19542. 2006-05-09 06:37:11 +00:00
marko
b17f2879fe Merge a change from MySQL AB to Makefile.am:
ChangeSet@2006/04/29 09:33:34-07:00 serg@sergbook.mysql.com
make distcheck and cosmetic fixes
2006-05-08 09:33:28 +00:00
marko
29221474d6 Merge changes by MySQL AB to ha_innodb.cc:
WL#2257 REFERENTIAL_CONSTRAINTS view
WL#3201 pluggable storage engines
2006-05-08 08:08:27 +00:00
osku
4690f2fc6f Add support for bound ids in InnoDB's SQL parser. 2006-05-08 05:13:09 +00:00
marko
73330226ed buf_page_io_complete(): Write to the error log if the page number or the
space id on the disk do not match those in the memory.  Also write to
the error log if a page was read from the doublewrite buffer.  The
doublewrite buffer should be only read by the lower-level function fil_io()
at database startup.
2006-05-05 15:19:32 +00:00
marko
406c6036de Port r529 of branches/5.0: Port r27 of innodb-4.1/trunk: Check the page
trailers also after writing to disk.
This improves the chances of diagnosing Bug #18886.

os_file_check_page_trailers(): New function for checking that the two
copies of the LSN stamped on the pages match.

os_aio_simulated_handle(): Call os_file_check_page_trailers() before
and after os_file_write().
2006-05-05 12:52:08 +00:00
marko
1fd289fd6d ibuf_count_get(), ibuf_counts[], ibuf_counts_inited: Define these only
#ifdef UNIV_IBUF_DEBUG.  Previously, when compiled without UNIV_IBUF_DEBUG,
invoking ibuf_count_get() would crash InnoDB.  The function is only being
called #ifdef UNIV_IBUF_DEBUG.
2006-05-05 11:39:44 +00:00
marko
090c3fac71 Improve the comments of the space low address map. 2006-05-05 11:28:25 +00:00
osku
4547823a17 row_fetch_print: Handle SQL NULL values without crashing. 2006-05-05 07:24:03 +00:00
marko
411b6ed004 Fix a typo in a comment. 2006-05-04 11:25:58 +00:00