summaryrefslogtreecommitdiff
path: root/storage/spider/mysql-test/spider/t/udf_pushdown.test
blob: 2eadbbbb40b3ece79713c47973de8d3f49cba26b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
--disable_warnings
--disable_query_log
--disable_result_log
--source test_init.inc
--enable_result_log
--enable_query_log

--echo #
--echo # MDEV-26545 Spider does not correctly handle UDF and stored function in where conds
--echo #

let $CHILD_CREATE_TABLE=
  CREATE TABLE ta_r (
    id INT NOT NULL,
    a INT,
    PRIMARY KEY(id)
  ) $CHILD2_1_ENGINE $CHILD2_1_CHARSET;

let $MASTER_CREATE_TABLE_OUTPUT=
  CREATE TABLE ta_l (
    id INT NOT NULL,
    a INT,
    PRIMARY KEY(id)
  ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;

let $MASTER_CREATE_TABLE=
  CREATE TABLE ta_l (
    id INT NOT NULL,
    a INT,
    PRIMARY KEY(id)
  ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;

--echo
--echo ##### enable general_log #####
--connection child2_1
SET @general_log_backup = @@global.general_log;
SET @log_output_backup = @@global.log_output;
SET @@global.general_log = 1;
SET @@global.log_output = "TABLE";
TRUNCATE TABLE mysql.general_log;

--echo
--echo ##### create databases #####
--connection master_1
CREATE DATABASE auto_test_local;
USE auto_test_local;
if ($USE_CHILD_GROUP2)
{
  --connection child2_1
  CREATE DATABASE auto_test_remote;
  USE auto_test_remote;
}

--echo
--echo ##### create tables #####
if ($USE_CHILD_GROUP2)
{
  --connection child2_1
  --disable_query_log
  echo CHILD_CREATE_TABLE;
  eval $CHILD_CREATE_TABLE;
  --enable_query_log
}

--connection master_1
--disable_query_log
echo MASTER_CREATE_TABLE;
echo $MASTER_CREATE_TABLE_OUTPUT;
eval $MASTER_CREATE_TABLE;
--enable_query_log

INSERT INTO ta_l VALUES
    (1, 11),
    (2, 22),
    (3, 33),
    (4, 44),
    (5, 55);

--echo
--echo ##### create functions #####
--connection master_1
DELIMITER //;
CREATE FUNCTION `plusone`( param INT ) RETURNS INT
BEGIN
    RETURN param + 1;
END //
DELIMITER ;//

--connection child2_1
DELIMITER //;
CREATE FUNCTION `plusone`( param INT ) RETURNS INT
BEGIN
    RETURN param + 1;
END //
DELIMITER ;//

--echo
--echo ########## spider_use_pushdown_udf=0 ##########
--connection master_1
SET @@spider_use_pushdown_udf = 0;
--source udf_pushdown.inc

--echo
--echo ##### reset records #####
--connection master_1
TRUNCATE TABLE ta_l;
INSERT INTO ta_l VALUES
    (1, 11),
    (2, 22),
    (3, 33),
    (4, 44),
    (5, 55);

--echo
--echo ########## spider_use_pushdown_udf=1 ##########
--connection master_1
SET @@spider_use_pushdown_udf = 1;
--source udf_pushdown.inc

--echo
--echo deinit
--disable_warnings
--connection master_1
DROP FUNCTION `plusone`;
DROP DATABASE IF EXISTS auto_test_local;
if ($USE_CHILD_GROUP2)
{
  --connection child2_1
  SET @@global.general_log = @general_log_backup;
  SET @@global.log_output = @log_output_backup;
  DROP FUNCTION `plusone`;
  DROP DATABASE IF EXISTS auto_test_remote;
}
--disable_query_log
--disable_result_log
--source test_deinit.inc
--enable_result_log
--enable_query_log
--enable_warnings
--echo
--echo end of test