MDEV4732 - Server crashes on attempt to create a SPIDER table with a
wrong version of mysql.spider_tables
MDEV4733 - Server crashes on attempt to change engine on a SPIDER table
a PROXY or PROXY based table.
modified:
storage/connect/colblk.cpp
storage/connect/tabutil.cpp
storage/connect/tabutil.h
storage/connect/tabxcl.cpp
storage/connect/tabxcl.h
pending merges:
Michael Widenius 2013-08-21 Fixed compiler warnings
Alexander Barkov 2013-08-16 A post-fix for MDEV-4871: Fixing a faili...
Sergey Vojtovich 2013-08-15 MDEV-4897 - Assertion `share->tdc.prev =...
Sergey Vojtovich 2013-08-15 MDEV-4864 - Merge tests for EXCHANGE PAR...
Alexander Barkov 2013-08-15 An additional test for MDEV-4871 Tempora...
Alexander Barkov 2013-08-15 MDEV-4871 Temporal literals do not accep...
Sergei Golubchik 2013-08-15 fix tests that were relying on @@have_pa...
an XML table with DOMDOC.
modified:
storage/connect/domdoc.cpp
- Add the flag HA_MUST_USE_TABLE_CONDITION_PUSHDOWN.
modified:
storage/connect/ha_connect.cc
- Update version number
modified:
storage/connect/ha_connect.cc
storage/connect/mysql-test/connect/r/xml.result
information function. This solve the problem of uninitialised zone
that was detected by valgrind.
modified:
storage/connect/myconn.cpp
storage/connect/odbconn.cpp
storage/connect/tabfmt.cpp
storage/connect/tabutil.cpp
storage/connect/tabwmi.cpp
Following variables do not require LOCK_open protection anymore:
- table_def_cache (renamed to tdc_hash) is protected by rw-lock
LOCK_tdc_hash;
- table_def_shutdown_in_progress doesn't need LOCK_open protection;
- last_table_id use atomics;
- TABLE_SHARE::ref_count (renamed to TABLE_SHARE::tdc.ref_count)
is protected by TABLE_SHARE::tdc.LOCK_table_share;
- TABLE_SHARE::next, ::prev (renamed to tdc.next and tdc.prev),
oldest_unused_share, end_of_unused_share are protected by
LOCK_unused_shares;
- TABLE_SHARE::m_flush_tickets (renamed to tdc.m_flush_tickets)
is protected by TABLE_SHARE::tdc.LOCK_table_share;
- refresh_version (renamed to tdc_version) use atomics.
when deleting one key of a INI table with layout=Row. The same happens
for layout=column but this is normal as one line is one section.
modified:
storage/connect/tabsys.cpp
- Should fix a valgrind warning in CHRBLK::GetValPtrEx
modified:
storage/connect/valblk.cpp
modified:
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/plgdbsem.h
- Fiw a bug making records_in_range sometimes return a negative
value.
modified:
storage/connect/xindex.cpp
remove unused HA_CAN_EXPORT
(with the merge of "FLUSH TABLE <table_list> FOR EXPORT",
this functionality should be added back, but differently -
no table flag, handler::extra() returns an error instead)
special columns are processed. This will be documented.
Also some code cleanup and some changes to prepare the indexing of
nullable columns (not achieve yet)
modified:
storage/connect/colblk.cpp
storage/connect/colblk.h
storage/connect/connect.cc
storage/connect/connect.h
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/macutil.cpp
storage/connect/mycat.cc
storage/connect/plgdbsem.h
storage/connect/reldef.cpp
storage/connect/reldef.h
storage/connect/table.cpp
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/tabodbc.h
storage/connect/tabtbl.cpp
storage/connect/tabutil.h
storage/connect/value.h
storage/connect/xindex.cpp
storage/connect/xindex.h
storage/connect/xtable.h
MDEV-4797 - Spider crash on show create table spider table and replication
multi source to one of the partitions
MDEV-4747 - Spider: add missing install_spider.sql
Fixed main.plugin, main-test_sql_discovery.plugin failures.
storage/example/ha_example.cc:
Issue a warning independently of DBUG status (needed for testing).
Fixed "check of testcases" failure.
Value of INFORMATION_SCHEMA.PLUGINS.PLUGIN_TYPE_VERSION was
pointing to incorrect address and could change after server
restart.
storage/innobase/handler/i_s.cc:
Use proper plugin info pointer (struct st_mysql_information_schema
instead of ST_FIELD_INFO[]).
Fixed archive.archive non-debug failure.
Applied revision:
sergey.vojtovich@oracle.com-20111008171828-vje5pumzvl04rdbb
Archive didn't read blobs from original table while
performing REPAIR TABLE with non-debug builds.
storage/archive/ha_archive.cc:
Mark all columns for read independently of DBUG state.
It instructs ::get_row_version2() to read all blobs.
Fixed archive.archive failure.
Applied remnants of two revisions, which were partially merged.
Rev. 3225.1.1 (5.0 compatibility):
BUG#11756687 - 48633: ARCHIVE TABLES ARE NOT UPGRADEABLE
Archive table created by 5.0 were not accessible.
This patch adds various fixes so that 5.0 archive tables
are readable and writable. Though it is strongly recommended
to avoid binary upgrade of archive tables whenever it is
possible.
Rev. 3710 (due to valgrind warnings):
Bug#13907676: HA_ARCHIVE::INFO
In WL#4305 the refactoring of the archive writer,
it could flush the writer when it was not yet open.
This was due to if bulk insert was used but no
rows was actually inserted (write_row was never called),
the writer was marked dirty even if it was not open.
Fix was to only mark it as dirty if it was opened.
mysql-test/std_data/bug48633.ARM:
A test case for BUG#11756687: archive table created by 5.0.95.
mysql-test/std_data/bug48633.ARZ:
A test case for BUG#11756687: archive table created by 5.0.95.
mysql-test/std_data/bug48633.frm:
A test case for BUG#11756687: archive table created by 5.0.95.
mysql-test/suite/archive/archive.result:
Modified a test case for BUG#47012 according to fix for
BUG#11756687.
Added a test case for BUG#11756687.
mysql-test/suite/archive/archive.test:
Modified a test case for BUG#47012 according to fix for
BUG#11756687.
Added a test case for BUG#11756687.
No need to remove .ARM files anymore: DROP TABLE will take
care of them.
storage/archive/azio.c:
Do not write AZIO (v.3) header to GZIO file (v.1).
Added initialization of various azio_stream members
to read_header() so it can proceed with v.1 format.
Update data start position only when reading first
GZIO header. That is only on azopen(), but never on
azread().
storage/archive/ha_archive.cc:
Removed guardians that were rejecting to open v.1 archive
tables.
Reload .frm when repairing v.1 tables - they didn't have
storage for .frm.
Do not flush write stream when it is not open.
Let DROP TABLE remove 5.0 .ARM files.
- Reset static variables that are used to signal "init done" for DBUG, in dbug_end()
- Set string server variables to NULL after memory for the value is freed - avoids double free()
- fix DBUG_ASSERTs that happened during reinitialization.
- Let _ma_record_pos() set SEARCH_PART_KEY when doing a search on
a prefix of a [unique] key. Otherwise, _ma_search_pos() would
find the first key equal to search key, and assume it is also
the last one, which will make a wrong estimate of key's position.
A wrong key position may cause min_pos > max_pos and records_in_range()
will return 0, which will make the optimizer think it's an impossible
range while in fact it is not.
modified:
storage/connect/value.cpp
- Ignore column comment field in TabColumns because its pointer is flagged
as invalid by Valgrind (this is a bypass but not a real fix)
modified:
storage/connect/tabutil.cpp
storage/connect/value.cpp
Fixed sql_discovery.simple failure.
storage/sequence/sequence.cc:
Let sequence share class have unique name to avoid collision with other
classes.
storage/test_sql_discovery/test_sql_discovery.cc:
Let test_sql_discovery share class have unique name to avoid collision with
other classes.
Fixed connect compilation failure.
storage/connect/csort.cpp:
min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/filamfix.cpp:
min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/ha_connect.cc:
Renamed MYSQL_ERROR -> Sql_condition.
Renamed KEY::key_parts -> KEY::user_defined_key_parts.
Adjusted connect according to:
WL#4305 - storage-engine private data area per physical table.
storage/connect/ha_connect.h:
Adjusted connect according to:
WL#4305 - storage-engine private data area per physical table.
storage/connect/inihandl.c:
min/max are not defined by my_global.h anymore, include osutil.h instead.
storage/connect/osutil.h:
min/max are not defined by my_global.h anymore, define them for C as well.
storage/connect/taboccur.cpp:
Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabpivot.cpp:
Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabtbl.cpp:
Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/tabxcl.cpp:
Include server headers before osutil.h to avoid min/max redefinition.
storage/connect/value.cpp:
min/max are not defined by my_global.h anymore, include osutil.h instead.
Include server headers before osutil.h to avoid min/max redefinition.
Fixed test_sql_discovery compilation failure.
storage/test_sql_discovery/mysql-test/archive/discover.rdiff:
archive.discover result has changed during merge. Adjusted discover.rdiff
accordingly.
storage/test_sql_discovery/test_sql_discovery.cc:
Adjusted test_sql_discovery according to:
WL#4305 - storage-engine private data area per physical table.
Fixed sequence compilation failure.
storage/sequence/sequence.cc:
Adjusted sequence according to:
WL#4305 - storage-engine private data area per physical table.
sql/sql_table.cc:
Removed false assertion that HA_NO_COPY_ON_ALTER is merge specific.
This flag is used at least by Spider and Connect.
storage/spider/ha_spider.cc:
Renamed THD::stmt_da -> THD::get_stmt_da().
Renamed KEY::key_parts -> KEY::user_defined_key_parts.
Renamed ALTER_* flags -> Alter_info::ALTER_*.
storage/spider/spd_conn.cc:
Renamed THD::stmt_da -> THD::get_stmt_da().
storage/spider/spd_db_conn.cc:
Renamed MYSQL_ERROR -> Sql_condition.
Renamed KEY::key_parts -> KEY::user_defined_key_parts.
storage/spider/spd_db_include.h:
current_comment_start argument of generate_parition_syntax()
was removed during merge.
storage/spider/spd_db_mysql.cc:
Renamed KEY::key_parts -> KEY::user_defined_key_parts.
storage/spider/spd_ping_table.cc:
Renamed THD::stmt_da -> THD::get_stmt_da().
storage/spider/spd_table.cc:
Include my_getopt.h so that it exports my_defaults_file and
my_defaults_extra_file.
Renamed KEY::key_parts -> KEY::user_defined_key_parts.
* update results
* don't force HA_CREATE_DELAY_KEY_WRITE on all temp tables,
(bad for CREATE ... LIKE) instead imply it in myisam/aria
* restore HA_ERR_TABLE_DEF_CHANGED in archive
* increase the default number of rwlock classes in P_S to fit all our rwlocks
includes:
* remove some remnants of "Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING"
* introduce LOCK_share, now LOCK_ha_data is strictly for engines
* rea_create_table() always creates .par file (even in "frm-only" mode)
* fix a 5.6 bug, temp file leak on dummy ALTER TABLE
Backport the fix olav.sandstaa@sun.com-20101102184747-qfuntqwj021imy9r:
"Fix for Bug#52660 Perf. regr. using ICP for MyISAM on range queries on an index containing TEXT"
(together with further fixes in that code) into MyISAM and Aria.
Includes 5.6 changesets for:
*****
Fix for BUG#13489996 valgrind:conditional jump or move depends on uninitialised values-field_blob.
blob_ptr_size was not initialized properly: remove this variable.
*****
Bug#14021323 CRASH IN FIELD::SET_NULL WHEN INSERTING ROWS TO NEW TABLE
*****
This is to suppress some valgrind warnings and consist principally in:
1 - Not supporting connect_assisted_discovery to all PROXY based table types
2 - Not supporting the PIVOT table type
This temporarily until the valgrind errors/warnings are fixed
modified:
storage/connect/ha_connect.cc
storage/connect/mysql-test/connect/r/mysql.result
storage/connect/mysql-test/connect/r/pivot.result
storage/connect/mysql-test/connect/r/xcol.result
storage/connect/mysql-test/connect/t/mysql.test
storage/connect/mysql-test/connect/t/pivot.test
storage/connect/mysql-test/connect/t/xcol.test
When a new master is provisioned that does not have any old binlogs,
the @@gtid_slave_pos is used to know where in the GTID history the
provisioning happened. A slave is allowed to connect at the point of
this value of @@gtid_slave_pos, even if that GTID is not in the
binlogs on the new master.
But --gtid-strict-mode did not correctly handle this case. When strict
mode was enabled, an attempt to connect at the position would cause an
error about holes in the binlog, which is not correct.
This patch adds a hash of GTIDs that need to be treated specially by
GTID strict mode to deal correctly with this case.
added:
storage/connect/mysql-test/connect/r/mul.result
storage/connect/mysql-test/connect/t/mul.test
modified:
storage/connect/domdoc.h
storage/connect/filamfix.cpp
storage/connect/filamtxt.cpp
storage/connect/filamvct.cpp
storage/connect/fmdlex.c
storage/connect/global.h
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/inihandl.c
storage/connect/inihandl.h
storage/connect/libdoc.cpp
storage/connect/libdoc.h
storage/connect/mycat.cc
storage/connect/myconn.cpp
storage/connect/mysql-test/connect/r/dbf.result
storage/connect/mysql-test/connect/t/odbc_sqlite3.test
storage/connect/myutil.cpp
storage/connect/odbconn.cpp
storage/connect/osutil.c
storage/connect/plgdbsem.h
storage/connect/plgdbutl.cpp
storage/connect/plgxml.h
storage/connect/plugutil.c
storage/connect/tabdos.cpp
storage/connect/tabfix.cpp
storage/connect/tabmul.cpp*
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/taboccur.cpp
storage/connect/taboccur.h
storage/connect/tabodbc.cpp
storage/connect/tabpivot.h
storage/connect/tabsys.cpp
storage/connect/tabtbl.cpp
storage/connect/tabtbl.h
storage/connect/tabvct.cpp
storage/connect/tabxml.cpp
storage/connect/valblk.cpp
storage/connect/value.cpp
storage/connect/xindex.cpp
pending merges:
Olivier Bertrand 2013-07-08 - Suppressing wrong code (INI tables are not...
Alexander Barkov 2013-07-08 Adding instructions on how to install sq...
Alexander Barkov 2013-07-08 Fixing some of the memory leaks in ODBCC...
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 fixing warnings:
Alexander Barkov 2013-07-08 Fixing a typo in the previous push
Alexander Barkov 2013-07-08 fixing warnings:
Alexander Barkov 2013-07-08 Fixing the "no previous declaration for ...
Alexander Barkov 2013-07-08 Fixing numerous "variable is set but nev...
Olivier Bertrand 2013-07-06 - Remove unuseful option causing valgrin...
Olivier Bertrand 2013-07-05 - Try to fix a uninitialised valgrind wa...
Olivier Bertrand 2013-07-04 - Make sure Remark is initialised
Olivier Bertrand 2013-07-04 - Make sure Remark is initialised in ha_...
Olivier Bertrand 2013-07-03 - Makes memory check conditionally
Olivier Bertrand 2013-07-03 - Make sure result are ordered the same ...
Olivier Bertrand 2013-07-02 - Fix memory leak in libdoc.cpp in LIBXM...
Olivier Bertrand 2013-06-30 - Working on eliminating valgrind warnin...
Olivier Bertrand 2013-06-30 - Trying to get rid of some valgrind war...
Olivier Bertrand 2013-06-29 - Release storage allocated by flex
Olivier Bertrand 2013-06-29 - Add the PROFILE_End function in inihan...
Olivier Bertrand 2013-06-28 - Release memory allocated by inihandl i...
Olivier Bertrand 2013-06-26 - Trying to remove those warnings about ...
Olivier Bertrand 2013-06-26 - In connect_assisted_discovery the test...
Olivier Bertrand 2013-06-26 - Fix potential bug in MYSQLCOL::WriteCo...
Olivier Bertrand 2013-06-16 - Implemented: The use of Federated serv...
Olivier Bertrand 2013-06-14 - Add a test case for multiple tables
Olivier Bertrand 2013-06-14 - Fix regression error for multiple 2 ta...
Olivier Bertrand 2013-06-12 - To avoid crashing in debug mode, the e...
Olivier Bertrand 2013-06-12 - Suballocate filename in TDBMUL::InitFi...
Olivier Bertrand 2013-06-12 - Add trace in TDBMUL::GetMaxSize.
Olivier Bertrand 2013-06-12 - Fix MDEV-4638
Olivier Bertrand 2013-06-08 [merge] - Commit merged changes
Alexander Barkov 2013-06-08 Enabling Connect tests
Olivier Bertrand 2013-06-08 - Set timeout values in MYSQLC::Open
- no previous declaration for ‘const char* PLGtoMYSQLtype
- no previous declaration for ‘int MYSQLtoPLG(int)’
- no previous declaration for ‘char* MyDateFmt(int)’
- no previous declaration for ‘char* MyDateFmt(char*)’
- no previous declaration for ‘int MYSQLtoPLG(char*)’
- no previous declaration for ‘enum_field_types PLGtoMYSQL
modified:
storage/connect/myutil.cpp
- no previous declaration for ‘bool OcrSrcCol'
- no previous declaration for ‘bool OcrColumns'
- no previous declaration for ‘_qryres* PivotColumns'
modified:
storage/connect/ha_connect.cc
storage/connect/taboccur.h
storage/connect/tabpivot.h
- no previous declaration for ‘char* GetIni(int)’
- no previous declaration for ‘void SetTrc()’
modified:
storage/connect/plgdbsem.h
storage/connect/plgdbutl.cpp
- no previous declaration for ‘void XmlCleanupParserLib()’
- no previous declaration for ‘void CloseXML2File’
- no previous declaration for ‘void XmlInitParserLib()’
modified:
storage/connect/ha_connect.cc
storage/connect/libdoc.cpp
storage/connect/libdoc.h
storage/connect/plgdbutl.cpp
MULTI-FILE TABLESPACE
ANALYSIS
--------
When a tablespace has multiple data files, InnoDB fails to
open the tablespace. This is because for each ibd file,
the first page is checked.But the first page of all ibd file
need not be the first page of the tablespace. Only the first
page of the tablespace contains the tablespace header. When
we check the first page of an ibd file that is not the first
page of the tablespace, then the "tablespace flags" is not
really available.This was wrongly used to check if a page is
corrupt or not.
FIX
---
Use the tablespace flags only if the page number is 0
in a tablespace.
[Approved by Inaam rb#2836 ]
Merged all ddl_logging code.
Merged sql_partition.cc
innodb_mysql_lock2.test and partition_cache.test now works.
Changed interface to strconvert() to make it easier to use with not \0 terminated strings.
sql/sql_partition.cc:
Full merge with 5.6
sql/sql_table.cc:
Merged all ddl_logging code
sql/strfunc.cc:
Added from_length argument to strconvert() to make it possible to use without end terminated strings.
sql/strfunc.h:
Added from_length argument to strconvert() to make it possible to use without end terminated strings.
mysql-test/r/mdl_sync.result:
Full merge with 5.6
mysql-test/t/mdl_sync.test:
Full merge with 5.6
sql/debug_sync.cc:
Full merge with 5.6
sql/debug_sync.h:
Full merge with 5.6
sql/mdl.cc:
Full merge with 5.6
sql/sql_base.cc:
Removed code not in 5.6 anymore
to release the cache memory allocated by the PROFILE perocessing.
(also add some break at the end of switch's to avoid warnings)
modified:
storage/connect/filamvct.cpp
storage/connect/ha_connect.cc
storage/connect/inihandl.c
storage/connect/inihandl.h
Implement facility for the commit in one thread to wait for the commit of
another to complete first. The wait is done in a way that does not hinder
that a waiter and a waitee can group commit together with a single fsync()
in both binlog and InnoDB. The wait is done efficiently with respect to
locking.
The patch was originally made to support TaoBao parallel replication with
in-order commit; now it will be adapted to also be used for parallel
replication of group-committed transactions.
A waiter THD registers itself with a prior waitee THD. The waiter will then
complete its commit at the earliest in the same group commit of the waitee
(when using binlog). The wait can also be done explicitly by the waitee.
Fixed type and testing of last_update type for innodb_table_stats
mysql-test/r/connect.result:
Removed tables which are not created anymore
sql/item_sum.h:
Fixed typo
sql/sql_base.cc:
Don't update table and index statics for temporary tables
sql/sys_vars.cc:
Merge
storage/innobase/dict/dict0stats.cc:
Fixed type last_update to TIMESTAMP.