modified:
storage/connect/ha_connect.cc
storage/connect/value.cpp
- Fix the way GetPlug works (was not updating xp)
modified:
storage/connect/ha_connect.cc
handler to retrieve write-only fields to be able to compare
records and detect data change.
modified:
storage/connect/ha_connect.cc
- Preparing UPDATE ad DELETE on ODBC tables
(new function added but not used yet)
modified:
storage/connect/tabodbc.cpp
storage/connect/tabodbc.h
- Character set code & tests from Alexander Barkov
- Integration with ALTER TABLE, REPAIR and open_table from Monty
The problem was that MySQL 5.6 added some croatian and vitanamese character set collations that are incompatible with MariaDB.
The fix is to move the MariaDB conflicting collation numbers out of the region that MySQL is likely to use.
mysql_upgrade, REPAIR TABLE or ALTER TABLE will fix the collations.
If one tries to access and old incompatible table, one will get the error "Table upgrade required...."
After this patch, MariaDB supports all the MySQL character set collations and the old MariaDB croatian collations, which are closer to the latest standard than the MySQL versions.
New character sets:
ucs2_croatian_mysql561_uca_ci
utf8_croatian_mysql561_uca_ci
utf16_croatian_mysql561_uca_ci
utf32_croatian_mysql561_uca_ci
utf8mb4_croatian_mysql561_uca_ci
Other things:
- Fixed some compiler warnings
- mysql_upgrade prints information about repaired tables.
- Increased version number
VERSION:
Increased VERSION number
client/mysqlcheck.c:
Print repaired table name when using --verbose
include/m_ctype.h:
Add new MariaDB collation regions that are not likely to conflict with MySQL
include/my_base.h:
Added flag to detect if table was opened for ALTER TABLE
mysql-test/r/ctype_ldml.result:
Updated result
mysql-test/r/ctype_uca.result:
Updated result
mysql-test/r/ctype_upgrade.result:
Updated result
mysql-test/r/ctype_utf16_uca.result:
Updated result
mysql-test/r/ctype_utf32_uca.result:
Updated result
mysql-test/r/ctype_utf8mb4_uca.result:
Updated result
mysql-test/std_data/ctype_upgrade:
Test files for testing upgrading of conflicting collations
mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result:
New collations added
mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result:
New collations added
mysql-test/suite/innodb/r/innodb_ctype_ldml.result:
Updated test result
mysql-test/suite/innodb/t/innodb_ctype_ldml.test:
Updated test result
mysql-test/suite/plugins/r/show_all_plugins.result:
Updated version number
mysql-test/suite/roles/create_and_drop_role_invalid_user_table.result:
Updated version number
mysql-test/t/ctype_ldml.test:
Updated test
mysql-test/t/ctype_uca.test:
Testing of new collations
mysql-test/t/ctype_upgrade.test:
Testing of upgrading tables with old collations
The test ensures that:
- We will get an error if we try to open a table with old collations.
- CHECK TABLE will detect that the table needs to be upgraded.
- ALTER TABLE and REPAIR will fix the table.
- mysql_upgrade works as expected
mysql-test/t/ctype_utf16_uca.test:
Testing of new collations
mysql-test/t/ctype_utf32_uca.test:
Testing of new collations
mysql-test/t/ctype_utf8mb4_uca.test:
Testing of new collations
mysys/charset-def.c:
Added new character sets
mysys/charset.c:
Always give an error, if requested, if a character set didn't exist
sql/handler.cc:
- Added upgrade_collation() to check if collation is compatible with old version
- check_collation_compatibility() checks if we are using an old collation from MariaDB 5.5 or MySQL 5.6
- ha_check_for_upgrade() returns HA_ADMIN_NEEDS_ALTER if we have an incompatible collation
sql/handler.h:
Added new prototypes
sql/sql_table.cc:
- Mark that tables are opened for ALTER TABLE
- If table needs to be upgraded, ensure we are not using online alter table.
sql/table.cc:
- If we are using an old incompatible collation, change to use the new one and mark table as incompatible.
- Give an error if we try to open an incompatible table.
sql/table.h:
Added error that table needs to be rebuild
storage/connect/ha_connect.cc:
Fixed compiler warning
strings/ctype-uca.c:
New character sets
modified:
storage/connect/filamtxt.h
storage/connect/filamzip.h
storage/connect/myconn.h
storage/connect/plgdbsem.h
storage/connect/taboccur.h
storage/connect/tabutil.h
storage/connect/tabxcl.h
- Add the possibility to execute several commands in one query of
an EXECSRC tables (using ...where command in (cmd list);)
modified:
storage/connect/ha_connect.cc
storage/connect/odbconn.cpp
storage/connect/odbconn.h
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/tabodbc.cpp
storage/connect/tabodbc.h
storage/connect/tabtbl.cpp
storage/connect/tabwmi.cpp
storage/connect/xtable.h
- Enhance retrieving column definitions in discovery:
From SRCDEF adding LIMIT 0 to the executed query
Testing if type, length, and precision are compatible
Making the distinction between CHAR and VARCHAR
modified:
storage/connect/ha_connect.cc
storage/connect/myconn.cpp
storage/connect/mysql-test/connect/r/mysql.result
storage/connect/mysql-test/connect/r/odbc_sqlite3.result
storage/connect/mysql-test/connect/r/odbc_sqlite3_grant.result
storage/connect/myutil.h
storage/connect/myutil.h
storage/connect/odbconn.cpp
storage/connect/value.h
- Replace test on args[i]->type() by args[i]->field_type() in ha_connect::CheckCond.
This to take care of cached items generated by executing a query in a procedure.
modified:
storage/connect/ha_connect.cc
storage/connect/mysql-test/connect/r/xml.result
by Valgrind. This concerns the XML libxml2 support.
modified:
storage/connect/domdoc.cpp
storage/connect/domdoc.h
storage/connect/ha_connect.cc
storage/connect/libdoc.cpp
storage/connect/plgdbsem.h
storage/connect/plgxml.h
storage/connect/tabxml.cpp
storage/connect/tabxml.h
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
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.
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
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
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.
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
- 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 ‘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
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
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
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
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