mirror of
https://github.com/MariaDB/server.git
synced 2025-07-16 00:42:55 +03:00
Merge branch '10.6' into 10.8
This commit is contained in:
@ -412,3 +412,44 @@ select if( @stamp1 = @stamp2, "correct", "wrong");
|
|||||||
if( @stamp1 = @stamp2, "correct", "wrong")
|
if( @stamp1 = @stamp2, "correct", "wrong")
|
||||||
correct
|
correct
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-31164 default current_timestamp() not working when used INSERT ON DUPLICATE KEY in some cases
|
||||||
|
#
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 0:0:0');
|
||||||
|
create table t1 (pk integer primary key, val varchar(20) not null, ts timestamp);
|
||||||
|
insert t1 (pk, val) values(1, 'val1');
|
||||||
|
select * from t1;
|
||||||
|
pk val ts
|
||||||
|
1 val1 2000-10-20 00:00:00
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 1:0:0');
|
||||||
|
insert t1 (pk, val) select 2, 'val3' union select 3, 'val4'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
pk val ts
|
||||||
|
1 val1 2000-10-20 00:00:00
|
||||||
|
2 val3 2000-10-20 01:00:00
|
||||||
|
3 val4 2000-10-20 01:00:00
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 2:0:0');
|
||||||
|
insert t1 (pk, val) select 1, 'val1' union select 4, 'val2'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
pk val ts
|
||||||
|
1 val1 2000-10-20 02:00:00
|
||||||
|
2 val3 2000-10-20 01:00:00
|
||||||
|
3 val4 2000-10-20 01:00:00
|
||||||
|
4 val2 2000-10-20 02:00:00
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 3:0:0');
|
||||||
|
insert t1 (pk, val) select 5, 'val1' union select 1, 'val2'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
pk val ts
|
||||||
|
1 val1 2000-10-20 03:00:00
|
||||||
|
2 val3 2000-10-20 01:00:00
|
||||||
|
3 val4 2000-10-20 01:00:00
|
||||||
|
4 val2 2000-10-20 02:00:00
|
||||||
|
5 val1 2000-10-20 03:00:00
|
||||||
|
drop table t1;
|
||||||
|
set timestamp=default;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
||||||
|
@ -311,3 +311,29 @@ insert into t1(f1) values(1) on duplicate key update f1=1;
|
|||||||
select @stamp2:=f2 from t1;
|
select @stamp2:=f2 from t1;
|
||||||
select if( @stamp1 = @stamp2, "correct", "wrong");
|
select if( @stamp1 = @stamp2, "correct", "wrong");
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-31164 default current_timestamp() not working when used INSERT ON DUPLICATE KEY in some cases
|
||||||
|
--echo #
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 0:0:0');
|
||||||
|
create table t1 (pk integer primary key, val varchar(20) not null, ts timestamp);
|
||||||
|
insert t1 (pk, val) values(1, 'val1');
|
||||||
|
select * from t1;
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 1:0:0');
|
||||||
|
insert t1 (pk, val) select 2, 'val3' union select 3, 'val4'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 2:0:0');
|
||||||
|
insert t1 (pk, val) select 1, 'val1' union select 4, 'val2'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
set timestamp=unix_timestamp('2000-10-20 3:0:0');
|
||||||
|
insert t1 (pk, val) select 5, 'val1' union select 1, 'val2'
|
||||||
|
on duplicate key update ts=now();
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
set timestamp=default;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
@ -6951,6 +6951,24 @@ create algorithm=merge view v as
|
|||||||
select * from t1 left join t2 on t1.a=t2.b and t1.a in (select d from t3);
|
select * from t1 left join t2 on t1.a=t2.b and t1.a in (select d from t3);
|
||||||
ERROR 42S22: Unknown column 'd' in 'field list'
|
ERROR 42S22: Unknown column 'd' in 'field list'
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-31189: Server crash or assertion failure in upon 2nd
|
||||||
|
# execution of PS with views and HAVING
|
||||||
|
#
|
||||||
|
CREATE TABLE t (f INT);
|
||||||
|
INSERT INTO t VALUES (1),(2);
|
||||||
|
CREATE VIEW v1 AS SELECT 1 AS a;
|
||||||
|
CREATE VIEW v2 AS SELECT a FROM v1;
|
||||||
|
PREPARE stmt FROM "SELECT * FROM v2 HAVING 1 IN (SELECT f FROM t)";
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP VIEW v2;
|
||||||
|
DROP TABLE t;
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
#
|
#
|
||||||
# MDEV-13115: SELECT .. SKIP LOCKED - ensure SHOW CREATE VIEW is correct
|
# MDEV-13115: SELECT .. SKIP LOCKED - ensure SHOW CREATE VIEW is correct
|
||||||
|
@ -6695,6 +6695,25 @@ create algorithm=merge view v as
|
|||||||
|
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-31189: Server crash or assertion failure in upon 2nd
|
||||||
|
--echo # execution of PS with views and HAVING
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t (f INT);
|
||||||
|
INSERT INTO t VALUES (1),(2); # Optional, fails either way
|
||||||
|
CREATE VIEW v1 AS SELECT 1 AS a;
|
||||||
|
CREATE VIEW v2 AS SELECT a FROM v1;
|
||||||
|
|
||||||
|
PREPARE stmt FROM "SELECT * FROM v2 HAVING 1 IN (SELECT f FROM t)";
|
||||||
|
EXECUTE stmt;
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP VIEW v2;
|
||||||
|
DROP TABLE t;
|
||||||
|
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -4212,6 +4212,7 @@ bool select_insert::store_values(List<Item> &values)
|
|||||||
DBUG_ENTER("select_insert::store_values");
|
DBUG_ENTER("select_insert::store_values");
|
||||||
bool error;
|
bool error;
|
||||||
|
|
||||||
|
table->reset_default_fields();
|
||||||
if (fields->elements)
|
if (fields->elements)
|
||||||
error= fill_record_n_invoke_before_triggers(thd, table, *fields, values,
|
error= fill_record_n_invoke_before_triggers(thd, table, *fields, values,
|
||||||
true, TRG_EVENT_INSERT);
|
true, TRG_EVENT_INSERT);
|
||||||
|
12
sql/table.cc
12
sql/table.cc
@ -9515,8 +9515,13 @@ void TABLE_LIST::wrap_into_nested_join(List<TABLE_LIST> &join_list)
|
|||||||
|
|
||||||
static inline bool derived_table_optimization_done(TABLE_LIST *table)
|
static inline bool derived_table_optimization_done(TABLE_LIST *table)
|
||||||
{
|
{
|
||||||
return table->derived &&
|
SELECT_LEX_UNIT *derived= (table->derived ?
|
||||||
(table->derived->is_excluded() ||
|
table->derived :
|
||||||
|
(table->view ?
|
||||||
|
&table->view->unit:
|
||||||
|
NULL));
|
||||||
|
return derived &&
|
||||||
|
(derived->is_excluded() ||
|
||||||
table->is_materialized_derived());
|
table->is_materialized_derived());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9578,8 +9583,7 @@ bool TABLE_LIST::init_derived(THD *thd, bool init_view)
|
|||||||
set_derived();
|
set_derived();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_view() ||
|
if (!derived_table_optimization_done(this))
|
||||||
!derived_table_optimization_done(this))
|
|
||||||
{
|
{
|
||||||
/* A subquery might be forced to be materialized due to a side-effect. */
|
/* A subquery might be forced to be materialized due to a side-effect. */
|
||||||
if (!is_materialized_derived() && unit->can_be_merged() &&
|
if (!is_materialized_derived() && unit->can_be_merged() &&
|
||||||
|
@ -30,6 +30,11 @@ IF(WITH_VALGRIND)
|
|||||||
ADD_DEFINITIONS(-DROCKSDB_VALGRIND_RUN=1)
|
ADD_DEFINITIONS(-DROCKSDB_VALGRIND_RUN=1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(-Duint64_t=u_int64_t)
|
||||||
|
ADD_DEFINITIONS(-Duint32_t=u_int32_t)
|
||||||
|
ADD_DEFINITIONS(-Duint16_t=u_int16_t)
|
||||||
|
ADD_DEFINITIONS(-Duint8_t=u_int8_t)
|
||||||
|
|
||||||
# We've had our builders hang during the build process. This prevents MariaRocks
|
# We've had our builders hang during the build process. This prevents MariaRocks
|
||||||
# to be built on 32 bit intel OS kernels.
|
# to be built on 32 bit intel OS kernels.
|
||||||
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "i[36]86")
|
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "i[36]86")
|
||||||
|
Reference in New Issue
Block a user