| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
CREATE function.
The cause of the issue is when DROP DATABASE takes
metadata lock and is in progress through it's
execution, a concurrently running CREATE FUNCTION checks
for the existence of database which it succeeds and then it
waits on the metadata lock. Once DROP DATABASE writes to
BINLOG and finally releases the metadata lock on schema
object, the CREATE FUNCTION waiting on metadata lock
gets in it's code path and succeeds and writes to binlog.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Fixing Field_time::get_equal_const_item() to pass TIME_FUZZY_DATES
and TIME_INVALID_DATES to get_time_with_conversion().
This is needed to make the recursively called Item::get_date() return
non-NULL values on garbage input. This makes Field_time::get_equal_const_item()
work consistently with how Item::val_time_packed() works.
2. Fixing Item::get_date() to return TIME'00:00:00' rather than
DATE'0000-00-00' on empty or garbage input when:
- TIME_FUZZY_DATES is enabled
- The caller requested a TIME value (by passing TIME_TIME_ONLY).
This is needed to avoid conversion of DATE'0000-00-00' to TIME
in get_time_with_conversion(), which would erroneously try to subtract
CURRENT_DATE from DATE'0000-00-00' and return TIME'-838:59:59' rather than
the desired zero value TIME'00:00:00'.
#1 and #2 fix these type of scripts to return one row with both
MyISAM and InnoDB, with and without an index on t1.b:
CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b));
INSERT INTO t1 VALUES ('','00:00:00',0);
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT * FROM t1 IGNORE INDEX(b) WHERE b='';
SELECT * FROM t1 IGNORE INDEX(b) WHERE a=b;
Additionally, #1 and #2 fix the originally reported in MDEV-9604 crash
in Item::save_in_field(), because now execution goes through a different
path, so save_in_field() is called for a Item_time_literal instance
(which is non-NULL) rather than a Item_cache_str instance (which could
return NULL without setting null_value).
3. Fixing Field_temporal::get_equal_const_item_datetime() to enable
equal field propagation for DATETIME and TIMESTAMP in case of
comparison (e.g. when ANY_SUBST), for symmetry with
Field_newdate::get_equal_const_item(). This fixes a number of problems
with empty set returned on comparison to empty/garbage input.
Now all SELECT queries in this script return one row for MyISAM and InnoDB,
with and without an index on t1.b:
CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b));
INSERT INTO t1 VALUES ('','0000-00-00 00:00:00',0);
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT * FROM t1 IGNORE INDEX(b) WHERE b='';
SELECT * FROM t1 IGNORE INDEX(b) WHERE a=b;
|
| |
|
| |
|
| |
|
|
|
|
| |
Make role statements work with the PREPARE keyword.
|
|
|
|
|
|
|
| |
file_key_management plugin
Code was assuming that the keys file would contain at least one valid
key. This caused a Dynamic_array::at(0) call that lead to the crash.
|
| |
|
|
|
|
|
|
|
|
|
| |
LOG-SLOW-SLAVE-STATEMENTS NOT DISPLAYED.
These parameters were moved from the command line options to
the system variables section. Treatment of the
opt_log_slow_slave_statements changed to let the
dynamic change of the variable.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
delete deferred events after they're executed
(otherwise they can be executed again for a sub-statement)
See also
commit 0e78d1d
Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com>
Date: Wed Mar 20 11:20:47 2013 +0530
BUG#15850951-DUPLICATE ERROR IN REPLICATION WITH SLAVE
TRIGGERS AND AUTO INCREMENT
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
modified: storage/connect/value.cpp
- Fix compile error of MDEV-9603
modified: storage/connect/tabmysql.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was because Tablist can be NULL when no lacal tables are in the list.
modified: storage/connect/tabtbl.cpp
modified: storage/connect/mysql-test/connect/r/tbl.result
modified: storage/connect/mysql-test/connect/t/tbl.test
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
modified: storage/connect/tabmysql.cpp
- Test invalid CSV separator when creating the table (MDEV-9714)
modified: storage/connect/ha_connect.cc
- Stop using SQLDescribeParam anymore
modified: storage/connect/odbconn.cpp
- Fix MDEV-9723 Regression due to calling Cardinality instead of
GetMaxSize in info.
modified: storage/connect/tabtbl.h
modified: storage/connect/mysql-test/connect/r/tbl.result
modified: storage/connect/mysql-test/connect/t/tbl.test
- Typo
modified: storage/connect/tabodbc.cpp
|
| | |
| | |
| | |
| | | |
10.1 part of the fix
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | | |
10.0 part of the fix
|
| | |\ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
5.5 part of the fix
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
don't allocate all the stack, leave some stack for
function calls.
To test I added the following line:
alloca_size = available_stack_size() - X
at X=4096 or less mysqld crashed, at 8192 mtr test passed.
|
| | | | |
| | | | |
| | | | |
| | | | | |
remove erroneous free() call
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
--mem
The test created a file in location relative to the datadir
(a few levels above datadir).
The file was created by MariaDB server (via INTO OUTFILE), and
later removed by mysqltest (via remove_file). The problem is that
when the vardir is a symlink, MariaDB server and mysqltest can
resolve such paths differently. MariaDB server would return back
to where the symlink is located, while mysqltest would go above
the real directory. For example, if the test is run with --mem,
and /bld/5.5/mysql-test/var points at /dev/shm/var_auto_X, then
SELECT INTO OUTFILE created a file in /bld/5.5/mysql-test , but
remove_file would look for it in /dev/shm/.
The test is re-written so that all paths are resolved in perl,
the logic itself hasn't changed.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
testing framework
Debian tests are run in 2017, update the test to
use 2027 as a "future".
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
update main.delayed test after 38b89a61
ALTER TABLE ... COMMENT is no longer blocking,
use a different ALTER TABLE variant.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixed more cases for MDEV-6282
|
| | | | |
| | | | |
| | | | |
| | | | | |
don't strcpy a string to itself
|
| | | | |
| | | | |
| | | | |
| | | | | |
s/Execute/Query/ to account for --ps-protocol
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
typo. the code was not matching the comment
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
fix a buffer overflow in extension_based_table_discovery
(that only happens in debug builds)
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Remove Linuxism.
Works fine with a POSIX-compat shell
|
| | | | |
| | | | |
| | | | |
| | | | | |
don't crash in debug builds. issue an error message on corrupt event
|
| | | | | |
|
| | |\ \ \
| | | | | |
| | | | | | |
Update sponsors
|
| | |/ / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It could have happened that one of previous tests already executed
buffer pool dump and set the status variable value, so when it's been
checked, the check passes too early, before the dump starts and
the dump file is created. See more detailed explanation in MDEV-9713.
Fixed by waiting for the current time to change in case it equals
to the timestamp in the status variable, and then checking that
the status variable not only matches the expected pattern, but also
differs from the previous value, whatever it was.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
a=8366 and b>=5 and b<=5;
In row_search_for_mysql function on XtraDB there was a old logic
where null bytes were inited. This caused server to think that
key value is null and continue on incorrect path.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Logrotate script assumed an error if mysqladmin failed to connect to server
and there's mysqld process exists. However there can be non-system instance of
mysqld running (e.g. in docker) making this assumption wrong.
Check pid file existance instead.
|
| | |\ \ \
| | | | | |
| | | | | | |
Update AskMonty and Atlassian references to MariaDB
|
| | |/ / / |
|
| | |\ \ \
| | | | | |
| | | | | | |
Fix spelling: occurred, execute, which etc
|
| | |/ / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There was a race between end_slave() and cleanup code at the end of
handle_slave_sql(). This could cause access to master_info_index and
global_rpl_thread_pool after they had been freed.
Fix by skipping that cleanup if server shutdown is in progress, as is done
in other parts of the code as well (the cleanup, which stops worker threads
that are not needed anymore, is redundant anyway when the server is shutting
down).
|
| | |\ \ \
| | | | | |
| | | | | | |
MDEV-9643: Don't emit any "deb-systemd-helper not found" warnings
|
| | |/ / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
buildbot
Index access becomes range every once in a while. Masked the value in addition
to other already masked columns
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
MariaDB-server-10.1 should obsolete MariaDB-Galera-server
|