Skip to content

Commit

Permalink
Post-merge fixes for mdev-12172, mdev-12176.
Browse files Browse the repository at this point in the history
  • Loading branch information
igorbabaev committed Nov 3, 2017
1 parent 9ada5a3 commit 388ba06
Show file tree
Hide file tree
Showing 12 changed files with 56 additions and 17 deletions.
2 changes: 1 addition & 1 deletion mysql-test/r/default.result
Expand Up @@ -547,7 +547,7 @@ CALL p1;
ERROR 42S22: Unknown column 'par' in 'DEFAULT'
DROP PROCEDURE p1;
CREATE TABLE t1 (a INT DEFAULT VALUE(a));
ERROR HY000: Function or expression 'values()' cannot be used in the DEFAULT clause of `a`
ERROR HY000: Function or expression 'value()' cannot be used in the DEFAULT clause of `a`
CREATE TABLE t1 (a INT);
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW CREATE TABLE t2 (a INT DEFAULT NEW.a);
ERROR HY000: Function or expression 'NEW.a' cannot be used in the DEFAULT clause of `a`
Expand Down
13 changes: 7 additions & 6 deletions mysql-test/suite/funcs_1/r/storedproc.result
Expand Up @@ -2775,7 +2775,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
SELECT * from t1 where f2=f1' at line 1
CREATE PROCEDURE values()
SELECT * from t1 where f2=f1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'values()
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '()
SELECT * from t1 where f2=f1' at line 1
CREATE PROCEDURE varbinary()
SELECT * from t1 where f2=f1;
Expand Down Expand Up @@ -5596,7 +5596,7 @@ CREATE PROCEDURE sp1()
values:BEGIN
SELECT @x;
END//
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'values:BEGIN
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':BEGIN
SELECT @x;
END' at line 2
DROP PROCEDURE IF EXISTS sp1;
Expand Down Expand Up @@ -9150,7 +9150,7 @@ CREATE PROCEDURE sp1()
BEGIN
declare values char;
END//
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'values char;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'char;
END' at line 3
DROP PROCEDURE IF EXISTS sp1;
Warnings:
Expand Down Expand Up @@ -11494,8 +11494,9 @@ BEGIN
declare values condition for sqlstate '02000';
declare exit handler for values set @var2 = 1;
END//
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'values condition for sqlstate '02000';
declare exit handler for values set @var2' at line 3
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'condition for sqlstate '02000';
declare exit handler for values set @var2 = 1;
E' at line 3
DROP PROCEDURE IF EXISTS sp1;
Warnings:
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
Expand Down Expand Up @@ -13608,7 +13609,7 @@ CREATE PROCEDURE sp1( )
BEGIN
declare values handler for sqlstate '02000' set @var2 = 1;
END//
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'values handler for sqlstate '02000' set @var2 = 1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'handler for sqlstate '02000' set @var2 = 1;
END' at line 3
DROP PROCEDURE IF EXISTS sp1;
Warnings:
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/gcol/inc/gcol_blocked_sql_funcs_main.inc
Expand Up @@ -111,7 +111,7 @@ create table t1 (a int, b int generated always as (sleep(a)) virtual);
--echo # VALUES()
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (values(a)) virtual);
create table t1 (a varchar(1024), b varchar(1024) generated always as (value(a)) virtual);
--echo # Stored procedures
Expand Down
4 changes: 2 additions & 2 deletions mysql-test/suite/gcol/r/gcol_blocked_sql_funcs_innodb.result
Expand Up @@ -70,8 +70,8 @@ ERROR HY000: Function or expression 'row_count()' cannot be used in the GENERATE
create table t1 (a int, b int generated always as (sleep(a)) virtual);
ERROR HY000: Function or expression 'sleep()' cannot be used in the GENERATED ALWAYS AS clause of `b`
# VALUES()
create table t1 (a varchar(1024), b varchar(1024) generated always as (values(a)) virtual);
ERROR HY000: Function or expression 'values()' cannot be used in the GENERATED ALWAYS AS clause of `b`
create table t1 (a varchar(1024), b varchar(1024) generated always as (value(a)) virtual);
ERROR HY000: Function or expression 'value()' cannot be used in the GENERATED ALWAYS AS clause of `b`
# Stored procedures
create procedure p1()
begin
Expand Down
4 changes: 2 additions & 2 deletions mysql-test/suite/gcol/r/gcol_blocked_sql_funcs_myisam.result
Expand Up @@ -72,8 +72,8 @@ ERROR HY000: Function or expression 'row_count()' cannot be used in the GENERATE
create table t1 (a int, b int generated always as (sleep(a)) virtual);
ERROR HY000: Function or expression 'sleep()' cannot be used in the GENERATED ALWAYS AS clause of `b`
# VALUES()
create table t1 (a varchar(1024), b varchar(1024) generated always as (values(a)) virtual);
ERROR HY000: Function or expression 'values()' cannot be used in the GENERATED ALWAYS AS clause of `b`
create table t1 (a varchar(1024), b varchar(1024) generated always as (value(a)) virtual);
ERROR HY000: Function or expression 'value()' cannot be used in the GENERATED ALWAYS AS clause of `b`
# Stored procedures
create procedure p1()
begin
Expand Down
22 changes: 22 additions & 0 deletions mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
Expand Up @@ -287,6 +287,19 @@
NUMERIC_BLOCK_SIZE 4096
ENUM_VALUE_LIST NULL
READ_ONLY NO
@@ -1556,10 +1556,10 @@
GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 10000
VARIABLE_SCOPE SESSION
-VARIABLE_TYPE BIGINT UNSIGNED
+VARIABLE_TYPE INT UNSIGNED
VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 18446744073709551615
+NUMERIC_MAX_VALUE 4294967295
NUMERIC_BLOCK_SIZE 1
ENUM_VALUE_LIST NULL
READ_ONLY NO
@@ -1639,7 +1639,7 @@
GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 86400
Expand Down Expand Up @@ -1267,3 +1280,12 @@
VARIABLE_COMMENT Size of transaction coordinator log.
ENUM_VALUE_LIST NULL
READ_ONLY YES
@@ -5422,7 +5422,7 @@
VARIABLE_TYPE BIGINT UNSIGNED
VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes
NUMERIC_MIN_VALUE 0
-NUMERIC_MAX_VALUE 18446744073709551615
+NUMERIC_MAX_VALUE 4294967295
NUMERIC_BLOCK_SIZE 1
ENUM_VALUE_LIST NULL
READ_ONLY NO
14 changes: 14 additions & 0 deletions mysql-test/suite/sys_vars/r/sysvars_server_embedded.result
Expand Up @@ -1424,6 +1424,20 @@ NUMERIC_BLOCK_SIZE 1
ENUM_VALUE_LIST NULL
READ_ONLY NO
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME IN_SUBQUERY_CONVERSION_THRESHOLD
SESSION_VALUE 10000
GLOBAL_VALUE 10000
GLOBAL_VALUE_ORIGIN COMPILE-TIME
DEFAULT_VALUE 10000
VARIABLE_SCOPE SESSION
VARIABLE_TYPE BIGINT UNSIGNED
VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery
NUMERIC_MIN_VALUE 0
NUMERIC_MAX_VALUE 18446744073709551615
NUMERIC_BLOCK_SIZE 1
ENUM_VALUE_LIST NULL
READ_ONLY NO
COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME IN_TRANSACTION
SESSION_VALUE 0
GLOBAL_VALUE NULL
Expand Down
4 changes: 2 additions & 2 deletions mysql-test/suite/vcol/r/vcol_blocked_sql_funcs.result
Expand Up @@ -127,8 +127,8 @@ ERROR HY000: Function or expression 'uuid_short()' cannot be used in the GENERAT
create or replace table t1 (a varchar(1024) as (uuid()) PERSISTENT);
ERROR HY000: Function or expression 'uuid()' cannot be used in the GENERATED ALWAYS AS clause of `a`
# VALUES()
create or replace table t1 (a varchar(1024), b varchar(1024) as (values(a)));
ERROR HY000: Function or expression 'values()' cannot be used in the GENERATED ALWAYS AS clause of `b`
create or replace table t1 (a varchar(1024), b varchar(1024) as (value(a)));
ERROR HY000: Function or expression 'value()' cannot be used in the GENERATED ALWAYS AS clause of `b`
# VERSION()
create or replace table t1 (a varchar(1024), b varchar(1024) as (version()) PERSISTENT);
ERROR HY000: Function or expression 'version()' cannot be used in the GENERATED ALWAYS AS clause of `b`
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/vcol/t/vcol_blocked_sql_funcs_main.inc
Expand Up @@ -187,7 +187,7 @@ create or replace table t1 (a varchar(1024) as (uuid()) PERSISTENT);

--echo # VALUES()
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (values(a)));
create or replace table t1 (a varchar(1024), b varchar(1024) as (value(a)));

--echo # VERSION()
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
Expand Down
2 changes: 1 addition & 1 deletion sql/item.h
Expand Up @@ -5506,7 +5506,7 @@ class Item_insert_value : public Item_field
bool update_vcol_processor(void *arg) { return 0; }
bool check_vcol_func_processor(void *arg)
{
return mark_unsupported_function("values()", arg, VCOL_IMPOSSIBLE);
return mark_unsupported_function("value()", arg, VCOL_IMPOSSIBLE);
}
};

Expand Down
1 change: 1 addition & 0 deletions sql/item_cmpfunc.h
Expand Up @@ -2302,6 +2302,7 @@ class Item_func_in :public Item_func_opt_neg,
Item_func_in(THD *thd, List<Item> &list):
Item_func_opt_neg(thd, list),
Predicant_to_list_comparator(thd, arg_count - 1),
transform_into_subq(false),
array(0), have_null(0),
arg_types_compatible(FALSE), emb_on_expr_nest(0)
{ }
Expand Down
3 changes: 2 additions & 1 deletion sql/sys_vars.cc
Expand Up @@ -5790,11 +5790,12 @@ static Sys_var_mybool Sys_session_track_state_change(
ON_CHECK(0),
ON_UPDATE(update_session_track_state_change));

#endif //EMBEDDED_LIBRARY

static Sys_var_ulong Sys_in_subquery_conversion_threshold(
"in_subquery_conversion_threshold",
"The minimum number of scalar elements in the value list of "
"IN predicate that triggers its conversion to IN subquery",
SESSION_VAR(in_subquery_conversion_threshold), CMD_LINE(OPT_ARG),
VALID_RANGE(0, ULONG_MAX), DEFAULT(10000), BLOCK_SIZE(1));

#endif //EMBEDDED_LIBRARY

0 comments on commit 388ba06

Please sign in to comment.