(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
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
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
This bug only happens with long sleep()s ( > 5 sec), and in debug version.
Analysis:
The assertion is caused by nested thd_wait_begin() calls, which is not an expected condition.
- "outer" thd_wait_begin()) , in Item_func_sleep::val_int()
- "inner" thd_wait_begin() in Interruptible_wait::wait(). This function periodically checks whether connection is still valid, via THD::is_connection(), which ends up calling vio_io_wait() with timeout parameter set to 0.
Fix is not to call thd wait callback in vio_io_wait(), if timeout parameter is 0. There is no "waiting" in this case.
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
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
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
modified:
storage/connect/connect.cc
storage/connect/tabutil.h
- Fix closing invalid tdbp in External_lock.
modified:
storage/connect/ha_connect.cc
- Fix closing null Tdbp
modified:
storage/connect/tabpivot.cpp*
- Fix regression error in table type TBL no more accepting missing
columns in sub-tables even when Accept was set to TRUE.
modified:
storage/connect/tabtbl.cpp
- Fix Tabpivot not closing the source table.
- Fix pivot.test error on Linux by specifying ENDING=2 for the expenses table.
modified:
storage/connect/mysql-test/connect/r/pivot.result
storage/connect/mysql-test/connect/t/pivot.test
storage/connect/tabpivot.cpp
storage/connect/tabpivot.h
- Fix a bug causing a crash when doing an ALTER TABLE
(because create_info->alias is NULL)
added:
storage/connect/mysql-test/connect/r/occur.result
storage/connect/mysql-test/connect/r/xcol.result
storage/connect/mysql-test/connect/t/occur.test
storage/connect/mysql-test/connect/t/xcol.test
modified:
storage/connect/ha_connect.cc
Suppose binlog file X has in its Gtid_list_event: 0-1-3,0-2-5, and suppose the
slave requests to start replicating after 0-1-3.
In this case the bug was that master would start sending events from the start
of X. This is wrong, because 0-2-4 and 0-2-5 are contained in X-1, and are
needed by the slave. So these events were lost.
On the other hand, if the slave requested 0-2-5, then it _is_ correct to start
sending from the beginning of binlog file X, because 0-2-5 is the last GTID
logged in earlier binlogs. The difference is that 0-2-5 is the last of the
GTIDs in the Gtid_list_event. The problem was that the code did not check that
the matched GTID was the last one in the list.
Fixed by checking if the gtid requested by slave that matches a gtid in the
Gtid_list_event is the last event for that domain in the list. If not, go back
to a prior binlog to ensure all needed events are sent to slave.
mysql-test/include/show_events.inc:
Backport --let $binlog_file=LAST, used by MDEV-4473 test case.