Commit graph

1513 commits

Author SHA1 Message Date
marko
7c16a58d4b branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Do not
complain if the record is not found.  Explain that this is possible
when a deadlock occurs during an update.  Heikki investigated this
in Issue #134.
2008-12-05 08:02:54 +00:00
vasil
23a752360e branches/zip:
Revert our temporary fix for Bug#40360 Binlog related errors with binlog off

This bug was fixed in MySQL code.

Our fix went into r2944 and r2947, but this patch does not entirely revert
those revisions because we want to leave the test case that was introduced
and also r2944 itself reverted r2935 and r2936. So if we completely revert
r2944 and r2947 then we would loose the test and will restore r2935 and
r2936.

This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql
add an equivallent, see Bug#40360
2008-12-04 16:49:24 +00:00
vasil
13c01e48fd branches/zip:
Fix Mantis issue#103 mysql_addons.c depends on THD internals - please remove it

Use MySQL's thd_get_thread_id() instead of our own ib_thd_get_thread_id()
since MySQL implemented the former, see http://bugs.mysql.com/30930.

Approved by:	Marko (https://svn.innodb.com/rb/r/40, rb://40)
2008-12-04 16:10:08 +00:00
vasil
0e645ded93 branches/zip:
Resurrect a ChangeLog entry that I removed in c3331 with a fake date
so it does not appear that it has been included in 1.0.2.
2008-12-02 11:34:36 +00:00
vasil
931fc75cb0 branches/zip:
Now that 1.0.2 is out, the current tree is version 1.0.3.
2008-12-02 10:11:54 +00:00
vasil
565c0fe095 branches/zip:
Remove an entry from the ChnageLog for a change that was made before
the release of 1.0.2 but was not included in that release.
2008-12-02 10:09:20 +00:00
vasil
b35f664531 branches/zip:
Add entry in the ChangeLog for the release of 1.0.2.
2008-12-02 10:03:17 +00:00
marko
de011c2198 branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf
from the free list, zero out the DB_TRX_ID and DB_ROLL_PTR of the
deleted record if the new record would not overwrite these
fields. This fixes a harmless content mismatch reported by
page_zip_validate() that was reported as Issue #111.
rb://55 approved by Sunny Bains.
2008-12-02 08:16:05 +00:00
marko
e6acdb3c82 branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Complain if
the secondary index entry cannot be found, and this is not an incomplete
transaction that is being rolled back in crash recovery.  The source code
comments were suggested by Heikki.
2008-11-28 14:18:43 +00:00
vasil
f5abca1618 branches/zip:
Non-functional change in win-plugin/win-plugin.diff: fix the file name
before the diff, this is irrelevant but it is nice to be the same as
the file name on the following line.
2008-11-27 21:33:48 +00:00
vasil
2a028069ea branches/zip:
* Remove a change from win-plugin/win-plugin.diff about time_t because
  MySQL has used VS2005 for building 5.1.30.

* Adjust the line numbers so the patch applies cleanly without fuzz and
  offset messages.

Submitted by:	Calvin
2008-11-27 21:31:18 +00:00
vasil
5bd71ba18b branches/zip:
Fix Mantis issue#130 wdl: does not handle 64-bit address

- Change the call from strtoul() to strtoull()
- Change "%16X" to "%16llx" when scanning preferred load address

rb://58

Submitted by:	Calvin
Approved by:	Marko
2008-11-27 21:26:39 +00:00
marko
afe9ee1f86 branches/zip: row_merge_drop_temp_indexes(): Replace the WHILE 1 with
WHILE 1=1 in the SQL procedure, so that the loop will actually be
entered and temporary indexes be dropped during crash recovery.
Thanks to Sunny Bains for pointing this out.

Tested as follows:

Set a breakpoint in row_merge_rename_indexes.

CREATE TABLE t(a INT)ENGINE=InnoDB;
CREATE INDEX a ON t(a);

-- The breakpoint will be reached.  Kill and restart mysqld.
SHOW CREATE TABLE t;
-- This shows the MySQL .frm file, without and index.
CREATE TABLE innodb_table_monitor(a INT)ENGINE=InnoDB;
-- This will dump the InnoDB dictionary to the error log, without the index.
2008-11-26 08:00:28 +00:00
marko
106d894efd branches/zip: Note that it is legitimate for a secondary index record not
to be found during purge.  This tries to address Issue #129.  The comments
were supplied by Heikki.
2008-11-24 16:01:42 +00:00
marko
a00032220f branches/zip: buf_LRU_free_block(): Do not assert on ibuf_count until after
it has been determined that the block is not being I/O-fixed.
This corrects the mistake that was made in r3177.
2008-11-21 14:36:18 +00:00
marko
0e613f0c92 branches/zip: buf_LRU_free_block(), buf_page_try_get_func(): Assert that
there is nothing in the insert buffer for the page.  This is for
tracking down Issue #128.
2008-11-21 14:24:31 +00:00
marko
c8fd3a51ff branches/zip: dtuple_print(): Dump each field in a separate line,
so that the dumps can be read and compared more easily.
This is related to the change to rec_print_old() and rec_print_comp()
in r3148.
2008-11-21 08:11:18 +00:00
marko
ed2321931c branches/zip: rec_print_old(), rec_print_comp(): Dump each field in a
separate line, so that the dumps can be read and compared more easily.
2008-11-20 11:27:27 +00:00
marko
6bdab319ad branches/zip: Always check for "row too large" when executing SQL to create
an index or table.  We have to skip this check when loading table definitions
from the data dictionary, because we could otherwise refuse to load old
tables (even uncompressed ones).  This addresses Issue #119.

The first "row too large" check was implemented in MySQL 5.0.3
to address MySQL Bug #5682.  In the InnoDB Plugin 1.0.2, a more
accurate check was implemented in innodb_strict_mode.  We now
make the check unconditional.

dict_create_index_step(): Pass strict=TRUE to dict_index_add_to_cache().

trx_is_strict(), thd_is_strict(): Remove.

innodb-zip.test: Test in innodb_strict_mode=OFF.

innodb_bug36169.test: Ensure that none of the tables can be created.

rb://56 approved by Sunny Bains.
2008-11-20 10:22:40 +00:00
marko
cde818bd81 branches/zip: rec_get_nth_field_offs_old(): Add UNIV_UNLIKELY hints
to assertion-like tests.
2008-11-20 09:39:49 +00:00
marko
d26ba07df0 branches/zip: buf_LRU_free_block(): Clarify the function comment. 2008-11-19 14:39:55 +00:00
michael
337c4d9561 branches/zip: rb://53
Final version of rb://53, fixes the styling of a comment, makes
the definition and the declaration of thd_supports_xa() identical commentwise.
2008-11-17 14:02:01 +00:00
michael
c6227f3766 branches/zip:
rb://53

Improve innodb_supports_xa system variable handling and 
reduces the number of retrievals of the value from MySQL.

Approved by: Marko, over IM
2008-11-17 12:56:56 +00:00
marko
69a89b02b4 branches/zip: row_vers_impl_x_locked_off_kernel(): Remove compilation
warnings about prev_trx_id and vers_del being possibly uninitialized,
by handling the case prev_version == NULL in a single if block.

rb://45 approved by Inaam Rana.
2008-11-12 11:52:57 +00:00
marko
d7abedcdbb branches/zip: dtuple_validate(): When UNIV_DEBUG_VALGRIND is defined,
rely solely on the UNIV_MEM_ASSERT_RW() check and disable the for loop
that would only cause additional noise.
2008-11-12 10:34:30 +00:00
marko
426fccde9f branches/zip: ha_innobase::create(): Remove the dependences on
DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).

Make the default compressed page size half the uncompressed page size.
The previous default was 8 kilobytes, which is the same when compiling
with the default 16k uncompressed page size.

rb://50 approved by Pekka Lampio and Sunny Bains.
2008-11-11 07:28:37 +00:00
calvin
bf9b5f06c5 branches/zip: windows plugin - fix references to array variables.
This problem surfaced when running new test innodb_bug40360.test. Both
tx_isolation_names and binlog_format_names are name arrays, and
should be defined as wdl_tx_isolation_names and wdl_binlog_format_names,
not *wdl_tx_isolation_names and *wdl_binlog_format_names.

Another array variable is all_charsets, which is already correctly
defined.

Approved by:	Marko (on IM)
2008-11-04 10:43:14 +00:00
calvin
9b11f7d809 branches/zip: ignore the failure when builtin_innobase_plugin is not
available.

External variable builtin_innobase_plugin is not available when mysqld
does not have a builtin InnoDB. The init of the Windows plugin should
not fail in this case. 

Approved by:	Marko (on IM)
2008-11-04 07:15:26 +00:00
marko
5b4736c687 branches/zip: scripts/install_innodb_plugins_win.sql: New script,
for installing the InnoDB plugins in Windows.  Copied from
scripts/install_innodb_plugins.sql.
2008-10-31 12:21:43 +00:00
vasil
b95ccf918c branches/zip:
White-space cleanup in ChangeLog.
2008-10-31 09:47:56 +00:00
vasil
375e975071 branches/zip:
Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl

Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.

Approved by:	Marko (https://svn.innodb.com/rb/r/42/)
2008-10-31 09:39:07 +00:00
calvin
a019e95a43 branches/zip: Windows plugin part of r2944
r2944 has reference to mysql_bin_log.is_open(), which is new in InnoDB.
Add two new entries and remove one duplicate in mysqld.def & 
mysqld_x64.def.
2008-10-31 08:38:26 +00:00
marko
ede49be9fc branches/zip: Revert the unintended change to univ.i that was made in r2943. 2008-10-31 08:18:47 +00:00
sunny
b5c757cb14 branches/zip: Update ChangeLog with r2943 info. 2008-10-31 07:44:45 +00:00
vasil
729ff1ad34 branches/zip:
Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
(r2935, r2936) and deploy MySQL's one, but put the function
mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
and use a different name for it so there is no collision when MySQL adds this
function in log.cc.

[note from the future: the windows part of this patch went into r2947]

Approved by:	Marko (https://svn.innodb.com/rb/r/41/)
2008-10-31 07:44:16 +00:00
sunny
7fed1c703e branches/zip:
1. We add a vector of locks to trx_t. This array contains the autoinc
  locks granted to a transaction. There is one per table.

  2. We enforce releasing of these locks in the reverse order from the
  one in which they are acquired. The assumption is that since the
  AUTOINC locks are statement level locks. Nested statements introduced
  by triggers are stacked it should hold.

There was some cleanup done to the vector code too by adding const and
some new functions. Rename dict_table_t::auto_inc_lock to autoinc_lock.

Fix Bug#26316 Triggers create duplicate entries on auto-increment columns
rb://22
2008-10-31 07:40:29 +00:00
vasil
eb1b8095ff branches/zip:
Increment the InnoDB Plugin version from 1.0.1 to 1.0.2.
2008-10-30 17:34:27 +00:00
marko
acf0e85e32 branches/zip: ChangeLog, ha_innodb.def: Set svn:eol-style native 2008-10-30 10:46:21 +00:00
marko
1ac429bcd6 branches/zip: Set svn:eol-style native on some recently added text files. 2008-10-30 10:38:18 +00:00
vasil
39b7e02a18 branches/zip:
Non-functional change: convert handler/handler0vars.h and
handler/win_delay_loader.cc from \r\n (dos) to \n (unix) line terminators.
2008-10-30 10:33:28 +00:00
vasil
05cb12e611 branches/zip:
Add ChangeLog entry for Bug#40360 Binlog related errors with binlog off
2008-10-30 10:28:47 +00:00
vasil
69977f27fe branches/zip:
Followup to r2935: add the Windows Delay Loader stuff for the MySQL
variable that we are accessing. If someday we have another solution for
Bug#40360 Binlog related errors with binlog off
then this should also be reverted.
2008-10-30 10:24:09 +00:00
vasil
c368f38f4d branches/zip:
Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
to have a Bug#40360-free InnoDB Plugin 1.0.2.

The fix does check whether binary logging is enabled in MySQL by accessing the
opt_bin_log global variable that is defined in sql/mysqld.cc.

In case MySQL does develop another solution to this via Bug#40360 then we can
revert this patch (except the mysql-tests).

The windows-plugin part of this fix will be committed as a separate commit to
ease eventual merge into branches/5.1 [note from the future: the separate
commit went into r2936].

Approved by:	Marko (https://svn.innodb.com/rb/r/39)
2008-10-30 10:17:23 +00:00
vasil
0f2b6ec668 branches/zip:
Add 2 ChangeLog entries for the 2 bugfixes that were merged from branches/5.1.
2008-10-29 20:10:40 +00:00
marko
bd3514db33 branches/zip: Merge revisions 2854:2929 from branches/5.1,
except r2924, which was merged from branches/zip r2866 to branches/5.1
and except r2879 which was merged separately by Calvin:

  ------------------------------------------------------------------------
  r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines

  branches/5.1:

  Fix Bug#38189 innodb_stats_on_metadata missing

  Make the variable innodb_stats_on_metadata visible to the users and
  also settable at runtime. Previously it was only "visible" as a command
  line startup option to mysqld.

  Approved by:    Marko (https://svn.innodb.com/rb/r/36)
  ------------------------------------------------------------------------
  r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines

  branches/5.1: dtype_get_sql_null_size(): return the correct storage
  size of a SQL NULL column. (Bug #40369)

  When MySQL Bug #20877 was fixed in r834, this function was
  accidentally modified to return 0 or 1. Apparently, the only impact of
  this bug is that fixed-length columns cannot be updated in-place from
  or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
  fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
  storage size as they should, no matter if NULL or non-NULL.  The bug
  caused fixed-length NULL columns to occupy 1 byte.

  rb://37 approved by Heikki over IM.
  ------------------------------------------------------------------------
2008-10-29 19:39:24 +00:00
michael
a81e8ca892 Remove unnecessary assert
Approved by: Heikki, over IM
2008-10-29 17:20:10 +00:00
marko
e2656dba61 branches/zip: ha_innodb.cc: Make some functions static, so that they will
not be compiled as weak global symbols.  These functions must not be
redirected to the built-in InnoDB.
2008-10-29 09:43:23 +00:00
calvin
06bdbaa27f branches/zip: change function names in sql/mysqld.def in order
to work with 5.1.29-rc.

In 5.1.29, the following function names are changed:
  _hash_init
  hash_free
  hash_search
  hash_delete

changed to
  _my_hash_init
  my_hash_free
  my_hash_search
  my_hash_delete

Approved by:	Marko (on IM)
2008-10-29 08:09:41 +00:00
marko
1e66bf4019 branches/zip: ChangeLog: Mention Bug #27276. 2008-10-29 07:52:30 +00:00
calvin
b7d0a7770a branches/zip: fix issue #102 - Windows plugin: resolve dbug functions
during run-time.

Implement wrapper functions in the plugin. The plugin will get the
function entries from mysqld.exe during the init, and invoke the
corresponding functions (in mysqld.exe). The list of functions are:

	_db_pargs_
	_db_doprnt_
	_db_enter_
	_db_return_
	_db_dump_

rb://38

Approved by:	Marko
2008-10-29 06:29:01 +00:00