mirror of
https://github.com/MariaDB/server.git
synced 2025-07-02 14:22:51 +03:00
Merge 10.4 into 10.5
This commit is contained in:
@ -2218,3 +2218,72 @@ SCHEMA_NAME
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
#
|
||||
# MDEV-21201:No records produced in information_schema query,
|
||||
# depending on projection
|
||||
#
|
||||
create table t (i int, constraint a check (i > 0));
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
join information_schema.CHECK_CONSTRAINTS cc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
|
||||
mysql global_priv Priv json_valid(`Priv`)
|
||||
test t a `i` > 0
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.CHECK_CONSTRAINTS cc
|
||||
join information_schema.TABLE_CONSTRAINTS tc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
|
||||
mysql global_priv Priv json_valid(`Priv`)
|
||||
test t a `i` > 0
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
NATURAL join information_schema.CHECK_CONSTRAINTS cc
|
||||
;
|
||||
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
|
||||
mysql global_priv Priv json_valid(`Priv`)
|
||||
test t a `i` > 0
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.CHECK_CONSTRAINTS cc
|
||||
NATURAL join information_schema.TABLE_CONSTRAINTS tc
|
||||
;
|
||||
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
|
||||
mysql global_priv Priv json_valid(`Priv`)
|
||||
test t a `i` > 0
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE,
|
||||
tc.CONSTRAINT_CATALOG,
|
||||
tc.CONSTRAINT_SCHEMA
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
join information_schema.CHECK_CONSTRAINTS cc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE CONSTRAINT_CATALOG CONSTRAINT_SCHEMA
|
||||
mysql global_priv Priv json_valid(`Priv`) def mysql
|
||||
test t a `i` > 0 def test
|
||||
drop table t;
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
@ -1920,3 +1920,70 @@ SELECT SCHEMA_NAME from information_schema.schemata where schema_name=REPEAT('a'
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-21201:No records produced in information_schema query,
|
||||
--echo # depending on projection
|
||||
--echo #
|
||||
|
||||
create table t (i int, constraint a check (i > 0));
|
||||
|
||||
--disable_warnings
|
||||
--sorted_result
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
join information_schema.CHECK_CONSTRAINTS cc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
--sorted_result
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.CHECK_CONSTRAINTS cc
|
||||
join information_schema.TABLE_CONSTRAINTS tc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
--sorted_result
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
NATURAL join information_schema.CHECK_CONSTRAINTS cc
|
||||
;
|
||||
--sorted_result
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE
|
||||
from information_schema.CHECK_CONSTRAINTS cc
|
||||
NATURAL join information_schema.TABLE_CONSTRAINTS tc
|
||||
;
|
||||
--sorted_result
|
||||
select
|
||||
tc.TABLE_SCHEMA,
|
||||
tc.TABLE_NAME,
|
||||
cc.CONSTRAINT_NAME,
|
||||
cc.CHECK_CLAUSE,
|
||||
tc.CONSTRAINT_CATALOG,
|
||||
tc.CONSTRAINT_SCHEMA
|
||||
from information_schema.TABLE_CONSTRAINTS tc
|
||||
join information_schema.CHECK_CONSTRAINTS cc
|
||||
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
|
||||
;
|
||||
--enable_warnings
|
||||
|
||||
drop table t;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
@ -29,6 +29,7 @@ SET DEBUG_SYNC='foreign_constraint_check_for_update SIGNAL fk WAIT_FOR go';
|
||||
DELETE FROM parent;
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR fk';
|
||||
SET lock_wait_timeout=1;
|
||||
TRUNCATE TABLE child;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SET DEBUG_SYNC='now SIGNAL go';
|
||||
|
@ -37,6 +37,7 @@ send DELETE FROM parent;
|
||||
|
||||
connection default;
|
||||
SET DEBUG_SYNC='now WAIT_FOR fk';
|
||||
SET lock_wait_timeout=1;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
TRUNCATE TABLE child;
|
||||
SET DEBUG_SYNC='now SIGNAL go';
|
||||
|
@ -9088,6 +9088,8 @@ void add_join_natural(TABLE_LIST *a, TABLE_LIST *b, List<String> *using_fields,
|
||||
SELECT_LEX *lex)
|
||||
{
|
||||
b->natural_join= a;
|
||||
a->part_of_natural_join= TRUE;
|
||||
b->part_of_natural_join= TRUE;
|
||||
lex->prev_join_using= using_fields;
|
||||
}
|
||||
|
||||
|
@ -8126,6 +8126,9 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list)
|
||||
else
|
||||
all_items= thd->free_list;
|
||||
|
||||
if (table_list->part_of_natural_join)
|
||||
bitmap_set_all(&bitmap);
|
||||
else
|
||||
mark_all_fields_used_in_query(thd, fields_info, &bitmap, all_items);
|
||||
|
||||
TMP_TABLE_PARAM *tmp_table_param = new (thd->mem_root) TMP_TABLE_PARAM;
|
||||
|
@ -2237,6 +2237,7 @@ struct TABLE_LIST
|
||||
parsing 'this' is a NATURAL/USING join iff (natural_join != NULL).
|
||||
*/
|
||||
TABLE_LIST *natural_join;
|
||||
bool part_of_natural_join;
|
||||
/*
|
||||
True if 'this' represents a nested join that is a NATURAL JOIN.
|
||||
For one of the operands of 'this', the member 'natural_join' points
|
||||
|
Reference in New Issue
Block a user