Loading Docs/manual.texi +9 −5 Original line number Diff line number Diff line Loading @@ -23510,17 +23510,21 @@ will be logged in the execution order. Updates to non-transactional tables are stored in the binary log immediately after execution. For transactional tables such as @code{BDB} or @code{InnoDB} tables, all updates (@code{UPDATE}, @code{DELETE} or @code{INSERT}) that change tables are cached until a @code{COMMIT}. or @code{INSERT}) that change tables are cached until a @code{COMMIT} command is sent to the server. At this point mysqld writes the whole transaction to the binary log before the @code{COMMIT} is executed. Every thread will, on start, allocate a buffer of @code{binlog_cache_size} to buffer queries. If a query is bigger than this, the thread will open a temporary file to handle the bigger cache. The temporary file will a temporary file to store the transcation. The temporary file will be deleted when the thread ends. The @code{max_binlog_cache_size} can be used to restrict the total size used to cache a multi-query transaction. The @code{max_binlog_cache_size} (default 4G) can be used to restrict the total size used to cache a multi-query transaction. If a transaction is bigger than this it will fail and roll back. If you are using the update or binary log, concurrent inserts will not work together with @code{CREATE ... SELECT} and @code{INSERT ... SELECT}. be converted to normal inserts when using @code{CREATE ... SELECT} and @code{INSERT ... SELECT}. This is to ensure that you can recreate an exact copy of your tables by applying the log on a backup. mysql-test/mysql-test-run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -468,7 +468,7 @@ fi MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v --skip-safemalloc \ --tmpdir=$MYSQL_TMP_DIR" --tmpdir=$MYSQL_TMP_DIR --port=$MASTER_MYPORT" MYSQL_TEST_BIN=$MYSQL_TEST MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS" GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client Loading mysql-test/r/func_test.result +0 −14 Original line number Diff line number Diff line Loading @@ -46,20 +46,6 @@ select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; 1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL 0 1 1 0 NULL NULL NULL drop table if exists t1,t2; CREATE TABLE t1 ( start datetime default NULL) TYPE=MyISAM; INSERT INTO t1 VALUES ('2002-10-21 00:00:00'); INSERT INTO t1 VALUES ('2002-10-28 00:00:00'); INSERT INTO t1 VALUES ('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL) TYPE=MyISAM; INSERT INTO t2 VALUES (20021029165106,20021105164731); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 drop table if exists t1,t2; select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1; 5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1 0 1 Loading mysql-test/r/func_time.result +16 −1 Original line number Diff line number Diff line drop table if exists t1,t2; drop table if exists t1,t2,t3; select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29"); from_days(to_days("960101")) to_days(960201)-to_days("19960101") to_days(date_add(curdate(), interval 1 day))-to_days(curdate()) weekday("1997-11-29") 1996-01-01 31 1 5 Loading Loading @@ -372,3 +372,18 @@ select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c) 0 0 0 0 0 drop table t1; CREATE TABLE t1 ( start datetime default NULL); INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL); INSERT INTO t2 VALUES (20021029165106,20021105164731); CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL); INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31"); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; start ctime1 ctime2 select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 select * from t1, t3 where t1.start between t3.ctime1 and t3.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31 drop table t1,t2,t3; mysql-test/t/func_test.test +0 −10 Original line number Diff line number Diff line Loading @@ -17,16 +17,6 @@ select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2, select -1.49 or -1.49,0.6 or 0.6; select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; drop table if exists t1,t2; CREATE TABLE t1 ( start datetime default NULL) TYPE=MyISAM; INSERT INTO t1 VALUES ('2002-10-21 00:00:00'); INSERT INTO t1 VALUES ('2002-10-28 00:00:00'); INSERT INTO t1 VALUES ('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL) TYPE=MyISAM; INSERT INTO t2 VALUES (20021029165106,20021105164731); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; drop table if exists t1,t2; # # Wrong usage of functions Loading Loading
Docs/manual.texi +9 −5 Original line number Diff line number Diff line Loading @@ -23510,17 +23510,21 @@ will be logged in the execution order. Updates to non-transactional tables are stored in the binary log immediately after execution. For transactional tables such as @code{BDB} or @code{InnoDB} tables, all updates (@code{UPDATE}, @code{DELETE} or @code{INSERT}) that change tables are cached until a @code{COMMIT}. or @code{INSERT}) that change tables are cached until a @code{COMMIT} command is sent to the server. At this point mysqld writes the whole transaction to the binary log before the @code{COMMIT} is executed. Every thread will, on start, allocate a buffer of @code{binlog_cache_size} to buffer queries. If a query is bigger than this, the thread will open a temporary file to handle the bigger cache. The temporary file will a temporary file to store the transcation. The temporary file will be deleted when the thread ends. The @code{max_binlog_cache_size} can be used to restrict the total size used to cache a multi-query transaction. The @code{max_binlog_cache_size} (default 4G) can be used to restrict the total size used to cache a multi-query transaction. If a transaction is bigger than this it will fail and roll back. If you are using the update or binary log, concurrent inserts will not work together with @code{CREATE ... SELECT} and @code{INSERT ... SELECT}. be converted to normal inserts when using @code{CREATE ... SELECT} and @code{INSERT ... SELECT}. This is to ensure that you can recreate an exact copy of your tables by applying the log on a backup.
mysql-test/mysql-test-run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -468,7 +468,7 @@ fi MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v --skip-safemalloc \ --tmpdir=$MYSQL_TMP_DIR" --tmpdir=$MYSQL_TMP_DIR --port=$MASTER_MYPORT" MYSQL_TEST_BIN=$MYSQL_TEST MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS" GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client Loading
mysql-test/r/func_test.result +0 −14 Original line number Diff line number Diff line Loading @@ -46,20 +46,6 @@ select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; 1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL 0 1 1 0 NULL NULL NULL drop table if exists t1,t2; CREATE TABLE t1 ( start datetime default NULL) TYPE=MyISAM; INSERT INTO t1 VALUES ('2002-10-21 00:00:00'); INSERT INTO t1 VALUES ('2002-10-28 00:00:00'); INSERT INTO t1 VALUES ('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL) TYPE=MyISAM; INSERT INTO t2 VALUES (20021029165106,20021105164731); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 drop table if exists t1,t2; select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1; 5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1 0 1 Loading
mysql-test/r/func_time.result +16 −1 Original line number Diff line number Diff line drop table if exists t1,t2; drop table if exists t1,t2,t3; select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29"); from_days(to_days("960101")) to_days(960201)-to_days("19960101") to_days(date_add(curdate(), interval 1 day))-to_days(curdate()) weekday("1997-11-29") 1996-01-01 31 1 5 Loading Loading @@ -372,3 +372,18 @@ select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c) 0 0 0 0 0 drop table t1; CREATE TABLE t1 ( start datetime default NULL); INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL); INSERT INTO t2 VALUES (20021029165106,20021105164731); CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL); INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31"); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; start ctime1 ctime2 select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 20021029165106 20021105164731 select * from t1, t3 where t1.start between t3.ctime1 and t3.ctime2; start ctime1 ctime2 2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31 drop table t1,t2,t3;
mysql-test/t/func_test.test +0 −10 Original line number Diff line number Diff line Loading @@ -17,16 +17,6 @@ select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2, select -1.49 or -1.49,0.6 or 0.6; select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; drop table if exists t1,t2; CREATE TABLE t1 ( start datetime default NULL) TYPE=MyISAM; INSERT INTO t1 VALUES ('2002-10-21 00:00:00'); INSERT INTO t1 VALUES ('2002-10-28 00:00:00'); INSERT INTO t1 VALUES ('2002-11-04 00:00:00'); CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL) TYPE=MyISAM; INSERT INTO t2 VALUES (20021029165106,20021105164731); select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2; select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2; drop table if exists t1,t2; # # Wrong usage of functions Loading