Merge 10.3 -> 10.4
This commit is contained in:
commit
eebe2090c8
3
.gitignore
vendored
3
.gitignore
vendored
@ -557,6 +557,9 @@ compile_commands.json
|
|||||||
# Clion && other JetBrains ides
|
# Clion && other JetBrains ides
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
.cache/clangd
|
||||||
|
|
||||||
|
|
||||||
client/mariadb
|
client/mariadb
|
||||||
client/mariadb-admin
|
client/mariadb-admin
|
||||||
client/mariadb-binlog
|
client/mariadb-binlog
|
||||||
|
@ -127,7 +127,11 @@ SET(ignored
|
|||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/share/pkgconfig"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/pkgconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(CPACK_RPM_server_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
SET(CPACK_RPM_server_USER_FILELIST
|
||||||
|
${ignored}
|
||||||
|
"%config(noreplace) ${INSTALL_SYSCONF2DIR}/*"
|
||||||
|
"%config(noreplace) ${INSTALL_SYSCONFDIR}/logrotate.d/mysql"
|
||||||
|
)
|
||||||
SET(CPACK_RPM_common_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONFDIR}/my.cnf")
|
SET(CPACK_RPM_common_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONFDIR}/my.cnf")
|
||||||
SET(CPACK_RPM_shared_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
SET(CPACK_RPM_shared_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
||||||
SET(CPACK_RPM_client_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
SET(CPACK_RPM_client_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
||||||
|
@ -1964,6 +1964,61 @@ call p1();
|
|||||||
ERROR 42S22: Unknown column 'a' in 'field list'
|
ERROR 42S22: Unknown column 'a' in 'field list'
|
||||||
drop procedure p1;
|
drop procedure p1;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-20411: SP containing only one SELECT with WITH clause
|
||||||
|
#
|
||||||
|
create procedure sp1 ()
|
||||||
|
with cte as (select 1 as a) select * from cte;
|
||||||
|
call sp1();
|
||||||
|
a
|
||||||
|
1
|
||||||
|
call sp1();
|
||||||
|
a
|
||||||
|
1
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (7), (1), (1), (3), (1), (5);
|
||||||
|
create procedure sp2 ()
|
||||||
|
with cte as (select * from t1) select * from cte;
|
||||||
|
call sp2();
|
||||||
|
a
|
||||||
|
3
|
||||||
|
7
|
||||||
|
1
|
||||||
|
7
|
||||||
|
1
|
||||||
|
1
|
||||||
|
3
|
||||||
|
1
|
||||||
|
5
|
||||||
|
call sp2();
|
||||||
|
a
|
||||||
|
3
|
||||||
|
7
|
||||||
|
1
|
||||||
|
7
|
||||||
|
1
|
||||||
|
1
|
||||||
|
3
|
||||||
|
1
|
||||||
|
5
|
||||||
|
create procedure sp3 ()
|
||||||
|
with cte as (select * from t1 group by a) select * from cte;
|
||||||
|
call sp3();
|
||||||
|
a
|
||||||
|
1
|
||||||
|
3
|
||||||
|
5
|
||||||
|
7
|
||||||
|
call sp3();
|
||||||
|
a
|
||||||
|
1
|
||||||
|
3
|
||||||
|
5
|
||||||
|
7
|
||||||
|
drop procedure sp1;
|
||||||
|
drop procedure sp2;
|
||||||
|
drop procedure sp3;
|
||||||
|
drop table t1;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-21673: several references to CTE that uses
|
# MDEV-21673: several references to CTE that uses
|
||||||
|
@ -1463,6 +1463,35 @@ drop procedure p1;
|
|||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-20411: SP containing only one SELECT with WITH clause
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create procedure sp1 ()
|
||||||
|
with cte as (select 1 as a) select * from cte;
|
||||||
|
call sp1();
|
||||||
|
call sp1();
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (7), (1), (1), (3), (1), (5);
|
||||||
|
|
||||||
|
create procedure sp2 ()
|
||||||
|
with cte as (select * from t1) select * from cte;
|
||||||
|
call sp2();
|
||||||
|
call sp2();
|
||||||
|
|
||||||
|
create procedure sp3 ()
|
||||||
|
with cte as (select * from t1 group by a) select * from cte;
|
||||||
|
call sp3();
|
||||||
|
call sp3();
|
||||||
|
|
||||||
|
drop procedure sp1;
|
||||||
|
drop procedure sp2;
|
||||||
|
drop procedure sp3;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -10670,6 +10670,153 @@ Warnings:
|
|||||||
Note 1003 /* select#1 */ select `v2`.`a` AS `a`,`v2`.`f` AS `f`,`v2`.`g` AS `g` from `test`.`v2` where `v2`.`a` = `v2`.`f` and `v2`.`a` = `v2`.`g`
|
Note 1003 /* select#1 */ select `v2`.`a` AS `a`,`v2`.`f` AS `f`,`v2`.`g` AS `g` from `test`.`v2` where `v2`.`a` = `v2`.`f` and `v2`.`a` = `v2`.`g`
|
||||||
drop view v1,v2;
|
drop view v1,v2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-25969: Condition pushdown into derived table doesn't work if select list uses SP
|
||||||
|
#
|
||||||
|
create function f1(a int) returns int DETERMINISTIC return (a+1);
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int,
|
||||||
|
b int,
|
||||||
|
key(a)
|
||||||
|
);
|
||||||
|
create table t2(a int);
|
||||||
|
insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
create table t3(a int);
|
||||||
|
insert into t3 select A.a + B.a* 10 + C.a * 100 from t2 A, t2 B, t2 C;
|
||||||
|
insert into t1 select a,a,a from t3;
|
||||||
|
create view v1 as
|
||||||
|
select
|
||||||
|
t1.a as col1,
|
||||||
|
f1(t1.b) as col2
|
||||||
|
from
|
||||||
|
t1;
|
||||||
|
create view v2 as
|
||||||
|
select
|
||||||
|
t1.a as col1,
|
||||||
|
f1(t1.b) as col2
|
||||||
|
from
|
||||||
|
t1;
|
||||||
|
create view v3 as
|
||||||
|
select col2, col1 from v1
|
||||||
|
union all
|
||||||
|
select col2, col1 from v2;
|
||||||
|
explain select * from v3 where col1=123;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
2 DERIVED t1 ref a a 5 const 1
|
||||||
|
3 UNION t1 ref a a 5 const 1
|
||||||
|
# This must use ref accesses for reading table t1, not full scans:
|
||||||
|
explain format=json
|
||||||
|
select * from v3 where col1=123 and col2=321;
|
||||||
|
EXPLAIN
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 1,
|
||||||
|
"table": {
|
||||||
|
"table_name": "<derived2>",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"rows": 2,
|
||||||
|
"filtered": 100,
|
||||||
|
"attached_condition": "v3.col1 = 123 and v3.col2 = 321",
|
||||||
|
"materialized": {
|
||||||
|
"query_block": {
|
||||||
|
"union_result": {
|
||||||
|
"table_name": "<union2,3>",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"query_specifications": [
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 2,
|
||||||
|
"table": {
|
||||||
|
"table_name": "t1",
|
||||||
|
"access_type": "ref",
|
||||||
|
"possible_keys": ["a"],
|
||||||
|
"key": "a",
|
||||||
|
"key_length": "5",
|
||||||
|
"used_key_parts": ["a"],
|
||||||
|
"ref": ["const"],
|
||||||
|
"rows": 1,
|
||||||
|
"filtered": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 3,
|
||||||
|
"operation": "UNION",
|
||||||
|
"table": {
|
||||||
|
"table_name": "t1",
|
||||||
|
"access_type": "ref",
|
||||||
|
"possible_keys": ["a"],
|
||||||
|
"key": "a",
|
||||||
|
"key_length": "5",
|
||||||
|
"used_key_parts": ["a"],
|
||||||
|
"ref": ["const"],
|
||||||
|
"rows": 1,
|
||||||
|
"filtered": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
drop function f1;
|
||||||
|
drop view v1,v2,v3;
|
||||||
|
drop table t1, t2,t3;
|
||||||
|
#
|
||||||
|
# Another testcase, with pushdown through GROUP BY
|
||||||
|
#
|
||||||
|
create table t1 (a int, b int);
|
||||||
|
insert into t1 values (1,1),(2,2),(3,3);
|
||||||
|
create function f1(a int) returns int DETERMINISTIC return (a+1);
|
||||||
|
create view v2(a, a2, s) as
|
||||||
|
select a, f1(a), sum(b) from t1 group by a, f1(a);
|
||||||
|
# Here,
|
||||||
|
# "(s+1) > 10" will be pushed into HAVING
|
||||||
|
# "a > 1" will be pushed all the way to the table scan on t1
|
||||||
|
# "a2>123" will be pushed into HAVING (as it refers to an SP call which
|
||||||
|
# prevents pushing it to the WHERE)
|
||||||
|
explain format=json
|
||||||
|
select * from v2 where (s+1) > 10 AND a > 1 and a2>123;
|
||||||
|
EXPLAIN
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 1,
|
||||||
|
"table": {
|
||||||
|
"table_name": "<derived2>",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"rows": 3,
|
||||||
|
"filtered": 100,
|
||||||
|
"attached_condition": "v2.s + 1 > 10 and v2.a > 1 and v2.a2 > 123",
|
||||||
|
"materialized": {
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 2,
|
||||||
|
"having_condition": "s + 1 > 10 and a2 > 123",
|
||||||
|
"filesort": {
|
||||||
|
"sort_key": "t1.a, f1(t1.a)",
|
||||||
|
"temporary_table": {
|
||||||
|
"table": {
|
||||||
|
"table_name": "t1",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"rows": 3,
|
||||||
|
"filtered": 100,
|
||||||
|
"attached_condition": "t1.a > 1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
drop view v2;
|
||||||
|
drop function f1;
|
||||||
|
drop table t1;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-14579: pushdown conditions into materialized views/derived tables
|
# MDEV-14579: pushdown conditions into materialized views/derived tables
|
||||||
|
@ -2238,6 +2238,76 @@ eval explain extended $q2;
|
|||||||
drop view v1,v2;
|
drop view v1,v2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25969: Condition pushdown into derived table doesn't work if select list uses SP
|
||||||
|
--echo #
|
||||||
|
create function f1(a int) returns int DETERMINISTIC return (a+1);
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int,
|
||||||
|
b int,
|
||||||
|
key(a)
|
||||||
|
);
|
||||||
|
|
||||||
|
create table t2(a int);
|
||||||
|
insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
|
||||||
|
create table t3(a int);
|
||||||
|
insert into t3 select A.a + B.a* 10 + C.a * 100 from t2 A, t2 B, t2 C;
|
||||||
|
|
||||||
|
insert into t1 select a,a,a from t3;
|
||||||
|
|
||||||
|
create view v1 as
|
||||||
|
select
|
||||||
|
t1.a as col1,
|
||||||
|
f1(t1.b) as col2
|
||||||
|
from
|
||||||
|
t1;
|
||||||
|
|
||||||
|
create view v2 as
|
||||||
|
select
|
||||||
|
t1.a as col1,
|
||||||
|
f1(t1.b) as col2
|
||||||
|
from
|
||||||
|
t1;
|
||||||
|
create view v3 as
|
||||||
|
select col2, col1 from v1
|
||||||
|
union all
|
||||||
|
select col2, col1 from v2;
|
||||||
|
|
||||||
|
explain select * from v3 where col1=123;
|
||||||
|
|
||||||
|
--echo # This must use ref accesses for reading table t1, not full scans:
|
||||||
|
explain format=json
|
||||||
|
select * from v3 where col1=123 and col2=321;
|
||||||
|
|
||||||
|
drop function f1;
|
||||||
|
drop view v1,v2,v3;
|
||||||
|
drop table t1, t2,t3;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Another testcase, with pushdown through GROUP BY
|
||||||
|
--echo #
|
||||||
|
create table t1 (a int, b int);
|
||||||
|
insert into t1 values (1,1),(2,2),(3,3);
|
||||||
|
|
||||||
|
create function f1(a int) returns int DETERMINISTIC return (a+1);
|
||||||
|
|
||||||
|
create view v2(a, a2, s) as
|
||||||
|
select a, f1(a), sum(b) from t1 group by a, f1(a);
|
||||||
|
|
||||||
|
--echo # Here,
|
||||||
|
--echo # "(s+1) > 10" will be pushed into HAVING
|
||||||
|
--echo # "a > 1" will be pushed all the way to the table scan on t1
|
||||||
|
--echo # "a2>123" will be pushed into HAVING (as it refers to an SP call which
|
||||||
|
--echo # prevents pushing it to the WHERE)
|
||||||
|
explain format=json
|
||||||
|
select * from v2 where (s+1) > 10 AND a > 1 and a2>123;
|
||||||
|
|
||||||
|
drop view v2;
|
||||||
|
drop function f1;
|
||||||
|
drop table t1;
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -107,6 +107,16 @@ Warning 4076 Incorrect GeoJSON format - empty 'coordinates' array.
|
|||||||
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }");
|
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }");
|
||||||
ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }")
|
ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }")
|
||||||
NULL
|
NULL
|
||||||
|
SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}'));
|
||||||
|
ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}'))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function.
|
||||||
|
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }'));
|
||||||
|
ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }'))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function.
|
||||||
#
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
|
@ -46,6 +46,13 @@ SELECT st_astext(st_geomfromgeojson('{"type": "MultiPolygon","coordinates": []}'
|
|||||||
|
|
||||||
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }");
|
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }");
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-25461 Assertion `je->state == JST_KEY' failed in Geometry::create_from_json.
|
||||||
|
#
|
||||||
|
|
||||||
|
SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}'));
|
||||||
|
|
||||||
|
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }'));
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -65,6 +65,7 @@ GEOMETRY_COLUMNS
|
|||||||
GLOBAL_STATUS
|
GLOBAL_STATUS
|
||||||
GLOBAL_VARIABLES
|
GLOBAL_VARIABLES
|
||||||
INDEX_STATISTICS
|
INDEX_STATISTICS
|
||||||
|
KEYWORDS
|
||||||
KEY_CACHES
|
KEY_CACHES
|
||||||
KEY_COLUMN_USAGE
|
KEY_COLUMN_USAGE
|
||||||
OPTIMIZER_TRACE
|
OPTIMIZER_TRACE
|
||||||
@ -80,6 +81,7 @@ SCHEMA_PRIVILEGES
|
|||||||
SESSION_STATUS
|
SESSION_STATUS
|
||||||
SESSION_VARIABLES
|
SESSION_VARIABLES
|
||||||
SPATIAL_REF_SYS
|
SPATIAL_REF_SYS
|
||||||
|
SQL_FUNCTIONS
|
||||||
STATISTICS
|
STATISTICS
|
||||||
SYSTEM_VARIABLES
|
SYSTEM_VARIABLES
|
||||||
TABLES
|
TABLES
|
||||||
|
@ -41,6 +41,7 @@ INNODB_SYS_VIRTUAL
|
|||||||
INNODB_TABLESPACES_ENCRYPTION
|
INNODB_TABLESPACES_ENCRYPTION
|
||||||
INNODB_TABLESPACES_SCRUBBING
|
INNODB_TABLESPACES_SCRUBBING
|
||||||
INNODB_TRX
|
INNODB_TRX
|
||||||
|
KEYWORDS
|
||||||
KEY_CACHES
|
KEY_CACHES
|
||||||
KEY_COLUMN_USAGE
|
KEY_COLUMN_USAGE
|
||||||
OPTIMIZER_TRACE
|
OPTIMIZER_TRACE
|
||||||
@ -56,6 +57,7 @@ SCHEMA_PRIVILEGES
|
|||||||
SESSION_STATUS
|
SESSION_STATUS
|
||||||
SESSION_VARIABLES
|
SESSION_VARIABLES
|
||||||
SPATIAL_REF_SYS
|
SPATIAL_REF_SYS
|
||||||
|
SQL_FUNCTIONS
|
||||||
STATISTICS
|
STATISTICS
|
||||||
SYSTEM_VARIABLES
|
SYSTEM_VARIABLES
|
||||||
TABLES
|
TABLES
|
||||||
@ -122,6 +124,7 @@ INNODB_SYS_VIRTUAL TABLE_ID
|
|||||||
INNODB_TABLESPACES_ENCRYPTION SPACE
|
INNODB_TABLESPACES_ENCRYPTION SPACE
|
||||||
INNODB_TABLESPACES_SCRUBBING SPACE
|
INNODB_TABLESPACES_SCRUBBING SPACE
|
||||||
INNODB_TRX trx_id
|
INNODB_TRX trx_id
|
||||||
|
KEYWORDS WORD
|
||||||
KEY_CACHES KEY_CACHE_NAME
|
KEY_CACHES KEY_CACHE_NAME
|
||||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||||
OPTIMIZER_TRACE QUERY
|
OPTIMIZER_TRACE QUERY
|
||||||
@ -137,6 +140,7 @@ SCHEMA_PRIVILEGES TABLE_SCHEMA
|
|||||||
SESSION_STATUS VARIABLE_NAME
|
SESSION_STATUS VARIABLE_NAME
|
||||||
SESSION_VARIABLES VARIABLE_NAME
|
SESSION_VARIABLES VARIABLE_NAME
|
||||||
SPATIAL_REF_SYS SRID
|
SPATIAL_REF_SYS SRID
|
||||||
|
SQL_FUNCTIONS FUNCTION
|
||||||
STATISTICS TABLE_SCHEMA
|
STATISTICS TABLE_SCHEMA
|
||||||
SYSTEM_VARIABLES VARIABLE_NAME
|
SYSTEM_VARIABLES VARIABLE_NAME
|
||||||
TABLES TABLE_SCHEMA
|
TABLES TABLE_SCHEMA
|
||||||
@ -203,6 +207,7 @@ INNODB_SYS_VIRTUAL TABLE_ID
|
|||||||
INNODB_TABLESPACES_ENCRYPTION SPACE
|
INNODB_TABLESPACES_ENCRYPTION SPACE
|
||||||
INNODB_TABLESPACES_SCRUBBING SPACE
|
INNODB_TABLESPACES_SCRUBBING SPACE
|
||||||
INNODB_TRX trx_id
|
INNODB_TRX trx_id
|
||||||
|
KEYWORDS WORD
|
||||||
KEY_CACHES KEY_CACHE_NAME
|
KEY_CACHES KEY_CACHE_NAME
|
||||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||||
OPTIMIZER_TRACE QUERY
|
OPTIMIZER_TRACE QUERY
|
||||||
@ -218,6 +223,7 @@ SCHEMA_PRIVILEGES TABLE_SCHEMA
|
|||||||
SESSION_STATUS VARIABLE_NAME
|
SESSION_STATUS VARIABLE_NAME
|
||||||
SESSION_VARIABLES VARIABLE_NAME
|
SESSION_VARIABLES VARIABLE_NAME
|
||||||
SPATIAL_REF_SYS SRID
|
SPATIAL_REF_SYS SRID
|
||||||
|
SQL_FUNCTIONS FUNCTION
|
||||||
STATISTICS TABLE_SCHEMA
|
STATISTICS TABLE_SCHEMA
|
||||||
SYSTEM_VARIABLES VARIABLE_NAME
|
SYSTEM_VARIABLES VARIABLE_NAME
|
||||||
TABLES TABLE_SCHEMA
|
TABLES TABLE_SCHEMA
|
||||||
@ -360,6 +366,7 @@ Database: information_schema
|
|||||||
| INNODB_TABLESPACES_ENCRYPTION |
|
| INNODB_TABLESPACES_ENCRYPTION |
|
||||||
| INNODB_TABLESPACES_SCRUBBING |
|
| INNODB_TABLESPACES_SCRUBBING |
|
||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
|
| KEYWORDS |
|
||||||
| KEY_CACHES |
|
| KEY_CACHES |
|
||||||
| KEY_COLUMN_USAGE |
|
| KEY_COLUMN_USAGE |
|
||||||
| OPTIMIZER_TRACE |
|
| OPTIMIZER_TRACE |
|
||||||
@ -375,6 +382,7 @@ Database: information_schema
|
|||||||
| SESSION_STATUS |
|
| SESSION_STATUS |
|
||||||
| SESSION_VARIABLES |
|
| SESSION_VARIABLES |
|
||||||
| SPATIAL_REF_SYS |
|
| SPATIAL_REF_SYS |
|
||||||
|
| SQL_FUNCTIONS |
|
||||||
| STATISTICS |
|
| STATISTICS |
|
||||||
| SYSTEM_VARIABLES |
|
| SYSTEM_VARIABLES |
|
||||||
| TABLES |
|
| TABLES |
|
||||||
@ -431,6 +439,7 @@ Database: INFORMATION_SCHEMA
|
|||||||
| INNODB_TABLESPACES_ENCRYPTION |
|
| INNODB_TABLESPACES_ENCRYPTION |
|
||||||
| INNODB_TABLESPACES_SCRUBBING |
|
| INNODB_TABLESPACES_SCRUBBING |
|
||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
|
| KEYWORDS |
|
||||||
| KEY_CACHES |
|
| KEY_CACHES |
|
||||||
| KEY_COLUMN_USAGE |
|
| KEY_COLUMN_USAGE |
|
||||||
| OPTIMIZER_TRACE |
|
| OPTIMIZER_TRACE |
|
||||||
@ -446,6 +455,7 @@ Database: INFORMATION_SCHEMA
|
|||||||
| SESSION_STATUS |
|
| SESSION_STATUS |
|
||||||
| SESSION_VARIABLES |
|
| SESSION_VARIABLES |
|
||||||
| SPATIAL_REF_SYS |
|
| SPATIAL_REF_SYS |
|
||||||
|
| SQL_FUNCTIONS |
|
||||||
| STATISTICS |
|
| STATISTICS |
|
||||||
| SYSTEM_VARIABLES |
|
| SYSTEM_VARIABLES |
|
||||||
| TABLES |
|
| TABLES |
|
||||||
@ -465,5 +475,5 @@ Wildcard: inf_rmation_schema
|
|||||||
| information_schema |
|
| information_schema |
|
||||||
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') GROUP BY TABLE_SCHEMA;
|
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') GROUP BY TABLE_SCHEMA;
|
||||||
table_schema count(*)
|
table_schema count(*)
|
||||||
information_schema 66
|
information_schema 68
|
||||||
mysql 31
|
mysql 31
|
||||||
|
@ -181,6 +181,7 @@ def information_schema INDEX_STATISTICS INDEX_NAME 3 '' NO varchar 192 576 NULL
|
|||||||
def information_schema INDEX_STATISTICS ROWS_READ 4 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select NEVER NULL
|
def information_schema INDEX_STATISTICS ROWS_READ 4 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select NEVER NULL
|
||||||
def information_schema INDEX_STATISTICS TABLE_NAME 2 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) select NEVER NULL
|
def information_schema INDEX_STATISTICS TABLE_NAME 2 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) select NEVER NULL
|
||||||
def information_schema INDEX_STATISTICS TABLE_SCHEMA 1 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) select NEVER NULL
|
def information_schema INDEX_STATISTICS TABLE_SCHEMA 1 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) select NEVER NULL
|
||||||
|
def information_schema KEYWORDS WORD 1 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
|
||||||
def information_schema KEY_CACHES BLOCK_SIZE 5 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
def information_schema KEY_CACHES BLOCK_SIZE 5 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
||||||
def information_schema KEY_CACHES DIRTY_BLOCKS 8 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
def information_schema KEY_CACHES DIRTY_BLOCKS 8 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
||||||
def information_schema KEY_CACHES FULL_SIZE 4 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
def information_schema KEY_CACHES FULL_SIZE 4 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned select NEVER NULL
|
||||||
@ -341,6 +342,7 @@ def information_schema SPATIAL_REF_SYS AUTH_NAME 2 '' NO varchar 512 1536 NULL N
|
|||||||
def information_schema SPATIAL_REF_SYS AUTH_SRID 3 0 NO int NULL NULL 10 0 NULL NULL NULL int(5) select NEVER NULL
|
def information_schema SPATIAL_REF_SYS AUTH_SRID 3 0 NO int NULL NULL 10 0 NULL NULL NULL int(5) select NEVER NULL
|
||||||
def information_schema SPATIAL_REF_SYS SRID 1 0 NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) select NEVER NULL
|
def information_schema SPATIAL_REF_SYS SRID 1 0 NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) select NEVER NULL
|
||||||
def information_schema SPATIAL_REF_SYS SRTEXT 4 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) select NEVER NULL
|
def information_schema SPATIAL_REF_SYS SRTEXT 4 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) select NEVER NULL
|
||||||
|
def information_schema SQL_FUNCTIONS FUNCTION 1 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
|
||||||
def information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select NEVER NULL
|
def information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select NEVER NULL
|
||||||
def information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL NULL utf8 utf8_general_ci varchar(1) select NEVER NULL
|
def information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL NULL utf8 utf8_general_ci varchar(1) select NEVER NULL
|
||||||
def information_schema STATISTICS COLUMN_NAME 8 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
|
def information_schema STATISTICS COLUMN_NAME 8 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
|
||||||
@ -723,6 +725,7 @@ NULL information_schema GEOMETRY_COLUMNS SRID smallint NULL NULL NULL NULL small
|
|||||||
3.0000 information_schema INDEX_STATISTICS TABLE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema INDEX_STATISTICS TABLE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
3.0000 information_schema INDEX_STATISTICS INDEX_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema INDEX_STATISTICS INDEX_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
NULL information_schema INDEX_STATISTICS ROWS_READ bigint NULL NULL NULL NULL bigint(21)
|
NULL information_schema INDEX_STATISTICS ROWS_READ bigint NULL NULL NULL NULL bigint(21)
|
||||||
|
3.0000 information_schema KEYWORDS WORD varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema KEY_CACHES KEY_CACHE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema KEY_CACHES KEY_CACHE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
NULL information_schema KEY_CACHES SEGMENTS int NULL NULL NULL NULL int(3) unsigned
|
NULL information_schema KEY_CACHES SEGMENTS int NULL NULL NULL NULL int(3) unsigned
|
||||||
NULL information_schema KEY_CACHES SEGMENT_NUMBER int NULL NULL NULL NULL int(3) unsigned
|
NULL information_schema KEY_CACHES SEGMENT_NUMBER int NULL NULL NULL NULL int(3) unsigned
|
||||||
@ -883,6 +886,7 @@ NULL information_schema SPATIAL_REF_SYS SRID smallint NULL NULL NULL NULL smalli
|
|||||||
3.0000 information_schema SPATIAL_REF_SYS AUTH_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema SPATIAL_REF_SYS AUTH_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
NULL information_schema SPATIAL_REF_SYS AUTH_SRID int NULL NULL NULL NULL int(5)
|
NULL information_schema SPATIAL_REF_SYS AUTH_SRID int NULL NULL NULL NULL int(5)
|
||||||
3.0000 information_schema SPATIAL_REF_SYS SRTEXT varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
|
3.0000 information_schema SPATIAL_REF_SYS SRTEXT varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
|
||||||
|
3.0000 information_schema SQL_FUNCTIONS FUNCTION varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
|
@ -181,6 +181,7 @@ def information_schema INDEX_STATISTICS INDEX_NAME 3 '' NO varchar 192 576 NULL
|
|||||||
def information_schema INDEX_STATISTICS ROWS_READ 4 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) NEVER NULL
|
def information_schema INDEX_STATISTICS ROWS_READ 4 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) NEVER NULL
|
||||||
def information_schema INDEX_STATISTICS TABLE_NAME 2 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) NEVER NULL
|
def information_schema INDEX_STATISTICS TABLE_NAME 2 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) NEVER NULL
|
||||||
def information_schema INDEX_STATISTICS TABLE_SCHEMA 1 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) NEVER NULL
|
def information_schema INDEX_STATISTICS TABLE_SCHEMA 1 '' NO varchar 192 576 NULL NULL NULL utf8 utf8_general_ci varchar(192) NEVER NULL
|
||||||
|
def information_schema KEYWORDS WORD 1 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) NEVER NULL
|
||||||
def information_schema KEY_CACHES BLOCK_SIZE 5 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
def information_schema KEY_CACHES BLOCK_SIZE 5 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
||||||
def information_schema KEY_CACHES DIRTY_BLOCKS 8 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
def information_schema KEY_CACHES DIRTY_BLOCKS 8 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
||||||
def information_schema KEY_CACHES FULL_SIZE 4 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
def information_schema KEY_CACHES FULL_SIZE 4 0 NO bigint NULL NULL 20 0 NULL NULL NULL bigint(21) unsigned NEVER NULL
|
||||||
@ -341,6 +342,7 @@ def information_schema SPATIAL_REF_SYS AUTH_NAME 2 '' NO varchar 512 1536 NULL N
|
|||||||
def information_schema SPATIAL_REF_SYS AUTH_SRID 3 0 NO int NULL NULL 10 0 NULL NULL NULL int(5) NEVER NULL
|
def information_schema SPATIAL_REF_SYS AUTH_SRID 3 0 NO int NULL NULL 10 0 NULL NULL NULL int(5) NEVER NULL
|
||||||
def information_schema SPATIAL_REF_SYS SRID 1 0 NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) NEVER NULL
|
def information_schema SPATIAL_REF_SYS SRID 1 0 NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) NEVER NULL
|
||||||
def information_schema SPATIAL_REF_SYS SRTEXT 4 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) NEVER NULL
|
def information_schema SPATIAL_REF_SYS SRTEXT 4 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) NEVER NULL
|
||||||
|
def information_schema SQL_FUNCTIONS FUNCTION 1 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) NEVER NULL
|
||||||
def information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(21) NEVER NULL
|
def information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(21) NEVER NULL
|
||||||
def information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL NULL utf8 utf8_general_ci varchar(1) NEVER NULL
|
def information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL NULL utf8 utf8_general_ci varchar(1) NEVER NULL
|
||||||
def information_schema STATISTICS COLUMN_NAME 8 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) NEVER NULL
|
def information_schema STATISTICS COLUMN_NAME 8 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) NEVER NULL
|
||||||
@ -723,6 +725,7 @@ NULL information_schema GEOMETRY_COLUMNS SRID smallint NULL NULL NULL NULL small
|
|||||||
3.0000 information_schema INDEX_STATISTICS TABLE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema INDEX_STATISTICS TABLE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
3.0000 information_schema INDEX_STATISTICS INDEX_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema INDEX_STATISTICS INDEX_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
NULL information_schema INDEX_STATISTICS ROWS_READ bigint NULL NULL NULL NULL bigint(21)
|
NULL information_schema INDEX_STATISTICS ROWS_READ bigint NULL NULL NULL NULL bigint(21)
|
||||||
|
3.0000 information_schema KEYWORDS WORD varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema KEY_CACHES KEY_CACHE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
3.0000 information_schema KEY_CACHES KEY_CACHE_NAME varchar 192 576 utf8 utf8_general_ci varchar(192)
|
||||||
NULL information_schema KEY_CACHES SEGMENTS int NULL NULL NULL NULL int(3) unsigned
|
NULL information_schema KEY_CACHES SEGMENTS int NULL NULL NULL NULL int(3) unsigned
|
||||||
NULL information_schema KEY_CACHES SEGMENT_NUMBER int NULL NULL NULL NULL int(3) unsigned
|
NULL information_schema KEY_CACHES SEGMENT_NUMBER int NULL NULL NULL NULL int(3) unsigned
|
||||||
@ -883,6 +886,7 @@ NULL information_schema SPATIAL_REF_SYS SRID smallint NULL NULL NULL NULL smalli
|
|||||||
3.0000 information_schema SPATIAL_REF_SYS AUTH_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema SPATIAL_REF_SYS AUTH_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
NULL information_schema SPATIAL_REF_SYS AUTH_SRID int NULL NULL NULL NULL int(5)
|
NULL information_schema SPATIAL_REF_SYS AUTH_SRID int NULL NULL NULL NULL int(5)
|
||||||
3.0000 information_schema SPATIAL_REF_SYS SRTEXT varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
|
3.0000 information_schema SPATIAL_REF_SYS SRTEXT varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
|
||||||
|
3.0000 information_schema SQL_FUNCTIONS FUNCTION varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||||
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
|
@ -439,6 +439,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME KEYWORDS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME KEY_CACHES
|
TABLE_NAME KEY_CACHES
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -789,6 +812,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME SQL_FUNCTIONS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME STATISTICS
|
TABLE_NAME STATISTICS
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -1505,6 +1551,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME KEYWORDS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME KEY_CACHES
|
TABLE_NAME KEY_CACHES
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -1855,6 +1924,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME SQL_FUNCTIONS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME STATISTICS
|
TABLE_NAME STATISTICS
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
|
@ -439,6 +439,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME KEYWORDS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME KEY_CACHES
|
TABLE_NAME KEY_CACHES
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -789,6 +812,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME SQL_FUNCTIONS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME STATISTICS
|
TABLE_NAME STATISTICS
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -1505,6 +1551,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME KEYWORDS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME KEY_CACHES
|
TABLE_NAME KEY_CACHES
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
@ -1855,6 +1924,29 @@ user_comment
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA information_schema
|
TABLE_SCHEMA information_schema
|
||||||
|
TABLE_NAME SQL_FUNCTIONS
|
||||||
|
TABLE_TYPE SYSTEM VIEW
|
||||||
|
ENGINE MEMORY
|
||||||
|
VERSION 11
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION utf8_general_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA information_schema
|
||||||
TABLE_NAME STATISTICS
|
TABLE_NAME STATISTICS
|
||||||
TABLE_TYPE SYSTEM VIEW
|
TABLE_TYPE SYSTEM VIEW
|
||||||
ENGINE MEMORY
|
ENGINE MEMORY
|
||||||
|
@ -172,3 +172,4 @@ COUNT(*) = 0
|
|||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
@ -29,8 +29,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
`id` int(11) NOT NULL,
|
`id` int(11) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
set debug_sync= 'RESET';
|
|
||||||
connection node_2a;
|
connection node_2a;
|
||||||
|
set debug_sync= 'RESET';
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
SET SESSION wsrep_sync_wait = DEFAULT;
|
SET SESSION wsrep_sync_wait = DEFAULT;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
|
@ -46,10 +46,10 @@ SET debug_sync='now SIGNAL go2';
|
|||||||
# the cluster as there is new FTRL that is still pausing it.
|
# the cluster as there is new FTRL that is still pausing it.
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
set debug_sync= 'RESET';
|
|
||||||
|
|
||||||
--connection node_2a
|
--connection node_2a
|
||||||
--reap
|
--reap
|
||||||
|
set debug_sync= 'RESET';
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
SET SESSION wsrep_sync_wait = DEFAULT;
|
SET SESSION wsrep_sync_wait = DEFAULT;
|
||||||
|
@ -1008,6 +1008,7 @@ enum enum_schema_tables
|
|||||||
SCH_FILES,
|
SCH_FILES,
|
||||||
SCH_GLOBAL_STATUS,
|
SCH_GLOBAL_STATUS,
|
||||||
SCH_GLOBAL_VARIABLES,
|
SCH_GLOBAL_VARIABLES,
|
||||||
|
SCH_KEYWORDS,
|
||||||
SCH_KEY_CACHES,
|
SCH_KEY_CACHES,
|
||||||
SCH_KEY_COLUMN_USAGE,
|
SCH_KEY_COLUMN_USAGE,
|
||||||
SCH_OPEN_TABLES,
|
SCH_OPEN_TABLES,
|
||||||
@ -1024,6 +1025,7 @@ enum enum_schema_tables
|
|||||||
SCH_SESSION_STATUS,
|
SCH_SESSION_STATUS,
|
||||||
SCH_SESSION_VARIABLES,
|
SCH_SESSION_VARIABLES,
|
||||||
SCH_STATISTICS,
|
SCH_STATISTICS,
|
||||||
|
SCH_SQL_FUNCTIONS,
|
||||||
SCH_SYSTEM_VARIABLES,
|
SCH_SYSTEM_VARIABLES,
|
||||||
SCH_TABLES,
|
SCH_TABLES,
|
||||||
SCH_TABLESPACES,
|
SCH_TABLESPACES,
|
||||||
|
@ -7147,7 +7147,6 @@ Create_func_year_week::create_native(THD *thd, LEX_CSTRING *name,
|
|||||||
return func;
|
return func;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define BUILDER(F) & F::s_singleton
|
#define BUILDER(F) & F::s_singleton
|
||||||
|
|
||||||
#ifdef HAVE_SPATIAL
|
#ifdef HAVE_SPATIAL
|
||||||
@ -7167,7 +7166,7 @@ Create_func_year_week::create_native(THD *thd, LEX_CSTRING *name,
|
|||||||
- keep 1 line per entry, it makes grep | sort easier
|
- keep 1 line per entry, it makes grep | sort easier
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static Native_func_registry func_array[] =
|
Native_func_registry func_array[] =
|
||||||
{
|
{
|
||||||
{ { STRING_WITH_LEN("ABS") }, BUILDER(Create_func_abs)},
|
{ { STRING_WITH_LEN("ABS") }, BUILDER(Create_func_abs)},
|
||||||
{ { STRING_WITH_LEN("ACOS") }, BUILDER(Create_func_acos)},
|
{ { STRING_WITH_LEN("ACOS") }, BUILDER(Create_func_acos)},
|
||||||
@ -7526,6 +7525,8 @@ static Native_func_registry func_array[] =
|
|||||||
{ {0, 0}, NULL}
|
{ {0, 0}, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
size_t func_array_length= sizeof(func_array) / sizeof(Native_func_registry) - 1;
|
||||||
|
|
||||||
static HASH native_functions_hash;
|
static HASH native_functions_hash;
|
||||||
|
|
||||||
extern "C" uchar*
|
extern "C" uchar*
|
||||||
|
@ -45,7 +45,7 @@ SYM_GROUP sym_group_rtree= {"RTree keys", "HAVE_RTREE_KEYS"};
|
|||||||
lists
|
lists
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static SYMBOL symbols[] = {
|
SYMBOL symbols[] = {
|
||||||
{ "&&", SYM(AND_AND_SYM)},
|
{ "&&", SYM(AND_AND_SYM)},
|
||||||
{ "<=", SYM(LE)},
|
{ "<=", SYM(LE)},
|
||||||
{ "<>", SYM(NE)},
|
{ "<>", SYM(NE)},
|
||||||
@ -731,7 +731,7 @@ static SYMBOL symbols[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static SYMBOL sql_functions[] = {
|
SYMBOL sql_functions[] = {
|
||||||
{ "ADDDATE", SYM(ADDDATE_SYM)},
|
{ "ADDDATE", SYM(ADDDATE_SYM)},
|
||||||
{ "BIT_AND", SYM(BIT_AND)},
|
{ "BIT_AND", SYM(BIT_AND)},
|
||||||
{ "BIT_OR", SYM(BIT_OR)},
|
{ "BIT_OR", SYM(BIT_OR)},
|
||||||
@ -782,4 +782,7 @@ static SYMBOL sql_functions[] = {
|
|||||||
{ "VAR_SAMP", SYM(VAR_SAMP_SYM)},
|
{ "VAR_SAMP", SYM(VAR_SAMP_SYM)},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
size_t symbols_length= sizeof(symbols) / sizeof(SYMBOL);
|
||||||
|
size_t sql_functions_length= sizeof(sql_functions) / sizeof(SYMBOL);
|
||||||
|
|
||||||
#endif /* LEX_INCLUDED */
|
#endif /* LEX_INCLUDED */
|
||||||
|
@ -539,7 +539,11 @@ Geometry *Geometry::create_from_json(Geometry_buffer *buffer,
|
|||||||
goto handle_geometry_key;
|
goto handle_geometry_key;
|
||||||
feature_type_found= 1;
|
feature_type_found= 1;
|
||||||
}
|
}
|
||||||
|
else /* can't understand the type. */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
else /* The "type" value can only be string. */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if (key_len == coord_keyname_len &&
|
else if (key_len == coord_keyname_len &&
|
||||||
memcmp(key_buf, coord_keyname, coord_keyname_len) == 0)
|
memcmp(key_buf, coord_keyname, coord_keyname_len) == 0)
|
||||||
@ -556,6 +560,8 @@ Geometry *Geometry::create_from_json(Geometry_buffer *buffer,
|
|||||||
coord_start= je->value_begin;
|
coord_start= je->value_begin;
|
||||||
if (ci && ci != &geometrycollection_class)
|
if (ci && ci != &geometrycollection_class)
|
||||||
goto create_geom;
|
goto create_geom;
|
||||||
|
if (json_skip_level(je))
|
||||||
|
goto err_return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key_len == geometries_keyname_len &&
|
else if (key_len == geometries_keyname_len &&
|
||||||
|
@ -25,13 +25,13 @@
|
|||||||
#include "mariadb.h" /* NO_EMBEDDED_ACCESS_CHECKS */
|
#include "mariadb.h" /* NO_EMBEDDED_ACCESS_CHECKS */
|
||||||
#include "sql_priv.h"
|
#include "sql_priv.h"
|
||||||
#include "unireg.h"
|
#include "unireg.h"
|
||||||
#include "sql_derived.h"
|
|
||||||
#include "sql_select.h"
|
#include "sql_select.h"
|
||||||
#include "derived_handler.h"
|
#include "derived_handler.h"
|
||||||
#include "sql_base.h"
|
#include "sql_base.h"
|
||||||
#include "sql_view.h" // check_duplicate_names
|
#include "sql_view.h" // check_duplicate_names
|
||||||
#include "sql_acl.h" // SELECT_ACL
|
#include "sql_acl.h" // SELECT_ACL
|
||||||
#include "sql_class.h"
|
#include "sql_class.h"
|
||||||
|
#include "sql_derived.h"
|
||||||
#include "sql_cte.h"
|
#include "sql_cte.h"
|
||||||
#include "my_json_writer.h"
|
#include "my_json_writer.h"
|
||||||
#include "opt_trace.h"
|
#include "opt_trace.h"
|
||||||
@ -1359,6 +1359,67 @@ bool mysql_derived_reinit(THD *thd, LEX *lex, TABLE_LIST *derived)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@brief
|
||||||
|
Given condition cond and transformer+argument, try transforming as many
|
||||||
|
conjuncts as possible.
|
||||||
|
|
||||||
|
@detail
|
||||||
|
The motivation of this function is to convert the condition that's being
|
||||||
|
pushed into a WHERE clause with derived_field_transformer_for_where or
|
||||||
|
with derived_grouping_field_transformer_for_where.
|
||||||
|
The transformer may fail for some sub-condition, in this case we want to
|
||||||
|
convert the most restrictive part of the condition that can be pushed.
|
||||||
|
|
||||||
|
This function only does it for top-level AND: conjuncts that could not be
|
||||||
|
converted are dropped.
|
||||||
|
|
||||||
|
@return
|
||||||
|
Converted condition, or NULL if nothing could be converted
|
||||||
|
*/
|
||||||
|
|
||||||
|
Item *transform_condition_or_part(THD *thd,
|
||||||
|
Item *cond,
|
||||||
|
Item_transformer transformer,
|
||||||
|
uchar *arg)
|
||||||
|
{
|
||||||
|
if (cond->type() != Item::COND_ITEM ||
|
||||||
|
((Item_cond*) cond)->functype() != Item_func::COND_AND_FUNC)
|
||||||
|
{
|
||||||
|
Item *new_item= cond->transform(thd, transformer, arg);
|
||||||
|
// Indicate that the condition is not pushable
|
||||||
|
if (!new_item)
|
||||||
|
cond->clear_extraction_flag();
|
||||||
|
return new_item;
|
||||||
|
}
|
||||||
|
|
||||||
|
List_iterator<Item> li(*((Item_cond*) cond)->argument_list());
|
||||||
|
Item *item;
|
||||||
|
while ((item=li++))
|
||||||
|
{
|
||||||
|
Item *new_item= item->transform(thd, transformer, arg);
|
||||||
|
if (!new_item)
|
||||||
|
{
|
||||||
|
// Indicate that the condition is not pushable
|
||||||
|
item->clear_extraction_flag();
|
||||||
|
li.remove();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
li.replace(new_item);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (((Item_cond*) cond)->argument_list()->elements)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
return NULL;
|
||||||
|
case 1:
|
||||||
|
return ((Item_cond*) cond)->argument_list()->head();
|
||||||
|
default:
|
||||||
|
return cond;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief
|
@brief
|
||||||
Extract condition that can be pushed into a derived table/view
|
Extract condition that can be pushed into a derived table/view
|
||||||
|
@ -23,6 +23,11 @@ struct LEX;
|
|||||||
bool mysql_handle_derived(LEX *lex, uint phases);
|
bool mysql_handle_derived(LEX *lex, uint phases);
|
||||||
bool mysql_handle_single_derived(LEX *lex, TABLE_LIST *derived, uint phases);
|
bool mysql_handle_single_derived(LEX *lex, TABLE_LIST *derived, uint phases);
|
||||||
|
|
||||||
|
Item *transform_condition_or_part(THD *thd,
|
||||||
|
Item *cond,
|
||||||
|
Item_transformer transformer,
|
||||||
|
uchar *arg);
|
||||||
|
|
||||||
bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived);
|
bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived);
|
||||||
|
|
||||||
#endif /* SQL_DERIVED_INCLUDED */
|
#endif /* SQL_DERIVED_INCLUDED */
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "sql_select.h"
|
#include "sql_select.h"
|
||||||
#include "sql_cte.h"
|
#include "sql_cte.h"
|
||||||
#include "sql_signal.h"
|
#include "sql_signal.h"
|
||||||
|
#include "sql_derived.h"
|
||||||
#include "sql_truncate.h" // Sql_cmd_truncate_table
|
#include "sql_truncate.h" // Sql_cmd_truncate_table
|
||||||
#include "sql_admin.h" // Sql_cmd_analyze/Check..._table
|
#include "sql_admin.h" // Sql_cmd_analyze/Check..._table
|
||||||
#include "sql_partition.h"
|
#include "sql_partition.h"
|
||||||
@ -9744,8 +9745,7 @@ void st_select_lex::pushdown_cond_into_where_clause(THD *thd, Item *cond,
|
|||||||
|
|
||||||
if (!join->group_list && !with_sum_func)
|
if (!join->group_list && !with_sum_func)
|
||||||
{
|
{
|
||||||
cond=
|
cond= transform_condition_or_part(thd, cond, transformer, arg);
|
||||||
cond->transform(thd, transformer, arg);
|
|
||||||
if (cond)
|
if (cond)
|
||||||
{
|
{
|
||||||
cond->walk(
|
cond->walk(
|
||||||
@ -9770,9 +9770,12 @@ void st_select_lex::pushdown_cond_into_where_clause(THD *thd, Item *cond,
|
|||||||
into WHERE so it can be pushed.
|
into WHERE so it can be pushed.
|
||||||
*/
|
*/
|
||||||
if (cond_over_grouping_fields)
|
if (cond_over_grouping_fields)
|
||||||
cond_over_grouping_fields= cond_over_grouping_fields->transform(thd,
|
{
|
||||||
&Item::grouping_field_transformer_for_where,
|
cond_over_grouping_fields=
|
||||||
(uchar*) this);
|
transform_condition_or_part(thd, cond_over_grouping_fields,
|
||||||
|
&Item::grouping_field_transformer_for_where,
|
||||||
|
(uchar*) this);
|
||||||
|
}
|
||||||
|
|
||||||
if (cond_over_grouping_fields)
|
if (cond_over_grouping_fields)
|
||||||
{
|
{
|
||||||
|
@ -66,6 +66,19 @@
|
|||||||
#include "opt_trace.h"
|
#include "opt_trace.h"
|
||||||
#include "my_cpu.h"
|
#include "my_cpu.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "lex_symbol.h"
|
||||||
|
#define KEYWORD_SIZE 64
|
||||||
|
|
||||||
|
extern SYMBOL symbols[];
|
||||||
|
extern size_t symbols_length;
|
||||||
|
|
||||||
|
extern SYMBOL sql_functions[];
|
||||||
|
extern size_t sql_functions_length;
|
||||||
|
|
||||||
|
extern Native_func_registry func_array[];
|
||||||
|
extern size_t func_array_length;
|
||||||
|
|
||||||
enum enum_i_s_events_fields
|
enum enum_i_s_events_fields
|
||||||
{
|
{
|
||||||
ISE_EVENT_CATALOG= 0,
|
ISE_EVENT_CATALOG= 0,
|
||||||
@ -7941,6 +7954,60 @@ int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond)
|
|||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int add_symbol_to_table(const char* name, TABLE* table){
|
||||||
|
DBUG_ENTER("add_symbol_to_table");
|
||||||
|
|
||||||
|
uint length= strlen(name);
|
||||||
|
|
||||||
|
// If you've added a new SQL keyword longer than KEYWORD_SIZE,
|
||||||
|
// please increase the defined max length
|
||||||
|
DBUG_ASSERT(length < KEYWORD_SIZE);
|
||||||
|
|
||||||
|
restore_record(table, s->default_values);
|
||||||
|
table->field[0]->set_notnull();
|
||||||
|
table->field[0]->store(name, length,
|
||||||
|
system_charset_info);
|
||||||
|
if (schema_table_store_record(table->in_use, table))
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int fill_i_s_keywords(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||||
|
{
|
||||||
|
DBUG_ENTER("fill_i_s_keywords");
|
||||||
|
|
||||||
|
TABLE *table= tables->table;
|
||||||
|
|
||||||
|
for (uint i= 0; i < symbols_length; i++){
|
||||||
|
const char *name= symbols[i].name;
|
||||||
|
if (add_symbol_to_table(name, table))
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int fill_i_s_sql_functions(THD *thd, TABLE_LIST *tables, COND *cond) {
|
||||||
|
DBUG_ENTER("fill_i_s_sql_functions");
|
||||||
|
|
||||||
|
TABLE *table= tables->table;
|
||||||
|
|
||||||
|
for (uint i= 0; i < sql_functions_length; i++){
|
||||||
|
const char *name= sql_functions[i].name;
|
||||||
|
if (add_symbol_to_table(name, table))
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint i= 0; i < func_array_length; i++){
|
||||||
|
const char *name= func_array[i].name.str;
|
||||||
|
if (add_symbol_to_table(name, table))
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int fill_status(THD *thd, TABLE_LIST *tables, COND *cond)
|
int fill_status(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||||
{
|
{
|
||||||
@ -9235,6 +9302,18 @@ ST_FIELD_INFO enabled_roles_fields_info[]=
|
|||||||
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
|
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ST_FIELD_INFO keywords_field_info[]=
|
||||||
|
{
|
||||||
|
{"WORD", KEYWORD_SIZE, MYSQL_TYPE_STRING, 0, MY_I_S_MAYBE_NULL, 0, SKIP_OPEN_TABLE},
|
||||||
|
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
|
||||||
|
};
|
||||||
|
|
||||||
|
ST_FIELD_INFO sql_functions_field_info[]=
|
||||||
|
{
|
||||||
|
{"FUNCTION", KEYWORD_SIZE, MYSQL_TYPE_STRING, 0, MY_I_S_MAYBE_NULL, 0, SKIP_OPEN_TABLE},
|
||||||
|
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
ST_FIELD_INFO engines_fields_info[]=
|
ST_FIELD_INFO engines_fields_info[]=
|
||||||
{
|
{
|
||||||
@ -9942,6 +10021,8 @@ ST_SCHEMA_TABLE schema_tables[]=
|
|||||||
fill_status, make_old_format, 0, 0, -1, 0, 0},
|
fill_status, make_old_format, 0, 0, -1, 0, 0},
|
||||||
{"GLOBAL_VARIABLES", variables_fields_info, 0,
|
{"GLOBAL_VARIABLES", variables_fields_info, 0,
|
||||||
fill_variables, make_old_format, 0, 0, -1, 0, 0},
|
fill_variables, make_old_format, 0, 0, -1, 0, 0},
|
||||||
|
{"KEYWORDS", keywords_field_info, 0,
|
||||||
|
fill_i_s_keywords, 0, 0, -1, -1, 0, 0},
|
||||||
{"KEY_CACHES", keycache_fields_info, 0,
|
{"KEY_CACHES", keycache_fields_info, 0,
|
||||||
fill_key_cache_tables, 0, 0, -1,-1, 0, 0},
|
fill_key_cache_tables, 0, 0, -1,-1, 0, 0},
|
||||||
{"KEY_COLUMN_USAGE", key_column_usage_fields_info, 0,
|
{"KEY_COLUMN_USAGE", key_column_usage_fields_info, 0,
|
||||||
@ -9979,6 +10060,8 @@ ST_SCHEMA_TABLE schema_tables[]=
|
|||||||
{"STATISTICS", stat_fields_info, 0,
|
{"STATISTICS", stat_fields_info, 0,
|
||||||
get_all_tables, make_old_format, get_schema_stat_record, 1, 2, 0,
|
get_all_tables, make_old_format, get_schema_stat_record, 1, 2, 0,
|
||||||
OPEN_TABLE_ONLY|OPTIMIZE_I_S_TABLE},
|
OPEN_TABLE_ONLY|OPTIMIZE_I_S_TABLE},
|
||||||
|
{"SQL_FUNCTIONS", sql_functions_field_info, 0,
|
||||||
|
fill_i_s_sql_functions, 0, 0, -1, -1, 0, 0},
|
||||||
{"SYSTEM_VARIABLES", sysvars_fields_info, 0,
|
{"SYSTEM_VARIABLES", sysvars_fields_info, 0,
|
||||||
fill_sysvars, make_old_format, 0, 0, -1, 0, 0},
|
fill_sysvars, make_old_format, 0, 0, -1, 0, 0},
|
||||||
{"TABLES", tables_fields_info, 0,
|
{"TABLES", tables_fields_info, 0,
|
||||||
|
@ -5004,6 +5004,8 @@ os_file_set_size(
|
|||||||
|
|
||||||
fallback:
|
fallback:
|
||||||
#else
|
#else
|
||||||
|
struct stat statbuf;
|
||||||
|
|
||||||
if (is_sparse) {
|
if (is_sparse) {
|
||||||
bool success = !ftruncate(file, size);
|
bool success = !ftruncate(file, size);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
@ -5017,10 +5019,17 @@ fallback:
|
|||||||
# ifdef HAVE_POSIX_FALLOCATE
|
# ifdef HAVE_POSIX_FALLOCATE
|
||||||
int err;
|
int err;
|
||||||
do {
|
do {
|
||||||
os_offset_t current_size = os_file_get_size(file);
|
if (fstat(file, &statbuf)) {
|
||||||
err = current_size >= size
|
err = errno;
|
||||||
? 0 : posix_fallocate(file, current_size,
|
} else {
|
||||||
|
os_offset_t current_size = statbuf.st_size;
|
||||||
|
if (current_size >= size) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
current_size &= ~os_offset_t(statbuf.st_blksize - 1);
|
||||||
|
err = posix_fallocate(file, current_size,
|
||||||
size - current_size);
|
size - current_size);
|
||||||
|
}
|
||||||
} while (err == EINTR
|
} while (err == EINTR
|
||||||
&& srv_shutdown_state <= SRV_SHUTDOWN_INITIATED);
|
&& srv_shutdown_state <= SRV_SHUTDOWN_INITIATED);
|
||||||
|
|
||||||
@ -5043,6 +5052,27 @@ fallback:
|
|||||||
# endif /* HAVE_POSIX_ALLOCATE */
|
# endif /* HAVE_POSIX_ALLOCATE */
|
||||||
#endif /* _WIN32*/
|
#endif /* _WIN32*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
os_offset_t current_size = os_file_get_size(file);
|
||||||
|
FILE_STORAGE_INFO info;
|
||||||
|
if (GetFileInformationByHandleEx(file, FileStorageInfo, &info,
|
||||||
|
sizeof info)) {
|
||||||
|
if (info.LogicalBytesPerSector) {
|
||||||
|
current_size &= ~os_offset_t(info.LogicalBytesPerSector
|
||||||
|
- 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (fstat(file, &statbuf)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
os_offset_t current_size = statbuf.st_size
|
||||||
|
& ~os_offset_t(statbuf.st_blksize - 1);
|
||||||
|
#endif
|
||||||
|
if (current_size >= size) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/* Write up to 1 megabyte at a time. */
|
/* Write up to 1 megabyte at a time. */
|
||||||
ulint buf_size = ut_min(ulint(64),
|
ulint buf_size = ut_min(ulint(64),
|
||||||
ulint(size >> srv_page_size_shift))
|
ulint(size >> srv_page_size_shift))
|
||||||
@ -5058,8 +5088,6 @@ fallback:
|
|||||||
/* Write buffer full of zeros */
|
/* Write buffer full of zeros */
|
||||||
memset(buf, 0, buf_size);
|
memset(buf, 0, buf_size);
|
||||||
|
|
||||||
os_offset_t current_size = os_file_get_size(file);
|
|
||||||
|
|
||||||
while (current_size < size
|
while (current_size < size
|
||||||
&& srv_shutdown_state <= SRV_SHUTDOWN_INITIATED) {
|
&& srv_shutdown_state <= SRV_SHUTDOWN_INITIATED) {
|
||||||
ulint n_bytes;
|
ulint n_bytes;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user