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.
Analysis
--------
The pthread_mutex commit_threads_m was initiliazed but never
used.
Fix
---
Removing the commit_threads_m mutex from the code base.
[ Approved by Marko rb#2475]
DDL AND I_S QUERIES
Skip partially created indexes (ones whose name starts with TEMP_INDEX_PREFIX)
from stats gathering.
Because InnoDB reports HA_INPLACE_ADD_INDEX_NO_WRITE to MySQL, the latter
allows parallel execution of ha_innobase::add_index() and ha_innobase::info().
Reviewed by: Inaam (rb:2613)
Partitioning didn't store the name of default storage engine for partitions
in the frm file - it only store the typecode. Typecodes aren't stable, and
might vary depending on the order in which storage engines are loaded (can
be changed even from my.cnf without recompilation).
As a temporary workaround for 5.5, we hard-code Aria's typecode, to make sure it
never changes.
modified:
storage/connect/tabmul.cpp
- Fix regression error on field types. Cannot eliminate BINARY_FLAG that
is on for DATE columns. Update result from dbf.test case.
modified:
storage/connect/ha_connect.cc
storage/connect/mysql-test/connect/r/dbf.result
IF IT HAS A WRONG COUNT
If CHECK TABLE finds that a secondary index contains the wrong
number of entries, it used to report an error but not mark the
index as corrupt. The error means that the index should be rebuilt,
which can be done with ALTER TABLE DROP INDEX and ALTER TABLE ADD
INDEX. But just in case the DBA does not pay any attention to the
output of CHECK TABLE, the secondary index should be marked as
corrupted so that it is not used again.
Approved by Inaam in RB:2607
Backport to 5.5
(external Bug#69407 Build warnings with mysql)
support-files/build-tags:
Run etags on sql_yacc.yy, ignore other .yy files
unittest/mysys/explain_filename-t.cc:
NO_PLAN seems to fail on some platforms, use the actual number instead.
ON DELETION ORDER
Problem:
When a InnoDB index page is under-filled, we will merge it with either
the left sibling node or the right sibling node. But this checking is
incorrect. When the left sibling node is available, even if merging
is not possible with left sibling node, we do not check for the
possibility of merging with the right sibling node.
Solution:
If left sibling node is available, and merging with left sibling node
is not possible, then check if merge with right sibling node is
possible.
rb#2506 approved by jimmy & ima.
added:
include/mysql/service_thd_timezone.h
libservices/thd_timezone_service.c
storage/connect/inihandl.h
storage/connect/mysql-test/connect/r/grant.result
storage/connect/mysql-test/connect/r/ini_grant.result
storage/connect/mysql-test/connect/r/mysql_grant.result
storage/connect/mysql-test/connect/r/occur.result
storage/connect/mysql-test/connect/r/odbc_sqlite3_grant.result
storage/connect/mysql-test/connect/r/pivot.result
storage/connect/mysql-test/connect/r/xcol.result
storage/connect/mysql-test/connect/r/xml_grant.result
storage/connect/mysql-test/connect/std_data/expenses.txt
storage/connect/mysql-test/connect/t/grant.test
storage/connect/mysql-test/connect/t/have_odbc_sqlite3.inc
storage/connect/mysql-test/connect/t/ini_grant.test
storage/connect/mysql-test/connect/t/mysql_grant.test
storage/connect/mysql-test/connect/t/occur.test
storage/connect/mysql-test/connect/t/odbc_sqlite3_grant.test
storage/connect/mysql-test/connect/t/pivot.test
storage/connect/mysql-test/connect/t/xcol.test
storage/connect/mysql-test/connect/t/xml_grant.test
storage/connect/rcmsg.h
storage/connect/taboccur.cpp
storage/connect/taboccur.h
storage/connect/tabutil.cpp
storage/connect/tabutil.h
storage/connect/tabxcl.cpp
storage/connect/tabxcl.h
modified:
include/my_global.h
include/my_time.h
include/mysql.h.pp
include/mysql/plugin.h
include/mysql/plugin_audit.h.pp
include/mysql/plugin_auth.h.pp
include/mysql/plugin_ftparser.h.pp
include/mysql/services.h
include/mysql_time.h
include/probes_mysql_nodtrace.h
include/service_versions.h
libservices/CMakeLists.txt
mysql-test/r/handlersocket.result
mysql-test/r/plugin.result
mysql-test/suite/plugins/r/show_all_plugins.result
sql/item_func.cc
sql/mysqld.cc
sql/set_var.cc
sql/sql_class.cc
sql/sql_plugin.cc
sql/sql_plugin.h
sql/sql_plugin_services.h
sql/sql_show.cc
sql/sys_vars.cc
storage/connect/CMakeLists.txt
storage/connect/catalog.h
storage/connect/colblk.cpp
storage/connect/colblk.h
storage/connect/connect.cc
storage/connect/connect.h
storage/connect/filamdbf.cpp
storage/connect/global.h
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/inihandl.c
storage/connect/maputil.h
storage/connect/mycat.cc
storage/connect/myconn.cpp
storage/connect/myconn.h
storage/connect/mysql-test/connect/r/bin.result
storage/connect/mysql-test/connect/r/csv.result
storage/connect/mysql-test/connect/r/dbf.result
storage/connect/mysql-test/connect/r/dir.result
storage/connect/mysql-test/connect/r/fix.result
storage/connect/mysql-test/connect/r/fmt.result
storage/connect/mysql-test/connect/r/ini.result
storage/connect/mysql-test/connect/r/mysql.result
storage/connect/mysql-test/connect/r/odbc_sqlite3.result
storage/connect/mysql-test/connect/r/tbl.result
storage/connect/mysql-test/connect/r/upd.result
storage/connect/mysql-test/connect/r/vec.result
storage/connect/mysql-test/connect/r/xml.result
storage/connect/mysql-test/connect/t/bin.test
storage/connect/mysql-test/connect/t/csv.test
storage/connect/mysql-test/connect/t/dbf.test
storage/connect/mysql-test/connect/t/dir.test
storage/connect/mysql-test/connect/t/fix.test
storage/connect/mysql-test/connect/t/fmt.test
storage/connect/mysql-test/connect/t/ini.test
storage/connect/mysql-test/connect/t/mysql.test
storage/connect/mysql-test/connect/t/odbc_sqlite3.test
storage/connect/mysql-test/connect/t/tbl.test
storage/connect/mysql-test/connect/t/vec.test
storage/connect/mysql-test/connect/t/xml.test
storage/connect/odbconn.cpp
storage/connect/osutil.c
storage/connect/osutil.h
storage/connect/plgcnx.h
storage/connect/plgdbsem.h
storage/connect/plgdbutl.cpp
storage/connect/plugutil.c
storage/connect/rcmsg.c
storage/connect/reldef.cpp
storage/connect/tabcol.cpp
storage/connect/tabcol.h
storage/connect/tabfmt.cpp
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/tabodbc.cpp
storage/connect/tabpivot.cpp
storage/connect/tabpivot.h
storage/connect/tabsys.cpp
storage/connect/tabsys.h
storage/connect/tabtbl.cpp
storage/connect/tabtbl.h
storage/connect/tabwmi.cpp
storage/connect/user_connect.cc
storage/connect/valblk.cpp
storage/connect/valblk.h
storage/connect/value.cpp
storage/connect/value.h
storage/connect/xobject.h
storage/connect/xtable.h
storage/perfschema/ha_perfschema.cc
pending merges:
Alexander Barkov 2013-06-08 Fixing a few compiler warnings
Olivier Bertrand 2013-06-05 - Change CRLF line endings to LF
Olivier Bertrand 2013-06-04 - Adding parallelism to the TBL table type
Sergei Golubchik 2013-06-03 compiler warnings
Alexander Barkov 2013-06-03 Fixing the problem with my_bool_t define...
Olivier Bertrand 2013-05-28 - Fix crash when a null qrp is returned ...
Olivier Bertrand 2013-05-28 - Extending connect_assisted_discovery c...
Alexander Barkov 2013-05-28 Recording test results forgotten in the ...
Alexander Barkov 2013-05-27 [merge] Merging with the latest 10.0
Alexander Barkov 2013-05-27 - Fixing embedded verision of the Connec...
Alexander Barkov 2013-05-27 Fixing ABI template, to take into accoun...
Alexander Barkov 2013-05-27 Fixing ABI template, to take into accoun...
Olivier Bertrand 2013-05-27 - Fix Windows compile error
Alexander Barkov 2013-05-24 Adding the timezone plugin service, to c...
Alexander Barkov 2013-05-24 Do not run mysql.test in case of embedde...
Alexander Barkov 2013-05-24 Splitting SQLite3 tests into two parts:
Alexander Barkov 2013-05-24 Removing more cases of direct use of thd.
Alexander Barkov 2013-05-24 Removing direct access to thd, using fun...
Olivier Bertrand 2013-05-24 - Fix setting default type to MYSQL->PRO...
Alexander Barkov 2013-05-23 Connect: fixing non thread-safe code.
Olivier Bertrand 2013-05-22 - Changing CONNECT version number and date
Alexander Barkov 2013-05-21 "mtr --suite=connect --embedded" tests d...
Olivier Bertrand 2013-05-20 - Correct misplaced parenthesis in last ...
Olivier Bertrand 2013-05-20 - Save and restore srcdef when getting a...
Olivier Bertrand 2013-05-19 - Removing unused copy file
Olivier Bertrand 2013-05-19 [merge] - Commit merged and resolve
Alexander Barkov 2013-05-13 Fixing warnings (mostly "no previous dec...
Alexander Barkov 2013-05-13 Fixing compiler warnings ("no previous d...
Alexander Barkov 2013-05-13 Fixing a few "no previous declaration" w...
Alexander Barkov 2013-05-13 Fixing a few compilation warnings ("no p...
Olivier Bertrand 2013-05-19 - Allowing views and queries as paramete...
Olivier Bertrand 2013-05-13 [merge] - Commit merged changes
Alexander Barkov 2013-05-13 [merge] Merge from maria-10.0
Alexander Barkov 2013-05-13 Enabling --suite=connect by default
Olivier Bertrand 2013-05-13 - Code cleaning. Eliminating unused code...
Olivier Bertrand 2013-05-13 - fix use of uninitialized variable (colp)
Olivier Bertrand 2013-05-13 - Set tdbp to NULL when ignored
Olivier Bertrand 2013-05-12 - Changing mode from +x to -x
Olivier Bertrand 2013-05-12 - Code cleaning.
Olivier Bertrand 2013-05-11 - Fix tabpivot compile errors on Linux.
Olivier Bertrand 2013-05-11 - Added a test case for PIVOT tables
Olivier Bertrand 2013-05-10 - Add pivot table files and support
Olivier Bertrand 2013-05-10 - Added table type PIVOT
Olivier Bertrand 2013-05-09 - Fix inverted test on am in MYSQLDEF::D...
Olivier Bertrand 2013-05-05 - General code cleaning, eliminating a f...
Olivier Bertrand 2013-05-04 - Add test for XCOL and OCCUR tables
Olivier Bertrand 2013-05-02 - Adding a loop test to prevent PROXY ba...
Olivier Bertrand 2013-04-30 - Change in connect_assisted_discovery t...
Olivier Bertrand 2013-04-30 - Allow PROXY based tables to specify My...
Olivier Bertrand 2013-04-29 - Fix a bug causing a crash when using O...
Olivier Bertrand 2013-04-29 - Adding 3 new table types:
Federated uses SHOW TABLE STATUS LIKE for ::info().
For nonexisting remote table it doesn't fail, but returns an empty result set.
We need to fake the error in the handler.
mysql-test/include/wait_show_condition.inc:
Print failing statement if timeout
mysql-test/r/myisam-metadata.result:
Updated DBUG_SYNC
mysql-test/t/myisam-metadata.test:
Updated DBUG_SYNC.
Removed wait_show_condtion, as this is not needed when we use DBUG_SYNC
This should fix timing issues with the test
mysys/thr_mutex.c:
Added comments
sql/sql_acl.cc:
atoi -> atoll() (Safety)
storage/myisam/ha_myisam.cc:
Send signal before mi_repair_by_sort.
Fixed some cases that didn't work with > 4G buffers.
Fixed compiler warnings
include/mysql_com.h:
Avoid compiler warning with strncmp()
sql-common/client.c:
Fixed long comment; Added ()
sql/filesort.cc:
Fix code to get filesort to work with big buffers
sql/sys_vars.cc:
Fixed some cache variables that could be set to higher value than the size_t
Limit query cache to ULONG_MAX as the query cache buffer variables are ulong
storage/federatedx/ha_federatedx.cc:
Remove not used variable
storage/maria/ha_maria.cc:
Fix that bulk_insert() works with big buffers
storage/maria/ma_write.c:
Fix that bulk_insert() works with big buffers
storage/myisam/ha_myisam.cc:
Fix that bulk_insert() works with big buffers
storage/myisam/mi_write.c:
Fix that bulk_insert() works with big buffers
storage/sphinx/snippets_udf.cc:
Fixed compiler warnings
- Don't abort InnoDB if one can't allocate resources for AIO
(this patch was in 5.5 and 10.0-base but was missing in 10.0)
sql/mdl.cc:
Fixed compiler warning
storage/innobase/os/os0file.cc:
Don't abort InnoDB if one can't allocate resources for AIO
(it worked fine with the modern gcc, but failed on some other compilers).
modified:
include/my_global.h
include/mysql/plugin.h
include/mysql/plugin_audit.h.pp
include/mysql/plugin_auth.h.pp
include/mysql/plugin_ftparser.h.pp
include/mysql/service_thd_timezone.h
sql/item_func.cc
sql/mysqld.cc
sql/set_var.cc
sql/sql_plugin.cc
sql/sql_plugin.h
sql/sql_show.cc
sql/sys_vars.cc
storage/perfschema/ha_perfschema.cc
in connect_assisted_discovery
modified:
storage/connect/ha_connect.cc
- Change CRLF line endings to LF
modified:
storage/connect/tabpivot.cpp
storage/connect/tabpivot.h
- Made call re-try system also handle network disconnects (it will reconnect before retrying)
- Added Cassandra_network_exceptions counter.
- @@cassandra_failure_retries is now always honored.
table_type=MySQL (and some other types) to connect only to
remote MySQL server, do not try to establish embedded connections
from the running embedded connection.
- Disabling "mtr --embedded" for the tests that need a remote MySQL server.
modified:
storage/connect/myconn.cpp
storage/connect/mysql-test/connect/t/occur.test
storage/connect/mysql-test/connect/t/pivot.test
storage/connect/mysql-test/connect/t/tbl.test
MYSQL_TIME and my_time_t and back.
Using the new service instead of direct access to thd.
added:
include/mysql/service_thd_timezone.h
libservices/thd_timezone_service.c
modified:
include/my_time.h
include/mysql.h.pp
include/mysql/plugin.h
include/mysql/plugin_audit.h.pp
include/mysql/plugin_auth.h.pp
include/mysql/plugin_ftparser.h.pp
include/mysql/services.h
include/mysql_time.h
include/service_versions.h
libservices/CMakeLists.txt
sql/sql_class.cc
sql/sql_plugin_services.h
storage/connect/value.cpp
1. for both server and embedded
2. for server only
added:
storage/connect/mysql-test/connect/r/odbc_sqlite3_grant.result
storage/connect/mysql-test/connect/t/have_odbc_sqlite3.inc
storage/connect/mysql-test/connect/t/odbc_sqlite3_grant.test
modified:
storage/connect/mysql-test/connect/r/odbc_sqlite3.result
storage/connect/mysql-test/connect/t/odbc_sqlite3.test
i_s_innodb_buffer_page_get_info(): Do not read the buffer block frame
contents of read-fixed blocks, because it may be invalid or
uninitialized. When we are going to decompress or read a block, we
will put it into buf_pool->page_hash and buf_pool->LRU, read-fix the
block and release the mutexes for the duration of the reading or
decompression.
rb#2500 approved by Jimmy Yang
was not done correctly.
- Fix a bug causing add_field to generate a syntax error on DOUBLE columns
with a 0 decimal value.
- Column can be undefined when Srcdef is specified.
modified:
storage/connect/ha_connect.cc
storage/connect/mycat.cc
storage/connect/tabmysql.cpp
storage/connect/tabutil.cpp
storage/connect/tabutil.h
Passing "struct tm" buffer to GetGmTime() instead of using a static bufer.
modified:
storage/connect/tabodbc.cpp
storage/connect/value.cpp
storage/connect/value.h
replaced snippets_udf.cc with the latest version (2.0.8 from sphinxsource.com), fixed trivial errors on Windows.
It will be compiled and installed into plugins directory now.
1. The Connect engine code assumed that mysql_home_directory is always "./",
which is not the fact in case of embedded server.
Fixing the routines creating file names to add the mysql_home_directory prefix.
2. FILE privilege is not checked in embedded server.
Moving FILE related tests into separate files.
Skipping the FILE related tests when running with --embedded.
added:
storage/connect/mysql-test/connect/r/grant.result
storage/connect/mysql-test/connect/r/ini_grant.result
storage/connect/mysql-test/connect/r/mysql_grant.result
storage/connect/mysql-test/connect/r/xml_grant.result
storage/connect/mysql-test/connect/t/grant.test
storage/connect/mysql-test/connect/t/ini_grant.test
storage/connect/mysql-test/connect/t/mysql_grant.test
storage/connect/mysql-test/connect/t/xml_grant.test
modified:
storage/connect/global.h
storage/connect/ha_connect.cc
storage/connect/mycat.cc
storage/connect/mysql-test/connect/r/bin.result
storage/connect/mysql-test/connect/r/csv.result
storage/connect/mysql-test/connect/r/dbf.result
storage/connect/mysql-test/connect/r/dir.result
storage/connect/mysql-test/connect/r/fix.result
storage/connect/mysql-test/connect/r/ini.result
storage/connect/mysql-test/connect/r/mysql.result
storage/connect/mysql-test/connect/r/vec.result
storage/connect/mysql-test/connect/r/xml.result
storage/connect/mysql-test/connect/t/bin.test
storage/connect/mysql-test/connect/t/csv.test
storage/connect/mysql-test/connect/t/dbf.test
storage/connect/mysql-test/connect/t/dir.test
storage/connect/mysql-test/connect/t/fix.test
storage/connect/mysql-test/connect/t/ini.test
storage/connect/mysql-test/connect/t/mysql.test
storage/connect/mysql-test/connect/t/vec.test
storage/connect/mysql-test/connect/t/xml.test
storage/connect/plgdbsem.h
storage/connect/plugutil.c
modified:
storage/connect/tabutil.cpp
- Change order of tests when looking for valid tdbp. In rare cases an invalid
tdbp was still existing causing a crash of the server.
modified:
storage/connect/ha_connect.cc
USING THE PLUGIN INTERFACE.
ISSUE: No support for floating-point plugin
system variables.
SOLUTION: Allowing plugins to define and expose floating-point
system variables of type double. MYSQL_SYSVAR_DOUBLE
and MYSQL_THDVAR_DOUBLE are added.
ISSUE: Fractional part of the def, min, max values of system
variables are ignored.
SOLUTION: Adding functions that are used to store the raw
representation of a double in the raw bits of unsigned
longlong in a way that the binary representation
remains the same.
NOTE: Checking for looping references cannot be done when using views
as parameters. This should not be allowed on production servers and
should be dependant on a system variable and/or on speciel grant.
modified:
storage/connect/CMakeLists.txt
storage/connect/connect.cc
storage/connect/ha_connect.cc
storage/connect/myconn.cpp
storage/connect/myconn.h
storage/connect/mysql-test/connect/r/fmt.result
storage/connect/mysql-test/connect/r/pivot.result
storage/connect/mysql-test/connect/t/fmt.test
storage/connect/mysql-test/connect/t/pivot.test
storage/connect/plgdbsem.h
storage/connect/plugutil.c
storage/connect/tabcol.cpp
storage/connect/tabcol.h
storage/connect/tabfmt.cpp
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/taboccur.cpp
storage/connect/taboccur.h
storage/connect/tabpivot.cpp
storage/connect/tabpivot.h
storage/connect/tabtbl.cpp
storage/connect/tabutil.cpp
storage/connect/tabutil.h
storage/connect/xtable.h
ESCAPED WITH BACKSLASH
Problem:
When the CREATE TABLE statement used COMMENTS with escape sequences like
'foo\'s', InnoDB did not parse is correctly when trying to extract the
foreign key information. Because of this, the foreign keys specified
in the CREATE TABLE statement were not created.
Solution:
Make the InnoDB internal parser aware of escape sequences.
rb#2457 approved by Kevin.
INSERT BUFFER MERGE
Problem:
When the record is merged from the change buffer to the actual page,
in a particular condition, it is assumed that the deleted rec will
be re-used by the inserted rec. With this assumption the lock is
restored on the pointer to the deleted rec itself, thinking that
it is pointing to the newly inserted rec.
Solution:
Just before restoring the lock, update the rec pointer to point
to the newly inserted record. An assert has been added to verify
this. This assert will fail without the fix and will pass with
the fix.
rb#2449 in review by Marko and Jimmy
INSERT BUFFER MERGE
Problem:
When the record is merged from the change buffer to the actual page,
in a particular condition, it is assumed that the deleted rec will
be re-used by the inserted rec. With this assumption the lock is
restored on the pointer to the deleted rec itself, thinking that
it is pointing to the newly inserted rec.
Solution:
Just before restoring the lock, update the rec pointer to point
to the newly inserted record. An assert has been added to verify
this. This assert will fail without the fix and will pass with
the fix.
rb#2449 in review by Marko and Jimmy
INNODB_FAST_SHUTDOWN IS 2
Problem:
When innodb_fast_shutdown is set to 2 and the master thread enters
flush loop, under some circumstances it will not be able to exit it.
This may lead to a shutdown hanging.
This is happening because of the following:
1. In the flush_loop block of code, if the srv_fast_shutdown is
equal to 2 (very fast shutdown), then we do not flush dirty
pages in buffer pool to disk.
2. In the same flush_loop block of code, if the number of dirty
pages is more than user specified limit, we go to step 1.
This results in infinite loop.
Solution:
When we are in the process of doing a very fast shutdown, don't
do step 2 above.
rb#2328 approved by Inaam.
When a record contains no user data bytes (such as when the PRIMARY
KEY is an empty string and all secondary index fields are NULL or the
empty string), page_zip_decompress() could fail to set the record
heap_no correctly.
page_zip_decompress_node_ptrs(), page_zip_decompress_sec(),
page_zip_decompress_clust(): Set heap_no also at the end of the
compressed data stream.
rb#2448 approved by Jimmy Yang and Inaam Rana
AFTER A ROW IS READ
Approved by: Sunny Bains rb://2425
Don't release concurrency tickets when asked to release
btr_search_latch. This is a 5.5 only bug. It is already
fixed in 5.6 upwards.
mysql-test/suite/maria/maria-autozerofill.result:
Updated result
mysql-test/suite/maria/maria-autozerofill.test:
Added test that zerofilled table should not give any warnings when table is used
mysql-test/suite/maria/maria-recovery2.result:
More tests to make it easier to find bugs
mysql-test/suite/maria/maria-recovery2.test:
More tests to make it easier to find bugs
storage/maria/ha_maria.cc:
Set create_trid after repair (needed if table was moved from another system)
Set uuid after repair (needed if table was moved from another system)
storage/maria/maria_chk.c:
Reset share->state.create_trid if we reset share->state.create_rename_lsn.
Make the table moveable
== Analysis ==
Both change buffer pages and on-disk indexes pages are marked as
FIL_PAGE_INDEX. So all ibuf index pages will classify as INDEX with NULL
table_name and index_name.
== Solution ==
A new page type for ibuf data pages named I_S_PAGE_TYPE_IBUF is defined. All
these pages whose index_id equal (DICT_IBUF_ID_MIN + IBUF_SPACE_ID) will
classify as IBUF_DATA instead of INDEX in INNODB_BUFFER_PAGE
and INNODB_BUFFER_PAGE_LRU.
This fix is only for IS reporting, both on-disk and buffer pool structures
keep unchanged.
Approved by both Marko and Jimmy. rb#2334