diff options
24 files changed, 5566 insertions, 39 deletions
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index bcc83e96cb9..0608665d6fc 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -121,7 +121,6 @@ static struct my_option my_long_options[]= &opt_not_used, &opt_not_used, 0 , GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Connect to host.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, -#define PASSWORD_OPT 12 {"password", 'p', "Password to use when connecting to server. If password is not given," " it's solicited on the tty.", &opt_password,&opt_password, @@ -153,7 +152,6 @@ static struct my_option my_long_options[]= {"upgrade-system-tables", 's', "Only upgrade the system tables in the mysql database. Tables in other databases are not checked or touched.", &opt_systables_only, &opt_systables_only, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, -#define USER_OPT (array_elements(my_long_options) - 6) {"user", 'u', "User for login.", &opt_user, &opt_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"verbose", 'v', "Display more output about the process; Using it twice will print connection argument; Using it 3 times will print out all CHECK, RENAME and ALTER TABLE during the check phase.", @@ -260,11 +258,11 @@ static void print_error(const char *error_msg, DYNAMIC_STRING *output) */ static void add_one_option_cmd_line(DYNAMIC_STRING *ds, - const struct my_option *opt, - const char* arg) + const char *name, + const char *arg) { dynstr_append(ds, "--"); - dynstr_append(ds, opt->name); + dynstr_append(ds, name); if (arg) { dynstr_append(ds, "="); @@ -274,10 +272,10 @@ static void add_one_option_cmd_line(DYNAMIC_STRING *ds, } static void add_one_option_cnf_file(DYNAMIC_STRING *ds, - const struct my_option *opt, - const char* arg) + const char *name, + const char *arg) { - dynstr_append(ds, opt->name); + dynstr_append(ds, name); if (arg) { dynstr_append(ds, "="); @@ -320,7 +318,7 @@ get_one_option(int optid, const struct my_option *opt, if (argument) { /* Add password to ds_args before overwriting the arg with x's */ - add_one_option_cnf_file(&ds_args, opt, argument); + add_one_option_cnf_file(&ds_args, opt->name, argument); while (*argument) *argument++= 'x'; /* Destroy argument */ tty_password= 0; @@ -378,7 +376,7 @@ get_one_option(int optid, const struct my_option *opt, case OPT_MYSQL_PROTOCOL: /* --protocol */ case OPT_PLUGIN_DIR: /* --plugin-dir */ case OPT_DEFAULT_AUTH: /* --default-auth */ - add_one_option_cmd_line(&conn_args, opt, argument); + add_one_option_cmd_line(&conn_args, opt->name, argument); break; } @@ -389,7 +387,7 @@ get_one_option(int optid, const struct my_option *opt, it can be passed on to "mysql" and "mysqlcheck" Save it in the ds_args string */ - add_one_option_cnf_file(&ds_args, opt, argument); + add_one_option_cnf_file(&ds_args, opt->name, argument); } return 0; } @@ -1349,12 +1347,10 @@ int main(int argc, char **argv) { opt_password= get_tty_password(NullS); /* add password to defaults file */ - add_one_option_cnf_file(&ds_args, &my_long_options[PASSWORD_OPT], opt_password); - DBUG_ASSERT(strcmp(my_long_options[PASSWORD_OPT].name, "password") == 0); + add_one_option_cnf_file(&ds_args, "password", opt_password); } /* add user to defaults file */ - add_one_option_cnf_file(&ds_args, &my_long_options[USER_OPT], opt_user); - DBUG_ASSERT(strcmp(my_long_options[USER_OPT].name, "user") == 0); + add_one_option_cnf_file(&ds_args, "user", opt_user); cnf_file_path= strmov(defaults_file, "--defaults-file="); { diff --git a/mysql-test/main/cte_nonrecursive.result b/mysql-test/main/cte_nonrecursive.result index c10ef142e5b..b1401baed6f 100644 --- a/mysql-test/main/cte_nonrecursive.result +++ b/mysql-test/main/cte_nonrecursive.result @@ -2185,6 +2185,39 @@ select * from t1; a 7 drop table t1,t2; +# +# MDEV-25766: Unused CTE lead to a crash in +# find_field_in_tables/find_order_in_list +# +create table t1 (f1 INTEGER); +create view v1 as +select +subq_0.c4 as c2, +subq_0.c4 as c4 +from +(select +ref_0.f1 as c4 +from +t1 as ref_0 +where (select 1) +) as subq_0 +order by c2, c4 desc; +WITH +unused_with AS (select +subq_0.c4 as c6 +from +(select +11 as c4 +from +v1 as ref_0 +) as subq_0, +v1 as ref_2 +) +select 1 ; +1 +1 +drop view v1; +drop table t1; # End of 10.2 tests # # MDEV-21673: several references to CTE that uses diff --git a/mysql-test/main/cte_nonrecursive.test b/mysql-test/main/cte_nonrecursive.test index 5af5cf04b66..40ccdcdb992 100644 --- a/mysql-test/main/cte_nonrecursive.test +++ b/mysql-test/main/cte_nonrecursive.test @@ -1625,6 +1625,42 @@ select * from t1; drop table t1,t2; +--echo # +--echo # MDEV-25766: Unused CTE lead to a crash in +--echo # find_field_in_tables/find_order_in_list +--echo # + +create table t1 (f1 INTEGER); + +create view v1 as +select + subq_0.c4 as c2, + subq_0.c4 as c4 + from + (select + ref_0.f1 as c4 + from + t1 as ref_0 + where (select 1) + ) as subq_0 + order by c2, c4 desc; + +WITH +unused_with AS (select + subq_0.c4 as c6 + from + (select + 11 as c4 + from + v1 as ref_0 + ) as subq_0, + v1 as ref_2 +) +select 1 ; + +drop view v1; +drop table t1; + --echo # End of 10.2 tests --echo # diff --git a/mysql-test/main/subselect4.result b/mysql-test/main/subselect4.result index e4e9a5c8917..eba624c3ae4 100644 --- a/mysql-test/main/subselect4.result +++ b/mysql-test/main/subselect4.result @@ -1358,6 +1358,8 @@ INSERT IGNORE INTO t2 VALUES (8,0,0),(5,0,0); CREATE TABLE t3 (f4 int,KEY (f4)) ; INSERT IGNORE INTO t3 VALUES (0),(0); set @@optimizer_switch='semijoin=off'; +# NOTE: the following should have 'SUBQUERY', not 'DEPENDENT SUBQUERY' +# for line with id=2, see MDEV-27794. EXPLAIN SELECT * FROM t1 WHERE (SELECT f2 FROM t2 @@ -1367,7 +1369,7 @@ FROM t3 AS SQ1_t1 JOIN t3 AS SQ1_t3 ON SQ1_t3.f4 GROUP BY SQ1_t1.f4)); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 system NULL NULL NULL NULL 1 -2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where +2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where 3 SUBQUERY SQ1_t1 index NULL f4 5 NULL 2 Using index; Using temporary 3 SUBQUERY SQ1_t3 index f4 f4 5 NULL 2 Using where; Using index; Using join buffer (flat, BNL join) SELECT * FROM t1 WHERE diff --git a/mysql-test/main/subselect4.test b/mysql-test/main/subselect4.test index 329a6726a6b..77c179bda61 100644 --- a/mysql-test/main/subselect4.test +++ b/mysql-test/main/subselect4.test @@ -1039,6 +1039,8 @@ INSERT IGNORE INTO t3 VALUES (0),(0); set @@optimizer_switch='semijoin=off'; +--echo # NOTE: the following should have 'SUBQUERY', not 'DEPENDENT SUBQUERY' +--echo # for line with id=2, see MDEV-27794. EXPLAIN SELECT * FROM t1 WHERE (SELECT f2 FROM t2 diff --git a/mysql-test/main/tmp_table_error.result b/mysql-test/main/tmp_table_error.result new file mode 100644 index 00000000000..3a1a9725001 --- /dev/null +++ b/mysql-test/main/tmp_table_error.result @@ -0,0 +1,2634 @@ +call mtr.add_suppression('Index for table'); +create table t1 ( +a int primary key, +b text +) engine=innodb; +create table t2 as +select +1 +from +(select distinct +b as c0, +b as c1, +b as c2, +b as c3, +b as c4, +b as c5, +b as c6, +b as c7, +b as c8, +b as c9, +b as c10, +b as c11, +b as c12, +b as c13, +b as c14, +b as c15, +b as c16, +b as c17, +b as c18, +b as c19, +b as c20, +b as c21, +b as c22, +b as c23, +b as c24, +b as c25, +b as c26, +b as c27, +b as c28, +b as c29, +b as c30, +b as c31, +b as c32, +b as c33, +b as c34, +b as c35, +b as c36, +b as c37, +b as c38, +b as c39, +b as c40, +b as c41, +b as c42, +b as c43, +b as c45, +b as c46, +b as c47, +b as c48, +b as c49, +b as c50, +b as c51, +b as c52, +b as c53, +b as c54, +b as c55, +b as c56, +b as c57, +b as c58, +b as c59, +b as c60, +b as c61, +b as c62, +b as c63, +b as c64, +b as c65, +b as c66, +b as c67, +b as c68, +b as c69, +b as c70, +b as c71, +b as c72, +b as c73, +b as c74, +b as c75, +b as c76, +b as c77, +b as c78, +b as c79, +b as c80, +b as c81, +b as c82, +b as c83, +b as c84, +b as c85, +b as c86, +b as c87, +b as c88, +b as c89, +b as c90, +b as c91, +b as c92, +b as c93, +b as c94, +b as c95, +b as c96, +b as c97, +b as c98, +b as c99, +b as c100, +b as c101, +b as c102, +b as c103, +b as c104, +b as c105, +b as c106, +b as c107, +b as c108, +b as c109, +b as c110, +b as c111, +b as c112, +b as c113, +b as c114, +b as c115, +b as c116, +b as c117, +b as c118, +b as c119, +b as c120, +b as c121, +b as c122, +b as c123, +b as c124, +b as c125, +b as c126, +b as c127, +b as c128, +b as c129, +b as c130, +b as c131, +b as c132, +b as c133, +b as c134, +b as c135, +b as c136, +b as c137, +b as c138, +b as c139, +b as c140, +b as c141, +b as c142, +b as c143, +b as c144, +b as c145, +b as c146, +b as c147, +b as c148, +b as c149, +b as c150, +b as c151, +b as c152, +b as c153, +b as c154, +b as c155, +b as c156, +b as c157, +b as c158, +b as c159, +b as c160, +b as c161, +b as c162, +b as c163, +b as c164, +b as c165, +b as c166, +b as c167, +b as c168, +b as c169, +b as c170, +b as c171, +b as c172, +b as c173, +b as c174, +b as c175, +b as c176, +b as c177, +b as c178, +b as c179, +b as c180, +b as c181, +b as c182, +b as c183, +b as c184, +b as c185, +b as c186, +b as c187, +b as c188, +b as c189, +b as c190, +b as c191, +b as c192, +b as c193, +b as c194, +b as c195, +b as c196, +b as c197, +b as c198, +b as c199, +b as c200, +b as c201, +b as c202, +b as c203, +b as c204, +b as c205, +b as c206, +b as c207, +b as c208, +b as c209, +b as c210, +b as c211, +b as c212, +b as c213, +b as c214, +b as c215, +b as c216, +b as c217, +b as c218, +b as c219, +b as c220, +b as c221, +b as c222, +b as c223, +b as c224, +b as c225, +b as c226, +b as c227, +b as c228, +b as c229, +b as c230, +b as c231, +b as c232, +b as c233, +b as c234, +b as c235, +b as c236, +b as c237, +b as c238, +b as c239, +b as c240, +b as c241, +b as c242, +b as c243, +b as c244, +b as c245, +b as c246, +b as c247, +b as c248, +b as c249, +b as c250, +b as c251, +b as c252, +b as c253, +b as c254, +b as c255, +b as c256, +b as c257, +b as c258, +b as c259, +b as c260, +b as c261, +b as c262, +b as c263, +b as c264, +b as c265, +b as c266, +b as c267, +b as c268, +b as c269, +b as c270, +b as c271, +b as c272, +b as c273, +b as c274, +b as c275, +b as c276, +b as c277, +b as c278, +b as c279, +b as c280, +b as c281, +b as c282, +b as c283, +b as c284, +b as c285, +b as c286, +b as c287, +b as c288, +b as c289, +b as c290, +b as c291, +b as c292, +b as c293, +b as c294, +b as c295, +b as c296, +b as c297, +b as c298, +b as c299, +b as c300, +b as c301, +b as c302, +b as c303, +b as c304, +b as c305, +b as c306, +b as c307, +b as c308, +b as c309, +b as c310, +b as c311, +b as c312, +b as c313, +b as c314, +b as c315, +b as c316, +b as c317, +b as c318, +b as c319, +b as c320, +b as c321, +b as c322, +b as c323, +b as c324, +b as c325, +b as c326, +b as c327, +b as c328, +b as c329, +b as c330, +b as c331, +b as c332, +b as c333, +b as c334, +b as c335, +b as c336, +b as c337, +b as c338, +b as c339, +b as c340, +b as c341, +b as c342, +b as c343, +b as c344, +b as c345, +b as c346, +b as c347, +b as c348, +b as c349, +b as c350, +b as c351, +b as c352, +b as c353, +b as c354, +b as c355, +b as c356, +b as c357, +b as c358, +b as c359, +b as c360, +b as c361, +b as c362, +b as c363, +b as c364, +b as c365, +b as c366, +b as c367, +b as c368, +b as c369, +b as c370, +b as c371, +b as c372, +b as c373, +b as c374, +b as c375, +b as c376, +b as c377, +b as c378, +b as c379, +b as c380, +b as c381, +b as c382, +b as c383, +b as c384, +b as c385, +b as c386, +b as c387, +b as c388, +b as c389, +b as c390, +b as c391, +b as c392, +b as c393, +b as c394, +b as c395, +b as c396, +b as c397, +b as c398, +b as c399, +b as c400, +b as c401, +b as c402, +b as c403, +b as c404, +b as c405, +b as c406, +b as c407, +b as c409, +b as c410, +b as c411, +b as c412, +b as c413, +b as c414, +b as c415, +b as c416, +b as c417, +b as c418, +b as c419, +b as c420, +b as c421, +b as c422, +b as c423, +b as c424, +b as c425, +b as c426, +b as c427, +b as c428, +b as c429, +b as c430, +b as c431, +b as c432, +b as c433, +b as c434, +b as c435, +b as c436, +b as c437, +b as c438, +b as c439, +b as c440, +b as c441, +b as c442, +b as c443, +b as c444, +b as c445, +b as c446, +b as c447, +b as c448, +b as c449, +b as c450, +b as c451, +b as c452, +b as c453, +b as c454, +b as c455, +b as c456, +b as c457, +b as c458, +b as c459, +b as c460, +b as c461, +b as c462, +b as c463, +b as c464, +b as c465, +b as c466, +b as c467, +b as c468, +b as c469, +b as c470, +b as c471, +b as c472, +b as c473, +b as c474, +b as c475, +b as c476, +b as c477, +b as c478, +b as c479, +b as c480, +b as c481, +b as c482, +b as c483, +b as c484, +b as c485, +b as c486, +b as c487, +b as c488, +b as c489, +b as c490, +b as c491, +b as c492, +b as c493, +b as c494, +b as c495, +b as c496, +b as c497, +b as c498, +b as c499, +b as c500, +b as c501, +b as c502, +b as c503, +b as c504, +b as c505, +b as c506, +b as c507, +b as c508, +b as c509, +b as c510, +b as c511, +b as c512, +b as c513, +b as c514, +b as c515, +b as c516, +b as c517, +b as c518, +b as c519, +b as c520, +b as c521, +b as c522, +b as c523, +b as c524, +b as c525, +b as c526, +b as c527, +b as c528, +b as c529, +b as c530, +b as c531, +b as c532, +b as c533, +b as c534, +b as c535, +b as c536, +b as c537, +b as c538, +b as c539, +b as c540, +b as c541, +b as c542, +b as c543, +b as c544, +b as c545, +b as c546, +b as c547, +b as c548, +b as c549, +b as c550, +b as c551, +b as c552, +b as c553, +b as c554, +b as c555, +b as c556, +b as c557, +b as c558, +b as c559, +b as c560, +b as c561, +b as c562, +b as c563, +b as c564, +b as c565, +b as c566, +b as c567, +b as c568, +b as c569, +b as c570, +b as c571, +b as c572, +b as c573, +b as c574, +b as c575, +b as c576, +b as c577, +b as c578, +b as c579, +b as c580, +b as c581, +b as c582, +b as c583, +b as c584, +b as c585, +b as c586, +b as c587, +b as c588, +b as c589, +b as c590, +b as c591, +b as c592, +b as c593, +b as c594, +b as c595, +b as c596, +b as c597, +b as c598, +b as c599, +b as c600, +b as c601, +b as c602, +b as c603, +b as c604, +b as c605, +b as c606, +b as c607, +b as c608, +b as c609, +b as c610, +b as c611, +b as c612, +b as c613, +b as c614, +b as c615, +b as c616, +b as c617, +b as c618, +b as c619, +b as c620, +b as c621, +b as c622, +b as c623, +b as c624, +b as c625, +b as c626, +b as c627, +b as c628, +b as c629, +b as c630, +b as c631, +b as c632, +b as c633, +b as c634, +b as c635, +b as c636, +b as c637, +b as c638, +b as c639, +b as c640, +b as c641, +b as c642, +b as c643, +b as c644, +b as c645, +b as c646, +b as c647, +b as c648, +b as c649, +b as c650, +b as c651, +b as c652, +b as c653, +b as c654, +b as c655, +b as c656, +b as c657, +b as c658, +b as c659, +b as c660, +b as c661, +b as c662, +b as c663, +b as c664, +b as c665, +b as c666, +b as c667, +b as c668, +b as c669, +b as c670, +b as c671, +b as c672, +b as c673, +b as c674, +b as c675, +b as c676, +b as c677, +b as c678, +b as c679, +b as c680, +b as c681, +b as c682, +b as c683, +b as c684, +b as c685, +b as c686, +b as c687, +b as c688, +b as c689, +b as c690, +b as c691, +b as c692, +b as c693, +b as c694, +b as c695, +b as c696, +b as c697, +b as c698, +b as c699, +b as c700, +b as c701, +b as c702, +b as c703, +b as c704, +b as c705, +b as c706, +b as c707, +b as c708, +b as c709, +b as c710, +b as c711, +b as c712, +b as c713, +b as c714, +b as c715, +b as c716, +b as c717, +b as c718, +b as c719, +b as c720, +b as c721, +b as c722, +b as c723, +b as c724, +b as c725, +b as c726, +b as c727, +b as c728, +b as c729, +b as c730, +b as c731, +b as c732, +b as c733, +b as c734, +b as c735, +b as c736, +b as c737, +b as c738, +b as c739, +b as c740, +b as c741, +b as c742, +b as c743, +b as c744, +b as c745, +b as c746, +b as c747, +b as c748, +b as c749, +b as c750, +b as c751, +b as c752, +b as c753, +b as c754, +b as c755, +b as c756, +b as c757, +b as c758, +b as c759, +b as c760, +b as c761, +b as c762, +b as c763, +b as c764, +b as c765, +b as c766, +b as c767, +b as c768, +b as c769, +b as c770, +b as c771, +b as c772, +b as c773, +b as c774, +b as c775, +b as c776, +b as c777, +b as c778, +b as c779, +b as c780, +b as c781, +b as c782, +b as c783, +b as c784, +b as c785, +b as c786, +b as c787, +b as c788, +b as c789, +b as c790, +b as c791, +b as c792, +b as c793, +b as c794, +b as c795, +b as c796, +b as c797, +b as c798, +b as c799, +b as c800, +b as c801, +b as c802, +b as c803, +b as c804, +b as c805, +b as c806, +b as c807, +b as c808, +b as c809, +b as c810, +b as c811, +b as c812, +b as c813, +b as c814, +b as c815, +b as c816, +b as c817, +b as c818, +b as c819, +b as c820, +b as c821, +b as c822, +b as c823, +b as c824, +b as c825, +b as c826, +b as c827, +b as c828, +b as c829, +b as c830, +b as c831, +b as c832, +b as c833, +b as c834, +b as c835, +b as c836, +b as c837, +b as c838, +b as c839, +b as c840, +b as c841, +b as c842, +b as c843, +b as c844, +b as c845, +b as c846, +b as c847, +b as c848, +b as c849, +b as c850, +b as c851, +b as c852, +b as c853, +b as c854, +b as c855, +b as c856, +b as c857, +b as c858, +b as c859, +b as c860, +b as c861, +b as c862, +b as c863, +b as c864, +b as c865, +b as c866, +b as c867, +b as c868, +b as c869, +b as c870, +b as c871, +b as c872, +b as c873, +b as c874, +b as c875, +b as c876, +b as c877, +b as c878, +b as c879, +b as c880, +b as c881, +b as c882, +b as c883, +b as c884, +b as c885, +b as c886, +b as c887, +b as c888, +b as c889, +b as c890, +b as c891, +b as c892, +b as c893, +b as c894, +b as c895, +b as c897, +b as c898, +b as c899, +b as c900, +b as c901, +b as c902, +b as c903, +b as c904, +b as c905, +b as c906, +b as c907, +b as c908, +b as c909, +b as c910, +b as c911, +b as c912, +b as c913, +b as c914, +b as c915, +b as c916, +b as c917, +b as c918, +b as c919, +b as c920, +b as c921, +b as c922, +b as c923, +b as c924, +b as c925, +b as c926, +b as c927, +b as c928, +b as c929, +b as c930, +b as c931, +b as c932, +b as c933, +b as c934, +b as c935, +b as c936, +b as c937, +b as c938, +b as c939, +b as c940, +b as c941, +b as c942, +b as c943, +b as c944, +b as c945, +b as c946, +b as c947, +b as c948, +b as c949, +b as c950, +b as c951, +b as c952, +b as c953, +b as c954, +b as c955, +b as c956, +b as c957, +b as c958, +b as c959, +b as c960, +b as c961, +b as c962, +b as c963, +b as c964, +b as c965, +b as c966, +b as c967, +b as c968, +b as c969, +b as c970, +b as c971, +b as c972, +b as c973, +b as c974, +b as c975, +b as c976, +b as c977, +b as c978, +b as c979, +b as c980, +b as c981, +b as c982, +b as c983, +b as c984, +b as c985, +b as c986, +b as c987, +b as c988, +b as c989, +b as c990, +b as c991, +b as c992, +b as c993, +b as c995, +b as c996, +b as c997, +b as c998, +b as c999, +b as c1000, +b as c1001, +b as c1002, +b as c1003, +b as c1004, +b as c1005, +b as c1006, +b as c1007, +b as c1008, +b as c1009, +b as c1010, +b as c1011, +b as c1012, +b as c1013, +b as c1014, +b as c1015, +b as c1016, +b as c1017, +b as c1018, +b as c1019, +b as c1020, +b as c1021, +b as c1022, +b as c1023, +b as c1024, +b as c1025, +b as c1026, +b as c1027, +b as c1028, +b as c1029, +b as c1030, +b as c1031, +b as c1032, +b as c1033, +b as c1034, +b as c1035, +b as c1036, +b as c1037, +b as c1038, +b as c1039, +b as c1040, +b as c1041, +b as c1042, +b as c1043, +b as c1044, +b as c1045, +b as c1046, +b as c1047, +b as c1048, +b as c1049, +b as c1050, +b as c1051, +b as c1052, +b as c1053, +b as c1054, +b as c1055, +b as c1056, +b as c1057, +b as c1058, +b as c1059, +b as c1060, +b as c1061, +b as c1062, +b as c1063, +b as c1064, +b as c1065, +b as c1066, +b as c1067, +b as c1068, +b as c1069, +b as c1070, +b as c1071, +b as c1072, +b as c1073, +b as c1074, +b as c1075, +b as c1076, +b as c1077, +b as c1078, +b as c1079, +b as c1080, +b as c1081, +b as c1082, +b as c1083, +b as c1084, +b as c1085, +b as c1086, +b as c1087, +b as c1088, +b as c1089, +b as c1090, +b as c1091, +b as c1092, +b as c1093, +b as c1094, +b as c1095, +b as c1096, +b as c1097, +b as c1098, +b as c1099, +b as c1100, +b as c1101, +b as c1102, +b as c1103, +b as c1104, +b as c1105, +b as c1106, +b as c1107, +b as c1108, +b as c1109, +b as c1110, +b as c1111, +b as c1112, +b as c1113, +b as c1114, +b as c1115, +b as c1116, +b as c1117, +b as c1118, +b as c1119, +b as c1120, +b as c1121, +b as c1122, +b as c1123, +b as c1124, +b as c1125, +b as c1126, +b as c1127, +b as c1128, +b as c1129, +b as c1130, +b as c1131, +b as c1132, +b as c1133, +b as c1134, +b as c1135, +b as c1136, +b as c1137, +b as c1138, +b as c1139, +b as c1140, +b as c1141, +b as c1142, +b as c1143, +b as c1144, +b as c1145, +b as c1146, +b as c1147, +b as c1148, +b as c1149, +b as c1150, +b as c1151, +b as c1152, +b as c1153, +b as c1154, +b as c1155, +b as c1156, +b as c1157, +b as c1158, +b as c1159, +b as c1160, +b as c1161, +b as c1162, +b as c1163, +b as c1164, +b as c1165, +b as c1166, +b as c1167, +b as c1168, +b as c1169, +b as c1170, +b as c1171, +b as c1172, +b as c1173, +b as c1174, +b as c1175, +b as c1176, +b as c1177, +b as c1178, +b as c1179, +b as c1180, +b as c1181, +b as c1182, +b as c1183, +b as c1184, +b as c1185, +b as c1186, +b as c1187, +b as c1188, +b as c1189, +b as c1190, +b as c1191, +b as c1192, +b as c1193, +b as c1194, +b as c1195, +b as c1196, +b as c1197, +b as c1198, +b as c1199, +b as c1200, +b as c1201, +b as c1202, +b as c1203, +b as c1204, +b as c1205, +b as c1206, +b as c1207, +b as c1208, +b as c1209, +b as c1210, +b as c1211, +b as c1212, +b as c1213, +b as c1214, +b as c1215, +b as c1216, +b as c1217, +b as c1218, +b as c1219, +b as c1220, +b as c1221, +b as c1222, +b as c1223, +b as c1224, +b as c1225, +b as c1226, +b as c1227, +b as c1228, +b as c1229, +b as c1230, +b as c1231, +b as c1232, +b as c1233, +b as c1234, +b as c1235, +b as c1236, +b as c1237, +b as c1238, +b as c1239, +b as c1240, +b as c1241, +b as c1242, +b as c1243, +b as c1244, +b as c1245, +b as c1246, +b as c1247, +b as c1248, +b as c1249, +b as c1250, +b as c1251, +b as c1252, +b as c1253, +b as c1254, +b as c1255, +b as c1256, +b as c1257, +b as c1258, +b as c1259, +b as c1260, +b as c1261, +b as c1262, +b as c1263, +b as c1264, +b as c1265, +b as c1266, +b as c1267, +b as c1268, +b as c1269, +b as c1270, +b as c1271, +b as c1272, +b as c1273, +b as c1274, +b as c1275, +b as c1276, +b as c1277, +b as c1278, +b as c1279, +b as c1280, +b as c1281, +b as c1282, +b as c1283, +b as c1284, +b as c1285, +b as c1286, +b as c1287, +b as c1288, +b as c1289, +b as c1290, +b as c1291, +b as c1292, +b as c1293, +b as c1294, +b as c1295, +b as c1296, +b as c1297, +b as c1298, +b as c1299, +b as c1300, +b as c1301, +b as c1302, +b as c1303, +b as c1304, +b as c1305, +b as c1306, +b as c1307, +b as c1308, +b as c1309, +b as c1310, +b as c1311, +b as c1312, +b as c1313, +b as c1314, +b as c1315, +b as c1316, +b as c1317, +b as c1318, +b as c1319, +b as c1320, +b as c1321, +b as c1322, +b as c1323, +b as c1324, +b as c1325, +b as c1326, +b as c1327, +b as c1328, +b as c1329, +b as c1330, +b as c1331, +b as c1332, +b as c1333, +b as c1334, +b as c1335, +b as c1336, +b as c1337, +b as c1338, +b as c1339, +b as c1340, +b as c1341, +b as c1342, +b as c1343, +b as c1344, +b as c1345, +b as c1346, +b as c1347, +b as c1348, +b as c1349, +b as c1350, +b as c1351, +b as c1352, +b as c1353, +b as c1354, +b as c1355, +b as c1356, +b as c1357, +b as c1358, +b as c1359, +b as c1360, +b as c1361, +b as c1362, +b as c1363, +b as c1364, +b as c1365, +b as c1366, +b as c1367, +b as c1368, +b as c1369, +b as c1370, +b as c1371, +b as c1372, +b as c1373, +b as c1374, +b as c1375, +b as c1376, +b as c1377, +b as c1378, +b as c1379, +b as c1380, +b as c1381, +b as c1382, +b as c1383, +b as c1384, +b as c1385, +b as c1386, +b as c1387, +b as c1388, +b as c1389, +b as c1390, +b as c1391, +b as c1392, +b as c1393, +b as c1394, +b as c1395, +b as c1396, +b as c1397, +b as c1398, +b as c1399, +b as c1400, +b as c1401, +b as c1402, +b as c1403, +b as c1404, +b as c1405, +b as c1406, +b as c1407, +b as c1408, +b as c1409, +b as c1410, +b as c1411, +b as c1412, +b as c1413, +b as c1414, +b as c1415, +b as c1416, +b as c1417, +b as c1418, +b as c1419, +b as c1420, +b as c1421, +b as c1422, +b as c1423, +b as c1424, +b as c1425, +b as c1426, +b as c1427, +b as c1428, +b as c1429, +b as c1430, +b as c1431, +b as c1432, +b as c1433, +b as c1434, +b as c1435, +b as c1436, +b as c1437, +b as c1438, +b as c1439, +b as c1440, +b as c1441, +b as c1442, +b as c1443, +b as c1444, +b as c1445, +b as c1446, +b as c1447, +b as c1448, +b as c1449, +b as c1451, +b as c1452, +b as c1453, +b as c1454, +b as c1455, +b as c1456, +b as c1457, +b as c1458, +b as c1459, +b as c1460, +b as c1461, +b as c1462, +b as c1463, +b as c1464, +b as c1465, +b as c1466, +b as c1467, +b as c1468, +b as c1469, +b as c1470, +b as c1471, +b as c1472, +b as c1473, +b as c1474, +b as c1475, +b as c1476, +b as c1477, +b as c1478, +b as c1479, +b as c1480, +b as c1481, +b as c1482, +b as c1483, +b as c1484, +b as c1485, +b as c1486, +b as c1487, +b as c1488, +b as c1489, +b as c1490, +b as c1491, +b as c1492, +b as c1493, +b as c1494, +b as c1495, +b as c1496, +b as c1497, +b as c1498, +b as c1499, +b as c1500, +b as c1501, +b as c1502, +b as c1503, +b as c1504, +b as c1505, +b as c1506, +b as c1507, +b as c1508, +b as c1509, +b as c1510, +b as c1511, +b as c1512, +b as c1513, +b as c1514, +b as c1515, +b as c1516, +b as c1517, +b as c1518, +b as c1519, +b as c1520, +b as c1521, +b as c1522, +b as c1523, +b as c1524, +b as c1525, +b as c1526, +b as c1527, +b as c1528, +b as c1529, +b as c1530, +b as c1531, +b as c1532, +b as c1533, +b as c1534, +b as c1535, +b as c1536, +b as c1537, +b as c1538, +b as c1539, +b as c1540, +b as c1541, +b as c1542, +b as c1543, +b as c1544, +b as c1545, +b as c1546, +b as c1547, +b as c1548, +b as c1549, +b as c1550, +b as c1551, +b as c1552, +b as c1553, +b as c1554, +b as c1555, +b as c1556, +b as c1557, +b as c1558, +b as c1559, +b as c1560, +b as c1561, +b as c1562, +b as c1563, +b as c1564, +b as c1565, +b as c1566, +b as c1567, +b as c1568, +b as c1569, +b as c1570, +b as c1571, +b as c1572, +b as c1573, +b as c1574, +b as c1575, +b as c1576, +b as c1577, +b as c1578, +b as c1579, +b as c1580, +b as c1581, +b as c1582, +b as c1583, +b as c1584, +b as c1585, +b as c1586, +b as c1587, +b as c1588, +b as c1589, +b as c1590, +b as c1591, +b as c1592, +b as c1593, +b as c1594, +b as c1595, +b as c1596, +b as c1597, +b as c1598, +b as c1599, +b as c1600, +b as c1601, +b as c1602, +b as c1603, +b as c1604, +b as c1605, +b as c1606, +b as c1607, +b as c1608, +b as c1609, +b as c1610, +b as c1611, +b as c1612, +b as c1613, +b as c1614, +b as c1615, +b as c1616, +b as c1617, +b as c1618, +b as c1619, +b as c1620, +b as c1621, +b as c1622, +b as c1623, +b as c1624, +b as c1625, +b as c1626, +b as c1627, +b as c1628, +b as c1629, +b as c1630, +b as c1631, +b as c1632, +b as c1633, +b as c1634, +b as c1635, +b as c1636, +b as c1637, +b as c1638, +b as c1639, +b as c1640, +b as c1641, +b as c1642, +b as c1643, +b as c1644, +b as c1645, +b as c1646, +b as c1647, +b as c1648, +b as c1649, +b as c1650, +b as c1651, +b as c1652, +b as c1653, +b as c1654, +b as c1655, +b as c1656, +b as c1657, +b as c1658, +b as c1659, +b as c1660, +b as c1661, +b as c1662, +b as c1663, +b as c1664, +b as c1665, +b as c1666, +b as c1667, +b as c1668, +b as c1669, +b as c1670, +b as c1671, +b as c1672, +b as c1673, +b as c1674, +b as c1675, +b as c1676, +b as c1677, +b as c1678, +b as c1679, +b as c1680, +b as c1681, +b as c1682, +b as c1683, +b as c1684, +b as c1685, +b as c1686, +b as c1687, +b as c1688, +b as c1689, +b as c1690, +b as c1691, +b as c1692, +b as c1693, +b as c1694, +b as c1695, +b as c1696, +b as c1697, +b as c1698, +b as c1699, +b as c1700, +b as c1701, +b as c1702, +b as c1703, +b as c1704, +b as c1705, +b as c1706, +b as c1707, +b as c1708, +b as c1709, +b as c1710, +b as c1711, +b as c1712, +b as c1713, +b as c1714, +b as c1715, +b as c1716, +b as c1717, +b as c1718, +b as c1719, +b as c1720, +b as c1721, +b as c1722, +b as c1723, +b as c1724, +b as c1725, +b as c1726, +b as c1727, +b as c1728, +b as c1729, +b as c1730, +b as c1731, +b as c1732, +b as c1733, +b as c1734, +b as c1735, +b as c1736, +b as c1737, +b as c1738, +b as c1739, +b as c1740, +b as c1741, +b as c1742, +b as c1743, +b as c1744, +b as c1745, +b as c1746, +b as c1747, +b as c1748, +b as c1749, +b as c1750, +b as c1751, +b as c1752, +b as c1753, +b as c1754, +b as c1755, +b as c1756, +b as c1757, +b as c1758, +b as c1759, +b as c1760, +b as c1761, +b as c1762, +b as c1763, +b as c1764, +b as c1765, +b as c1766, +b as c1767, +b as c1768, +b as c1769, +b as c1770, +b as c1771, +b as c1772, +b as c1773, +b as c1774, +b as c1775, +b as c1776, +b as c1777, +b as c1778, +b as c1779, +b as c1780, +b as c1781, +b as c1782, +b as c1783, +b as c1784, +b as c1785, +b as c1786, +b as c1787, +b as c1788, +b as c1789, +b as c1790, +b as c1791, +b as c1792, +b as c1793, +b as c1794, +b as c1795, +b as c1796, +b as c1797, +b as c1798, +b as c1799, +b as c1800, +b as c1801, +b as c1802, +b as c1803, +b as c1804, +b as c1805, +b as c1806, +b as c1807, +b as c1808, +b as c1809, +b as c1810, +b as c1811, +b as c1812, +b as c1813, +b as c1814, +b as c1815, +b as c1816, +b as c1817, +b as c1818, +b as c1819, +b as c1820, +b as c1821, +b as c1822, +b as c1823, +b as c1824, +b as c1825, +b as c1826, +b as c1827, +b as c1828, +b as c1829, +b as c1830, +b as c1831, +b as c1832, +b as c1833, +b as c1834, +b as c1835, +b as c1836, +b as c1837, +b as c1838, +b as c1839, +b as c1840, +b as c1841, +b as c1842, +b as c1843, +b as c1844, +b as c1845, +b as c1846, +b as c1847, +b as c1848, +b as c1849, +b as c1850, +b as c1851, +b as c1852, +b as c1853, +b as c1854, +b as c1855, +b as c1856, +b as c1857, +b as c1858, +b as c1859, +b as c1860, +b as c1861, +b as c1862, +b as c1863, +b as c1864, +b as c1865, +b as c1866, +b as c1867, +b as c1868, +b as c1869, +b as c1870, +b as c1871, +b as c1872, +b as c1873, +b as c1874, +b as c1875, +b as c1876, +b as c1877, +b as c1878, +b as c1879, +b as c1880, +b as c1881, +b as c1882, +b as c1883, +b as c1884, +b as c1885, +b as c1886, +b as c1887, +b as c1888, +b as c1889, +b as c1890, +b as c1891, +b as c1892, +b as c1893, +b as c1894, +b as c1895, +b as c1896, +b as c1897, +b as c1898, +b as c1899, +b as c1900, +b as c1901, +b as c1902, +b as c1903, +b as c1904, +b as c1905, +b as c1906, +b as c1907, +b as c1908, +b as c1909, +b as c1910, +b as c1911, +b as c1912, +b as c1913, +b as c1914, +b as c1915, +b as c1916, +b as c1917, +b as c1918, +b as c1919, +b as c1920, +b as c1921, +b as c1922, +b as c1923, +b as c1924, +b as c1925, +b as c1926, +b as c1927, +b as c1928, +b as c1929, +b as c1930, +b as c1931, +b as c1932, +b as c1933, +b as c1934, +b as c1935, +b as c1936, +b as c1937, +b as c1938, +b as c1939, +b as c1940, +b as c1941, +b as c1942, +b as c1943, +b as c1944, +b as c1945, +b as c1946, +b as c1947, +b as c1948, +b as c1949, +b as c1950, +b as c1951, +b as c1952, +b as c1953, +b as c1954, +b as c1955, +b as c1956, +b as c1957, +b as c1958, +b as c1959, +b as c1960, +b as c1961, +b as c1962, +b as c1963, +b as c1964, +b as c1965, +b as c1966, +b as c1967, +b as c1968, +b as c1969, +b as c1970, +b as c1971, +b as c1972, +b as c1973, +b as c1974, +b as c1975, +b as c1976, +b as c1977, +b as c1978, +b as c1979, +b as c1980, +b as c1981, +b as c1982, +b as c1983, +b as c1984, +b as c1985, +b as c1986, +b as c1987, +b as c1988, +b as c1989, +b as c1990, +b as c1991, +b as c1992, +b as c1993, +b as c1994, +b as c1995, +b as c1996, +b as c1997, +b as c1998, +b as c1999, +b as c2000, +b as c2001, +b as c2002, +b as c2003, +b as c2004, +b as c2005, +b as c2006, +b as c2007, +b as c2008, +b as c2009, +b as c2010, +b as c2011, +b as c2012, +b as c2013, +b as c2014, +b as c2015, +b as c2016, +b as c2017, +b as c2018, +b as c2019, +b as c2020, +b as c2021, +b as c2022, +b as c2023, +b as c2024, +b as c2025, +b as c2026, +b as c2027, +b as c2028, +b as c2029, +b as c2030, +b as c2031, +b as c2032, +b as c2033, +b as c2034, +b as c2035, +b as c2036, +b as c2037, +b as c2038, +b as c2039, +b as c2040, +b as c2041, +b as c2042, +b as c2043, +b as c2044, +b as c2045, +b as c2046, +b as c2047, +b as c2048, +b as c2049, +b as c2050, +b as c2051, +b as c2052, +b as c2053, +b as c2054, +b as c2055, +b as c2056, +b as c2057, +b as c2058, +b as c2059, +b as c2060, +b as c2061, +b as c2062, +b as c2063, +b as c2064, +b as c2065, +b as c2066, +b as c2067, +b as c2068, +b as c2069, +b as c2070, +b as c2071, +b as c2072, +b as c2073, +b as c2074, +b as c2075, +b as c2076, +b as c2077, +b as c2078, +b as c2079, +b as c2080, +b as c2081, +b as c2082, +b as c2083, +b as c2084, +b as c2085, +b as c2086, +b as c2087, +b as c2088, +b as c2089, +b as c2090, +b as c2091, +b as c2092, +b as c2093, +b as c2094, +b as c2095, +b as c2096, +b as c2097, +b as c2098, +b as c2099, +b as c2100, +b as c2101, +b as c2102, +b as c2103, +b as c2104, +b as c2105, +b as c2106, +b as c2107, +b as c2108, +b as c2109, +b as c2110, +b as c2111, +b as c2112, +b as c2113, +b as c2114, +b as c2115, +b as c2116, +b as c2117, +b as c2118, +b as c2119, +b as c2120, +b as c2121, +b as c2122, +b as c2123, +b as c2124, +b as c2125, +b as c2126, +b as c2127, +b as c2128, +b as c2129, +b as c2130, +b as c2131, +b as c2132, +b as c2133, +b as c2134, +b as c2135, +b as c2136, +b as c2137, +b as c2138, +b as c2139, +b as c2140, +b as c2141, +b as c2142, +b as c2143, +b as c2144, +b as c2145, +b as c2146, +b as c2147, +b as c2148, +b as c2149, +b as c2150, +b as c2151, +b as c2152, +b as c2153, +b as c2154, +b as c2155, +b as c2156, +b as c2157, +b as c2158, +b as c2159, +b as c2160, +b as c2161, +b as c2162, +b as c2163, +b as c2164, +b as c2165, +b as c2166, +b as c2167, +b as c2168, +b as c2169, +b as c2170, +b as c2171, +b as c2172, +b as c2173, +b as c2174, +b as c2175, +b as c2176, +b as c2177, +b as c2178, +b as c2179, +b as c2180, +b as c2181, +b as c2182, +b as c2183, +b as c2184, +b as c2185, +b as c2186, +b as c2187, +b as c2188, +b as c2189, +b as c2190, +b as c2191, +b as c2192, +b as c2193, +b as c2194, +b as c2195, +b as c2196, +b as c2197, +b as c2198, +b as c2199, +b as c2200, +b as c2201, +b as c2202, +b as c2203, +b as c2204, +b as c2205, +b as c2206, +b as c2207, +b as c2208, +b as c2209, +b as c2210, +b as c2211, +b as c2212, +b as c2213, +b as c2214, +b as c2215, +b as c2216, +b as c2217, +b as c2218, +b as c2219, +b as c2220, +b as c2221, +b as c2222, +b as c2223, +b as c2224, +b as c2225, +b as c2226, +b as c2227, +b as c2228, +b as c2229, +b as c2230, +b as c2231, +b as c2232, +b as c2233, +b as c2234, +b as c2235, +b as c2236, +b as c2237, +b as c2238, +b as c2239, +b as c2240, +b as c2241, +b as c2242, +b as c2243, +b as c2244, +b as c2245, +b as c2246, +b as c2247, +b as c2248, +b as c2249, +b as c2250, +b as c2251, +b as c2252, +b as c2253, +b as c2254, +b as c2255, +b as c2256, +b as c2257, +b as c2258, +b as c2259, +b as c2260, +b as c2261, +b as c2262, +b as c2263, +b as c2264, +b as c2265, +b as c2266, +b as c2267, +b as c2268, +b as c2269, +b as c2270, +b as c2271, +b as c2272, +b as c2273, +b as c2274, +b as c2275, +b as c2276, +b as c2277, +b as c2278, +b as c2279, +b as c2280, +b as c2281, +b as c2282, +b as c2283, +b as c2284, +b as c2285, +b as c2286, +b as c2287, +b as c2288, +b as c2289, +b as c2290, +b as c2291, +b as c2292, +b as c2293, +b as c2294, +b as c2295, +b as c2296, +b as c2297, +b as c2298, +b as c2299, +b as c2300, +b as c2301, +b as c2302, +b as c2303, +b as c2304, +b as c2305, +b as c2306, +b as c2307, +b as c2308, +b as c2309, +b as c2310, +b as c2311, +b as c2312, +b as c2313, +b as c2314, +b as c2315, +b as c2316, +b as c2317, +b as c2318, +b as c2319, +b as c2320, +b as c2321, +b as c2322, +b as c2323, +b as c2324, +b as c2325, +b as c2326, +b as c2327, +b as c2328, +b as c2329, +b as c2330, +b as c2331, +b as c2332, +b as c2333, +b as c2334, +b as c2335, +b as c2336, +b as c2337, +b as c2338, +b as c2339, +b as c2340, +b as c2341, +b as c2342, +b as c2343, +b as c2344, +b as c2345, +b as c2346, +b as c2347, +b as c2348, +b as c2349, +b as c2350, +b as c2351, +b as c2352, +b as c2353, +b as c2354, +b as c2355, +b as c2356, +b as c2357, +b as c2358, +b as c2359, +b as c2360, +b as c2361, +b as c2362, +b as c2363, +b as c2364, +b as c2365, +b as c2366, +b as c2367, +b as c2368, +b as c2369, +b as c2370, +b as c2371, +b as c2372, +b as c2373, +b as c2374, +b as c2375, +b as c2376, +b as c2377, +b as c2378, +b as c2379, +b as c2380, +b as c2381, +b as c2382, +b as c2383, +b as c2384, +b as c2385, +b as c2386, +b as c2387, +b as c2388, +b as c2389, +b as c2390, +b as c2391, +b as c2392, +b as c2393, +b as c2394, +b as c2395, +b as c2396, +b as c2397, +b as c2398, +b as c2399, +b as c2400, +b as c2401, +b as c2402, +b as c2403, +b as c2404, +b as c2405, +b as c2406, +b as c2407, +b as c2408, +b as c2409, +b as c2410, +b as c2411, +b as c2412, +b as c2413, +b as c2414, +b as c2415, +b as c2416, +b as c2417, +b as c2418, +b as c2419, +b as c2420, +b as c2421, +b as c2422, +b as c2423, +b as c2424, +b as c2425, +b as c2426, +b as c2427, +b as c2428, +b as c2429, +b as c2430, +b as c2431, +b as c2432, +b as c2433, +b as c2434, +b as c2435, +b as c2436, +b as c2437, +b as c2438, +b as c2439, +b as c2440, +b as c2441, +b as c2442, +b as c2443, +b as c2444, +b as c2445, +b as c2446, +b as c2447, +b as c2448, +b as c2449, +b as c2450, +b as c2451, +b as c2452, +b as c2453, +b as c2454, +b as c2455, +b as c2456, +b as c2457, +b as c2458, +b as c2459, +b as c2460, +b as c2461, +b as c2462, +b as c2463, +b as c2464, +b as c2465, +b as c2466, +b as c2467, +b as c2468, +b as c2469, +b as c2470, +b as c2471, +b as c2472, +b as c2473, +b as c2474, +b as c2475, +b as c2476, +b as c2477, +b as c2478, +b as c2479, +b as c2480, +b as c2481, +b as c2482, +b as c2483, +b as c2484, +b as c2485, +b as c2486, +b as c2487, +b as c2488, +b as c2489, +b as c2490, +b as c2491, +b as c2492, +b as c2493, +b as c2494, +b as c2495, +b as c2496, +b as c2497, +b as c2498, +b as c2499, +b as c2500, +b as c2501, +b as c2503, +b as c2504, +b as c2505, +b as c2506, +b as c2507, +b as c2508, +b as c2509, +b as c2510, +b as c2511, +b as c2512, +b as c2513, +b as c2514, +b as c2515, +b as c2516, +b as c2517, +b as c2518, +b as c2519, +b as c2520, +b as c2521, +b as c2522, +b as c2523, +b as c2524, +b as c2525, +b as c2526, +b as c2527, +b as c2528, +b as c2529, +b as c2530, +b as c2531, +b as c2532, +b as c2533, +b as c2534, +b as c2535, +b as c2536, +b as c2537, +b as c2538, +b as c2539, +b as c2540, +b as c2541, +b as c2542, +b as c2543, +b as c2544, +b as c2545, +b as c2546, +b as c2547, +b as c2548, +b as c2549, +b as c2550, +b as c2551, +b as c2552, +b as c2553, +b as c2554, +b as c2555, +b as c2556, +b as c2557, +b as c2558, +b as c2559, +b as c2560, +b as c2561, +b as c2562, +b as c2563, +b as c2564, +b as c2565, +b as c2566, +b as c2567, +b as c2568, +b as c2569, +b as c2570, +b as c2571, +b as c2572, +b as c2573, +b as c2574, +b as c2575, +b as c2576, +b as c2577, +b as c2578, +b as c2579, +b as c2580, +b as c2581, +b as c2582, +b as c2583, +b as c2584, +b as c2585, +b as c2586, +b as c2587, +b as c2588, +b as c2589, +b as c2590, +b as c2591, +b as c2592, +b as c2593, +b as c2594, +b as c2595, +b as c2596, +b as c2597, +b as c2598, +b as c2599, +b as c2600, +b as c2601, +b as c2602, +b as c2603, +b as c2604, +b as c2605, +b as c2606, +b as c2607, +b as c2608, +b as c2609, +b as c2610, +b as c2611, +b as c2612, +b as c2613, +b as c2614, +b as c2615, +b as c2616, +b as c2617, +b as c2618, +b as c2619, +b as c2620, +b as c2621, +b as c2622, +b as c2623, +b as c2624, +b as c2626 +from t1 +) as tt1; +ERROR 0A000: Aria table 'tmp' has too many columns and/or indexes and/or unique constraints. +drop table t1; diff --git a/mysql-test/main/tmp_table_error.test b/mysql-test/main/tmp_table_error.test new file mode 100644 index 00000000000..dbddaaaa4c7 --- /dev/null +++ b/mysql-test/main/tmp_table_error.test @@ -0,0 +1,2637 @@ +source include/have_innodb.inc; +call mtr.add_suppression('Index for table'); +create table t1 ( + a int primary key, + b text +) engine=innodb; + +--replace_regex /'.*'/'tmp'/ +--error 140 +create table t2 as +select + 1 + from + (select distinct + b as c0, + b as c1, + b as c2, + b as c3, + b as c4, + b as c5, + b as c6, + b as c7, + b as c8, + b as c9, + b as c10, + b as c11, + b as c12, + b as c13, + b as c14, + b as c15, + b as c16, + b as c17, + b as c18, + b as c19, + b as c20, + b as c21, + b as c22, + b as c23, + b as c24, + b as c25, + b as c26, + b as c27, + b as c28, + b as c29, + b as c30, + b as c31, + b as c32, + b as c33, + b as c34, + b as c35, + b as c36, + b as c37, + b as c38, + b as c39, + b as c40, + b as c41, + b as c42, + b as c43, + b as c45, + b as c46, + b as c47, + b as c48, + b as c49, + b as c50, + b as c51, + b as c52, + b as c53, + b as c54, + b as c55, + b as c56, + b as c57, + b as c58, + b as c59, + b as c60, + b as c61, + b as c62, + b as c63, + b as c64, + b as c65, + b as c66, + b as c67, + b as c68, + b as c69, + b as c70, + b as c71, + b as c72, + b as c73, + b as c74, + b as c75, + b as c76, + b as c77, + b as c78, + b as c79, + b as c80, + b as c81, + b as c82, + b as c83, + b as c84, + b as c85, + b as c86, + b as c87, + b as c88, + b as c89, + b as c90, + b as c91, + b as c92, + b as c93, + b as c94, + b as c95, + b as c96, + b as c97, + b as c98, + b as c99, + b as c100, + b as c101, + b as c102, + b as c103, + b as c104, + b as c105, + b as c106, + b as c107, + b as c108, + b as c109, + b as c110, + b as c111, + b as c112, + b as c113, + b as c114, + b as c115, + b as c116, + b as c117, + b as c118, + b as c119, + b as c120, + b as c121, + b as c122, + b as c123, + b as c124, + b as c125, + b as c126, + b as c127, + b as c128, + b as c129, + b as c130, + b as c131, + b as c132, + b as c133, + b as c134, + b as c135, + b as c136, + b as c137, + b as c138, + b as c139, + b as c140, + b as c141, + b as c142, + b as c143, + b as c144, + b as c145, + b as c146, + b as c147, + b as c148, + b as c149, + b as c150, + b as c151, + b as c152, + b as c153, + b as c154, + b as c155, + b as c156, + b as c157, + b as c158, + b as c159, + b as c160, + b as c161, + b as c162, + b as c163, + b as c164, + b as c165, + b as c166, + b as c167, + b as c168, + b as c169, + b as c170, + b as c171, + b as c172, + b as c173, + b as c174, + b as c175, + b as c176, + b as c177, + b as c178, + b as c179, + b as c180, + b as c181, + b as c182, + b as c183, + b as c184, + b as c185, + b as c186, + b as c187, + b as c188, + b as c189, + b as c190, + b as c191, + b as c192, + b as c193, + b as c194, + b as c195, + b as c196, + b as c197, + b as c198, + b as c199, + b as c200, + b as c201, + b as c202, + b as c203, + b as c204, + b as c205, + b as c206, + b as c207, + b as c208, + b as c209, + b as c210, + b as c211, + b as c212, + b as c213, + b as c214, + b as c215, + b as c216, + b as c217, + b as c218, + b as c219, + b as c220, + b as c221, + b as c222, + b as c223, + b as c224, + b as c225, + b as c226, + b as c227, + b as c228, + b as c229, + b as c230, + b as c231, + b as c232, + b as c233, + b as c234, + b as c235, + b as c236, + b as c237, + b as c238, + b as c239, + b as c240, + b as c241, + b as c242, + b as c243, + b as c244, + b as c245, + b as c246, + b as c247, + b as c248, + b as c249, + b as c250, + b as c251, + b as c252, + b as c253, + b as c254, + b as c255, + b as c256, + b as c257, + b as c258, + b as c259, + b as c260, + b as c261, + b as c262, + b as c263, + b as c264, + b as c265, + b as c266, + b as c267, + b as c268, + b as c269, + b as c270, + b as c271, + b as c272, + b as c273, + b as c274, + b as c275, + b as c276, + b as c277, + b as c278, + b as c279, + b as c280, + b as c281, + b as c282, + b as c283, + b as c284, + b as c285, + b as c286, + b as c287, + b as c288, + b as c289, + b as c290, + b as c291, + b as c292, + b as c293, + b as c294, + b as c295, + b as c296, + b as c297, + b as c298, + b as c299, + b as c300, + b as c301, + b as c302, + b as c303, + b as c304, + b as c305, + b as c306, + b as c307, + b as c308, + b as c309, + b as c310, + b as c311, + b as c312, + b as c313, + b as c314, + b as c315, + b as c316, + b as c317, + b as c318, + b as c319, + b as c320, + b as c321, + b as c322, + b as c323, + b as c324, + b as c325, + b as c326, + b as c327, + b as c328, + b as c329, + b as c330, + b as c331, + b as c332, + b as c333, + b as c334, + b as c335, + b as c336, + b as c337, + b as c338, + b as c339, + b as c340, + b as c341, + b as c342, + b as c343, + b as c344, + b as c345, + b as c346, + b as c347, + b as c348, + b as c349, + b as c350, + b as c351, + b as c352, + b as c353, + b as c354, + b as c355, + b as c356, + b as c357, + b as c358, + b as c359, + b as c360, + b as c361, + b as c362, + b as c363, + b as c364, + b as c365, + b as c366, + b as c367, + b as c368, + b as c369, + b as c370, + b as c371, + b as c372, + b as c373, + b as c374, + b as c375, + b as c376, + b as c377, + b as c378, + b as c379, + b as c380, + b as c381, + b as c382, + b as c383, + b as c384, + b as c385, + b as c386, + b as c387, + b as c388, + b as c389, + b as c390, + b as c391, + b as c392, + b as c393, + b as c394, + b as c395, + b as c396, + b as c397, + b as c398, + b as c399, + b as c400, + b as c401, + b as c402, + b as c403, + b as c404, + b as c405, + b as c406, + b as c407, + b as c409, + b as c410, + b as c411, + b as c412, + b as c413, + b as c414, + b as c415, + b as c416, + b as c417, + b as c418, + b as c419, + b as c420, + b as c421, + b as c422, + b as c423, + b as c424, + b as c425, + b as c426, + b as c427, + b as c428, + b as c429, + b as c430, + b as c431, + b as c432, + b as c433, + b as c434, + b as c435, + b as c436, + b as c437, + b as c438, + b as c439, + b as c440, + b as c441, + b as c442, + b as c443, + b as c444, + b as c445, + b as c446, + b as c447, + b as c448, + b as c449, + b as c450, + b as c451, + b as c452, + b as c453, + b as c454, + b as c455, + b as c456, + b as c457, + b as c458, + b as c459, + b as c460, + b as c461, + b as c462, + b as c463, + b as c464, + b as c465, + b as c466, + b as c467, + b as c468, + b as c469, + b as c470, + b as c471, + b as c472, + b as c473, + b as c474, + b as c475, + b as c476, + b as c477, + b as c478, + b as c479, + b as c480, + b as c481, + b as c482, + b as c483, + b as c484, + b as c485, + b as c486, + b as c487, + b as c488, + b as c489, + b as c490, + b as c491, + b as c492, + b as c493, + b as c494, + b as c495, + b as c496, + b as c497, + b as c498, + b as c499, + b as c500, + b as c501, + b as c502, + b as c503, + b as c504, + b as c505, + b as c506, + b as c507, + b as c508, + b as c509, + b as c510, + b as c511, + b as c512, + b as c513, + b as c514, + b as c515, + b as c516, + b as c517, + b as c518, + b as c519, + b as c520, + b as c521, + b as c522, + b as c523, + b as c524, + b as c525, + b as c526, + b as c527, + b as c528, + b as c529, + b as c530, + b as c531, + b as c532, + b as c533, + b as c534, + b as c535, + b as c536, + b as c537, + b as c538, + b as c539, + b as c540, + b as c541, + b as c542, + b as c543, + b as c544, + b as c545, + b as c546, + b as c547, + b as c548, + b as c549, + b as c550, + b as c551, + b as c552, + b as c553, + b as c554, + b as c555, + b as c556, + b as c557, + b as c558, + b as c559, + b as c560, + b as c561, + b as c562, + b as c563, + b as c564, + b as c565, + b as c566, + b as c567, + b as c568, + b as c569, + b as c570, + b as c571, + b as c572, + b as c573, + b as c574, + b as c575, + b as c576, + b as c577, + b as c578, + b as c579, + b as c580, + b as c581, + b as c582, + b as c583, + b as c584, + b as c585, + b as c586, + b as c587, + b as c588, + b as c589, + b as c590, + b as c591, + b as c592, + b as c593, + b as c594, + b as c595, + b as c596, + b as c597, + b as c598, + b as c599, + b as c600, + b as c601, + b as c602, + b as c603, + b as c604, + b as c605, + b as c606, + b as c607, + b as c608, + b as c609, + b as c610, + b as c611, + b as c612, + b as c613, + b as c614, + b as c615, + b as c616, + b as c617, + b as c618, + b as c619, + b as c620, + b as c621, + b as c622, + b as c623, + b as c624, + b as c625, + b as c626, + b as c627, + b as c628, + b as c629, + b as c630, + b as c631, + b as c632, + b as c633, + b as c634, + b as c635, + b as c636, + b as c637, + b as c638, + b as c639, + b as c640, + b as c641, + b as c642, + b as c643, + b as c644, + b as c645, + b as c646, + b as c647, + b as c648, + b as c649, + b as c650, + b as c651, + b as c652, + b as c653, + b as c654, + b as c655, + b as c656, + b as c657, + b as c658, + b as c659, + b as c660, + b as c661, + b as c662, + b as c663, + b as c664, + b as c665, + b as c666, + b as c667, + b as c668, + b as c669, + b as c670, + b as c671, + b as c672, + b as c673, + b as c674, + b as c675, + b as c676, + b as c677, + b as c678, + b as c679, + b as c680, + b as c681, + b as c682, + b as c683, + b as c684, + b as c685, + b as c686, + b as c687, + b as c688, + b as c689, + b as c690, + b as c691, + b as c692, + b as c693, + b as c694, + b as c695, + b as c696, + b as c697, + b as c698, + b as c699, + b as c700, + b as c701, + b as c702, + b as c703, + b as c704, + b as c705, + b as c706, + b as c707, + b as c708, + b as c709, + b as c710, + b as c711, + b as c712, + b as c713, + b as c714, + b as c715, + b as c716, + b as c717, + b as c718, + b as c719, + b as c720, + b as c721, + b as c722, + b as c723, + b as c724, + b as c725, + b as c726, + b as c727, + b as c728, + b as c729, + b as c730, + b as c731, + b as c732, + b as c733, + b as c734, + b as c735, + b as c736, + b as c737, + b as c738, + b as c739, + b as c740, + b as c741, + b as c742, + b as c743, + b as c744, + b as c745, + b as c746, + b as c747, + b as c748, + b as c749, + b as c750, + b as c751, + b as c752, + b as c753, + b as c754, + b as c755, + b as c756, + b as c757, + b as c758, + b as c759, + b as c760, + b as c761, + b as c762, + b as c763, + b as c764, + b as c765, + b as c766, + b as c767, + b as c768, + b as c769, + b as c770, + b as c771, + b as c772, + b as c773, + b as c774, + b as c775, + b as c776, + b as c777, + b as c778, + b as c779, + b as c780, + b as c781, + b as c782, + b as c783, + b as c784, + b as c785, + b as c786, + b as c787, + b as c788, + b as c789, + b as c790, + b as c791, + b as c792, + b as c793, + b as c794, + b as c795, + b as c796, + b as c797, + b as c798, + b as c799, + b as c800, + b as c801, + b as c802, + b as c803, + b as c804, + b as c805, + b as c806, + b as c807, + b as c808, + b as c809, + b as c810, + b as c811, + b as c812, + b as c813, + b as c814, + b as c815, + b as c816, + b as c817, + b as c818, + b as c819, + b as c820, + b as c821, + b as c822, + b as c823, + b as c824, + b as c825, + b as c826, + b as c827, + b as c828, + b as c829, + b as c830, + b as c831, + b as c832, + b as c833, + b as c834, + b as c835, + b as c836, + b as c837, + b as c838, + b as c839, + b as c840, + b as c841, + b as c842, + b as c843, + b as c844, + b as c845, + b as c846, + b as c847, + b as c848, + b as c849, + b as c850, + b as c851, + b as c852, + b as c853, + b as c854, + b as c855, + b as c856, + b as c857, + b as c858, + b as c859, + b as c860, + b as c861, + b as c862, + b as c863, + b as c864, + b as c865, + b as c866, + b as c867, + b as c868, + b as c869, + b as c870, + b as c871, + b as c872, + b as c873, + b as c874, + b as c875, + b as c876, + b as c877, + b as c878, + b as c879, + b as c880, + b as c881, + b as c882, + b as c883, + b as c884, + b as c885, + b as c886, + b as c887, + b as c888, + b as c889, + b as c890, + b as c891, + b as c892, + b as c893, + b as c894, + b as c895, + b as c897, + b as c898, + b as c899, + b as c900, + b as c901, + b as c902, + b as c903, + b as c904, + b as c905, + b as c906, + b as c907, + b as c908, + b as c909, + b as c910, + b as c911, + b as c912, + b as c913, + b as c914, + b as c915, + b as c916, + b as c917, + b as c918, + b as c919, + b as c920, + b as c921, + b as c922, + b as c923, + b as c924, + b as c925, + b as c926, + b as c927, + b as c928, + b as c929, + b as c930, + b as c931, + b as c932, + b as c933, + b as c934, + b as c935, + b as c936, + b as c937, + b as c938, + b as c939, + b as c940, + b as c941, + b as c942, + b as c943, + b as c944, + b as c945, + b as c946, + b as c947, + b as c948, + b as c949, + b as c950, + b as c951, + b as c952, + b as c953, + b as c954, + b as c955, + b as c956, + b as c957, + b as c958, + b as c959, + b as c960, + b as c961, + b as c962, + b as c963, + b as c964, + b as c965, + b as c966, + b as c967, + b as c968, + b as c969, + b as c970, + b as c971, + b as c972, + b as c973, + b as c974, + b as c975, + b as c976, + b as c977, + b as c978, + b as c979, + b as c980, + b as c981, + b as c982, + b as c983, + b as c984, + b as c985, + b as c986, + b as c987, + b as c988, + b as c989, + b as c990, + b as c991, + b as c992, + b as c993, + b as c995, + b as c996, + b as c997, + b as c998, + b as c999, + b as c1000, + b as c1001, + b as c1002, + b as c1003, + b as c1004, + b as c1005, + b as c1006, + b as c1007, + b as c1008, + b as c1009, + b as c1010, + b as c1011, + b as c1012, + b as c1013, + b as c1014, + b as c1015, + b as c1016, + b as c1017, + b as c1018, + b as c1019, + b as c1020, + b as c1021, + b as c1022, + b as c1023, + b as c1024, + b as c1025, + b as c1026, + b as c1027, + b as c1028, + b as c1029, + b as c1030, + b as c1031, + b as c1032, + b as c1033, + b as c1034, + b as c1035, + b as c1036, + b as c1037, + b as c1038, + b as c1039, + b as c1040, + b as c1041, + b as c1042, + b as c1043, + b as c1044, + b as c1045, + b as c1046, + b as c1047, + b as c1048, + b as c1049, + b as c1050, + b as c1051, + b as c1052, + b as c1053, + b as c1054, + b as c1055, + b as c1056, + b as c1057, + b as c1058, + b as c1059, + b as c1060, + b as c1061, + b as c1062, + b as c1063, + b as c1064, + b as c1065, + b as c1066, + b as c1067, + b as c1068, + b as c1069, + b as c1070, + b as c1071, + b as c1072, + b as c1073, + b as c1074, + b as c1075, + b as c1076, + b as c1077, + b as c1078, + b as c1079, + b as c1080, + b as c1081, + b as c1082, + b as c1083, + b as c1084, + b as c1085, + b as c1086, + b as c1087, + b as c1088, + b as c1089, + b as c1090, + b as c1091, + b as c1092, + b as c1093, + b as c1094, + b as c1095, + b as c1096, + b as c1097, + b as c1098, + b as c1099, + b as c1100, + b as c1101, + b as c1102, + b as c1103, + b as c1104, + b as c1105, + b as c1106, + b as c1107, + b as c1108, + b as c1109, + b as c1110, + b as c1111, + b as c1112, + b as c1113, + b as c1114, + b as c1115, + b as c1116, + b as c1117, + b as c1118, + b as c1119, + b as c1120, + b as c1121, + b as c1122, + b as c1123, + b as c1124, + b as c1125, + b as c1126, + b as c1127, + b as c1128, + b as c1129, + b as c1130, + b as c1131, + b as c1132, + b as c1133, + b as c1134, + b as c1135, + b as c1136, + b as c1137, + b as c1138, + b as c1139, + b as c1140, + b as c1141, + b as c1142, + b as c1143, + b as c1144, + b as c1145, + b as c1146, + b as c1147, + b as c1148, + b as c1149, + b as c1150, + b as c1151, + b as c1152, + b as c1153, + b as c1154, + b as c1155, + b as c1156, + b as c1157, + b as c1158, + b as c1159, + b as c1160, + b as c1161, + b as c1162, + b as c1163, + b as c1164, + b as c1165, + b as c1166, + b as c1167, + b as c1168, + b as c1169, + b as c1170, + b as c1171, + b as c1172, + b as c1173, + b as c1174, + b as c1175, + b as c1176, + b as c1177, + b as c1178, + b as c1179, + b as c1180, + b as c1181, + b as c1182, + b as c1183, + b as c1184, + b as c1185, + b as c1186, + b as c1187, + b as c1188, + b as c1189, + b as c1190, + b as c1191, + b as c1192, + b as c1193, + b as c1194, + b as c1195, + b as c1196, + b as c1197, + b as c1198, + b as c1199, + b as c1200, + b as c1201, + b as c1202, + b as c1203, + b as c1204, + b as c1205, + b as c1206, + b as c1207, + b as c1208, + b as c1209, + b as c1210, + b as c1211, + b as c1212, + b as c1213, + b as c1214, + b as c1215, + b as c1216, + b as c1217, + b as c1218, + b as c1219, + b as c1220, + b as c1221, + b as c1222, + b as c1223, + b as c1224, + b as c1225, + b as c1226, + b as c1227, + b as c1228, + b as c1229, + b as c1230, + b as c1231, + b as c1232, + b as c1233, + b as c1234, + b as c1235, + b as c1236, + b as c1237, + b as c1238, + b as c1239, + b as c1240, + b as c1241, + b as c1242, + b as c1243, + b as c1244, + b as c1245, + b as c1246, + b as c1247, + b as c1248, + b as c1249, + b as c1250, + b as c1251, + b as c1252, + b as c1253, + b as c1254, + b as c1255, + b as c1256, + b as c1257, + b as c1258, + b as c1259, + b as c1260, + b as c1261, + b as c1262, + b as c1263, + b as c1264, + b as c1265, + b as c1266, + b as c1267, + b as c1268, + b as c1269, + b as c1270, + b as c1271, + b as c1272, + b as c1273, + b as c1274, + b as c1275, + b as c1276, + b as c1277, + b as c1278, + b as c1279, + b as c1280, + b as c1281, + b as c1282, + b as c1283, + b as c1284, + b as c1285, + b as c1286, + b as c1287, + b as c1288, + b as c1289, + b as c1290, + b as c1291, + b as c1292, + b as c1293, + b as c1294, + b as c1295, + b as c1296, + b as c1297, + b as c1298, + b as c1299, + b as c1300, + b as c1301, + b as c1302, + b as c1303, + b as c1304, + b as c1305, + b as c1306, + b as c1307, + b as c1308, + b as c1309, + b as c1310, + b as c1311, + b as c1312, + b as c1313, + b as c1314, + b as c1315, + b as c1316, + b as c1317, + b as c1318, + b as c1319, + b as c1320, + b as c1321, + b as c1322, + b as c1323, + b as c1324, + b as c1325, + b as c1326, + b as c1327, + b as c1328, + b as c1329, + b as c1330, + b as c1331, + b as c1332, + b as c1333, + b as c1334, + b as c1335, + b as c1336, + b as c1337, + b as c1338, + b as c1339, + b as c1340, + b as c1341, + b as c1342, + b as c1343, + b as c1344, + b as c1345, + b as c1346, + b as c1347, + b as c1348, + b as c1349, + b as c1350, + b as c1351, + b as c1352, + b as c1353, + b as c1354, + b as c1355, + b as c1356, + b as c1357, + b as c1358, + b as c1359, + b as c1360, + b as c1361, + b as c1362, + b as c1363, + b as c1364, + b as c1365, + b as c1366, + b as c1367, + b as c1368, + b as c1369, + b as c1370, + b as c1371, + b as c1372, + b as c1373, + b as c1374, + b as c1375, + b as c1376, + b as c1377, + b as c1378, + b as c1379, + b as c1380, + b as c1381, + b as c1382, + b as c1383, + b as c1384, + b as c1385, + b as c1386, + b as c1387, + b as c1388, + b as c1389, + b as c1390, + b as c1391, + b as c1392, + b as c1393, + b as c1394, + b as c1395, + b as c1396, + b as c1397, + b as c1398, + b as c1399, + b as c1400, + b as c1401, + b as c1402, + b as c1403, + b as c1404, + b as c1405, + b as c1406, + b as c1407, + b as c1408, + b as c1409, + b as c1410, + b as c1411, + b as c1412, + b as c1413, + b as c1414, + b as c1415, + b as c1416, + b as c1417, + b as c1418, + b as c1419, + b as c1420, + b as c1421, + b as c1422, + b as c1423, + b as c1424, + b as c1425, + b as c1426, + b as c1427, + b as c1428, + b as c1429, + b as c1430, + b as c1431, + b as c1432, + b as c1433, + b as c1434, + b as c1435, + b as c1436, + b as c1437, + b as c1438, + b as c1439, + b as c1440, + b as c1441, + b as c1442, + b as c1443, + b as c1444, + b as c1445, + b as c1446, + b as c1447, + b as c1448, + b as c1449, + b as c1451, + b as c1452, + b as c1453, + b as c1454, + b as c1455, + b as c1456, + b as c1457, + b as c1458, + b as c1459, + b as c1460, + b as c1461, + b as c1462, + b as c1463, + b as c1464, + b as c1465, + b as c1466, + b as c1467, + b as c1468, + b as c1469, + b as c1470, + b as c1471, + b as c1472, + b as c1473, + b as c1474, + b as c1475, + b as c1476, + b as c1477, + b as c1478, + b as c1479, + b as c1480, + b as c1481, + b as c1482, + b as c1483, + b as c1484, + b as c1485, + b as c1486, + b as c1487, + b as c1488, + b as c1489, + b as c1490, + b as c1491, + b as c1492, + b as c1493, + b as c1494, + b as c1495, + b as c1496, + b as c1497, + b as c1498, + b as c1499, + b as c1500, + b as c1501, + b as c1502, + b as c1503, + b as c1504, + b as c1505, + b as c1506, + b as c1507, + b as c1508, + b as c1509, + b as c1510, + b as c1511, + b as c1512, + b as c1513, + b as c1514, + b as c1515, + b as c1516, + b as c1517, + b as c1518, + b as c1519, + b as c1520, + b as c1521, + b as c1522, + b as c1523, + b as c1524, + b as c1525, + b as c1526, + b as c1527, + b as c1528, + b as c1529, + b as c1530, + b as c1531, + b as c1532, + b as c1533, + b as c1534, + b as c1535, + b as c1536, + b as c1537, + b as c1538, + b as c1539, + b as c1540, + b as c1541, + b as c1542, + b as c1543, + b as c1544, + b as c1545, + b as c1546, + b as c1547, + b as c1548, + b as c1549, + b as c1550, + b as c1551, + b as c1552, + b as c1553, + b as c1554, + b as c1555, + b as c1556, + b as c1557, + b as c1558, + b as c1559, + b as c1560, + b as c1561, + b as c1562, + b as c1563, + b as c1564, + b as c1565, + b as c1566, + b as c1567, + b as c1568, + b as c1569, + b as c1570, + b as c1571, + b as c1572, + b as c1573, + b as c1574, + b as c1575, + b as c1576, + b as c1577, + b as c1578, + b as c1579, + b as c1580, + b as c1581, + b as c1582, + b as c1583, + b as c1584, + b as c1585, + b as c1586, + b as c1587, + b as c1588, + b as c1589, + b as c1590, + b as c1591, + b as c1592, + b as c1593, + b as c1594, + b as c1595, + b as c1596, + b as c1597, + b as c1598, + b as c1599, + b as c1600, + b as c1601, + b as c1602, + b as c1603, + b as c1604, + b as c1605, + b as c1606, + b as c1607, + b as c1608, + b as c1609, + b as c1610, + b as c1611, + b as c1612, + b as c1613, + b as c1614, + b as c1615, + b as c1616, + b as c1617, + b as c1618, + b as c1619, + b as c1620, + b as c1621, + b as c1622, + b as c1623, + b as c1624, + b as c1625, + b as c1626, + b as c1627, + b as c1628, + b as c1629, + b as c1630, + b as c1631, + b as c1632, + b as c1633, + b as c1634, + b as c1635, + b as c1636, + b as c1637, + b as c1638, + b as c1639, + b as c1640, + b as c1641, + b as c1642, + b as c1643, + b as c1644, + b as c1645, + b as c1646, + b as c1647, + b as c1648, + b as c1649, + b as c1650, + b as c1651, + b as c1652, + b as c1653, + b as c1654, + b as c1655, + b as c1656, + b as c1657, + b as c1658, + b as c1659, + b as c1660, + b as c1661, + b as c1662, + b as c1663, + b as c1664, + b as c1665, + b as c1666, + b as c1667, + b as c1668, + b as c1669, + b as c1670, + b as c1671, + b as c1672, + b as c1673, + b as c1674, + b as c1675, + b as c1676, + b as c1677, + b as c1678, + b as c1679, + b as c1680, + b as c1681, + b as c1682, + b as c1683, + b as c1684, + b as c1685, + b as c1686, + b as c1687, + b as c1688, + b as c1689, + b as c1690, + b as c1691, + b as c1692, + b as c1693, + b as c1694, + b as c1695, + b as c1696, + b as c1697, + b as c1698, + b as c1699, + b as c1700, + b as c1701, + b as c1702, + b as c1703, + b as c1704, + b as c1705, + b as c1706, + b as c1707, + b as c1708, + b as c1709, + b as c1710, + b as c1711, + b as c1712, + b as c1713, + b as c1714, + b as c1715, + b as c1716, + b as c1717, + b as c1718, + b as c1719, + b as c1720, + b as c1721, + b as c1722, + b as c1723, + b as c1724, + b as c1725, + b as c1726, + b as c1727, + b as c1728, + b as c1729, + b as c1730, + b as c1731, + b as c1732, + b as c1733, + b as c1734, + b as c1735, + b as c1736, + b as c1737, + b as c1738, + b as c1739, + b as c1740, + b as c1741, + b as c1742, + b as c1743, + b as c1744, + b as c1745, + b as c1746, + b as c1747, + b as c1748, + b as c1749, + b as c1750, + b as c1751, + b as c1752, + b as c1753, + b as c1754, + b as c1755, + b as c1756, + b as c1757, + b as c1758, + b as c1759, + b as c1760, + b as c1761, + b as c1762, + b as c1763, + b as c1764, + b as c1765, + b as c1766, + b as c1767, + b as c1768, + b as c1769, + b as c1770, + b as c1771, + b as c1772, + b as c1773, + b as c1774, + b as c1775, + b as c1776, + b as c1777, + b as c1778, + b as c1779, + b as c1780, + b as c1781, + b as c1782, + b as c1783, + b as c1784, + b as c1785, + b as c1786, + b as c1787, + b as c1788, + b as c1789, + b as c1790, + b as c1791, + b as c1792, + b as c1793, + b as c1794, + b as c1795, + b as c1796, + b as c1797, + b as c1798, + b as c1799, + b as c1800, + b as c1801, + b as c1802, + b as c1803, + b as c1804, + b as c1805, + b as c1806, + b as c1807, + b as c1808, + b as c1809, + b as c1810, + b as c1811, + b as c1812, + b as c1813, + b as c1814, + b as c1815, + b as c1816, + b as c1817, + b as c1818, + b as c1819, + b as c1820, + b as c1821, + b as c1822, + b as c1823, + b as c1824, + b as c1825, + b as c1826, + b as c1827, + b as c1828, + b as c1829, + b as c1830, + b as c1831, + b as c1832, + b as c1833, + b as c1834, + b as c1835, + b as c1836, + b as c1837, + b as c1838, + b as c1839, + b as c1840, + b as c1841, + b as c1842, + b as c1843, + b as c1844, + b as c1845, + b as c1846, + b as c1847, + b as c1848, + b as c1849, + b as c1850, + b as c1851, + b as c1852, + b as c1853, + b as c1854, + b as c1855, + b as c1856, + b as c1857, + b as c1858, + b as c1859, + b as c1860, + b as c1861, + b as c1862, + b as c1863, + b as c1864, + b as c1865, + b as c1866, + b as c1867, + b as c1868, + b as c1869, + b as c1870, + b as c1871, + b as c1872, + b as c1873, + b as c1874, + b as c1875, + b as c1876, + b as c1877, + b as c1878, + b as c1879, + b as c1880, + b as c1881, + b as c1882, + b as c1883, + b as c1884, + b as c1885, + b as c1886, + b as c1887, + b as c1888, + b as c1889, + b as c1890, + b as c1891, + b as c1892, + b as c1893, + b as c1894, + b as c1895, + b as c1896, + b as c1897, + b as c1898, + b as c1899, + b as c1900, + b as c1901, + b as c1902, + b as c1903, + b as c1904, + b as c1905, + b as c1906, + b as c1907, + b as c1908, + b as c1909, + b as c1910, + b as c1911, + b as c1912, + b as c1913, + b as c1914, + b as c1915, + b as c1916, + b as c1917, + b as c1918, + b as c1919, + b as c1920, + b as c1921, + b as c1922, + b as c1923, + b as c1924, + b as c1925, + b as c1926, + b as c1927, + b as c1928, + b as c1929, + b as c1930, + b as c1931, + b as c1932, + b as c1933, + b as c1934, + b as c1935, + b as c1936, + b as c1937, + b as c1938, + b as c1939, + b as c1940, + b as c1941, + b as c1942, + b as c1943, + b as c1944, + b as c1945, + b as c1946, + b as c1947, + b as c1948, + b as c1949, + b as c1950, + b as c1951, + b as c1952, + b as c1953, + b as c1954, + b as c1955, + b as c1956, + b as c1957, + b as c1958, + b as c1959, + b as c1960, + b as c1961, + b as c1962, + b as c1963, + b as c1964, + b as c1965, + b as c1966, + b as c1967, + b as c1968, + b as c1969, + b as c1970, + b as c1971, + b as c1972, + b as c1973, + b as c1974, + b as c1975, + b as c1976, + b as c1977, + b as c1978, + b as c1979, + b as c1980, + b as c1981, + b as c1982, + b as c1983, + b as c1984, + b as c1985, + b as c1986, + b as c1987, + b as c1988, + b as c1989, + b as c1990, + b as c1991, + b as c1992, + b as c1993, + b as c1994, + b as c1995, + b as c1996, + b as c1997, + b as c1998, + b as c1999, + b as c2000, + b as c2001, + b as c2002, + b as c2003, + b as c2004, + b as c2005, + b as c2006, + b as c2007, + b as c2008, + b as c2009, + b as c2010, + b as c2011, + b as c2012, + b as c2013, + b as c2014, + b as c2015, + b as c2016, + b as c2017, + b as c2018, + b as c2019, + b as c2020, + b as c2021, + b as c2022, + b as c2023, + b as c2024, + b as c2025, + b as c2026, + b as c2027, + b as c2028, + b as c2029, + b as c2030, + b as c2031, + b as c2032, + b as c2033, + b as c2034, + b as c2035, + b as c2036, + b as c2037, + b as c2038, + b as c2039, + b as c2040, + b as c2041, + b as c2042, + b as c2043, + b as c2044, + b as c2045, + b as c2046, + b as c2047, + b as c2048, + b as c2049, + b as c2050, + b as c2051, + b as c2052, + b as c2053, + b as c2054, + b as c2055, + b as c2056, + b as c2057, + b as c2058, + b as c2059, + b as c2060, + b as c2061, + b as c2062, + b as c2063, + b as c2064, + b as c2065, + b as c2066, + b as c2067, + b as c2068, + b as c2069, + b as c2070, + b as c2071, + b as c2072, + b as c2073, + b as c2074, + b as c2075, + b as c2076, + b as c2077, + b as c2078, + b as c2079, + b as c2080, + b as c2081, + b as c2082, + b as c2083, + b as c2084, + b as c2085, + b as c2086, + b as c2087, + b as c2088, + b as c2089, + b as c2090, + b as c2091, + b as c2092, + b as c2093, + b as c2094, + b as c2095, + b as c2096, + b as c2097, + b as c2098, + b as c2099, + b as c2100, + b as c2101, + b as c2102, + b as c2103, + b as c2104, + b as c2105, + b as c2106, + b as c2107, + b as c2108, + b as c2109, + b as c2110, + b as c2111, + b as c2112, + b as c2113, + b as c2114, + b as c2115, + b as c2116, + b as c2117, + b as c2118, + b as c2119, + b as c2120, + b as c2121, + b as c2122, + b as c2123, + b as c2124, + b as c2125, + b as c2126, + b as c2127, + b as c2128, + b as c2129, + b as c2130, + b as c2131, + b as c2132, + b as c2133, + b as c2134, + b as c2135, + b as c2136, + b as c2137, + b as c2138, + b as c2139, + b as c2140, + b as c2141, + b as c2142, + b as c2143, + b as c2144, + b as c2145, + b as c2146, + b as c2147, + b as c2148, + b as c2149, + b as c2150, + b as c2151, + b as c2152, + b as c2153, + b as c2154, + b as c2155, + b as c2156, + b as c2157, + b as c2158, + b as c2159, + b as c2160, + b as c2161, + b as c2162, + b as c2163, + b as c2164, + b as c2165, + b as c2166, + b as c2167, + b as c2168, + b as c2169, + b as c2170, + b as c2171, + b as c2172, + b as c2173, + b as c2174, + b as c2175, + b as c2176, + b as c2177, + b as c2178, + b as c2179, + b as c2180, + b as c2181, + b as c2182, + b as c2183, + b as c2184, + b as c2185, + b as c2186, + b as c2187, + b as c2188, + b as c2189, + b as c2190, + b as c2191, + b as c2192, + b as c2193, + b as c2194, + b as c2195, + b as c2196, + b as c2197, + b as c2198, + b as c2199, + b as c2200, + b as c2201, + b as c2202, + b as c2203, + b as c2204, + b as c2205, + b as c2206, + b as c2207, + b as c2208, + b as c2209, + b as c2210, + b as c2211, + b as c2212, + b as c2213, + b as c2214, + b as c2215, + b as c2216, + b as c2217, + b as c2218, + b as c2219, + b as c2220, + b as c2221, + b as c2222, + b as c2223, + b as c2224, + b as c2225, + b as c2226, + b as c2227, + b as c2228, + b as c2229, + b as c2230, + b as c2231, + b as c2232, + b as c2233, + b as c2234, + b as c2235, + b as c2236, + b as c2237, + b as c2238, + b as c2239, + b as c2240, + b as c2241, + b as c2242, + b as c2243, + b as c2244, + b as c2245, + b as c2246, + b as c2247, + b as c2248, + b as c2249, + b as c2250, + b as c2251, + b as c2252, + b as c2253, + b as c2254, + b as c2255, + b as c2256, + b as c2257, + b as c2258, + b as c2259, + b as c2260, + b as c2261, + b as c2262, + b as c2263, + b as c2264, + b as c2265, + b as c2266, + b as c2267, + b as c2268, + b as c2269, + b as c2270, + b as c2271, + b as c2272, + b as c2273, + b as c2274, + b as c2275, + b as c2276, + b as c2277, + b as c2278, + b as c2279, + b as c2280, + b as c2281, + b as c2282, + b as c2283, + b as c2284, + b as c2285, + b as c2286, + b as c2287, + b as c2288, + b as c2289, + b as c2290, + b as c2291, + b as c2292, + b as c2293, + b as c2294, + b as c2295, + b as c2296, + b as c2297, + b as c2298, + b as c2299, + b as c2300, + b as c2301, + b as c2302, + b as c2303, + b as c2304, + b as c2305, + b as c2306, + b as c2307, + b as c2308, + b as c2309, + b as c2310, + b as c2311, + b as c2312, + b as c2313, + b as c2314, + b as c2315, + b as c2316, + b as c2317, + b as c2318, + b as c2319, + b as c2320, + b as c2321, + b as c2322, + b as c2323, + b as c2324, + b as c2325, + b as c2326, + b as c2327, + b as c2328, + b as c2329, + b as c2330, + b as c2331, + b as c2332, + b as c2333, + b as c2334, + b as c2335, + b as c2336, + b as c2337, + b as c2338, + b as c2339, + b as c2340, + b as c2341, + b as c2342, + b as c2343, + b as c2344, + b as c2345, + b as c2346, + b as c2347, + b as c2348, + b as c2349, + b as c2350, + b as c2351, + b as c2352, + b as c2353, + b as c2354, + b as c2355, + b as c2356, + b as c2357, + b as c2358, + b as c2359, + b as c2360, + b as c2361, + b as c2362, + b as c2363, + b as c2364, + b as c2365, + b as c2366, + b as c2367, + b as c2368, + b as c2369, + b as c2370, + b as c2371, + b as c2372, + b as c2373, + b as c2374, + b as c2375, + b as c2376, + b as c2377, + b as c2378, + b as c2379, + b as c2380, + b as c2381, + b as c2382, + b as c2383, + b as c2384, + b as c2385, + b as c2386, + b as c2387, + b as c2388, + b as c2389, + b as c2390, + b as c2391, + b as c2392, + b as c2393, + b as c2394, + b as c2395, + b as c2396, + b as c2397, + b as c2398, + b as c2399, + b as c2400, + b as c2401, + b as c2402, + b as c2403, + b as c2404, + b as c2405, + b as c2406, + b as c2407, + b as c2408, + b as c2409, + b as c2410, + b as c2411, + b as c2412, + b as c2413, + b as c2414, + b as c2415, + b as c2416, + b as c2417, + b as c2418, + b as c2419, + b as c2420, + b as c2421, + b as c2422, + b as c2423, + b as c2424, + b as c2425, + b as c2426, + b as c2427, + b as c2428, + b as c2429, + b as c2430, + b as c2431, + b as c2432, + b as c2433, + b as c2434, + b as c2435, + b as c2436, + b as c2437, + b as c2438, + b as c2439, + b as c2440, + b as c2441, + b as c2442, + b as c2443, + b as c2444, + b as c2445, + b as c2446, + b as c2447, + b as c2448, + b as c2449, + b as c2450, + b as c2451, + b as c2452, + b as c2453, + b as c2454, + b as c2455, + b as c2456, + b as c2457, + b as c2458, + b as c2459, + b as c2460, + b as c2461, + b as c2462, + b as c2463, + b as c2464, + b as c2465, + b as c2466, + b as c2467, + b as c2468, + b as c2469, + b as c2470, + b as c2471, + b as c2472, + b as c2473, + b as c2474, + b as c2475, + b as c2476, + b as c2477, + b as c2478, + b as c2479, + b as c2480, + b as c2481, + b as c2482, + b as c2483, + b as c2484, + b as c2485, + b as c2486, + b as c2487, + b as c2488, + b as c2489, + b as c2490, + b as c2491, + b as c2492, + b as c2493, + b as c2494, + b as c2495, + b as c2496, + b as c2497, + b as c2498, + b as c2499, + b as c2500, + b as c2501, + b as c2503, + b as c2504, + b as c2505, + b as c2506, + b as c2507, + b as c2508, + b as c2509, + b as c2510, + b as c2511, + b as c2512, + b as c2513, + b as c2514, + b as c2515, + b as c2516, + b as c2517, + b as c2518, + b as c2519, + b as c2520, + b as c2521, + b as c2522, + b as c2523, + b as c2524, + b as c2525, + b as c2526, + b as c2527, + b as c2528, + b as c2529, + b as c2530, + b as c2531, + b as c2532, + b as c2533, + b as c2534, + b as c2535, + b as c2536, + b as c2537, + b as c2538, + b as c2539, + b as c2540, + b as c2541, + b as c2542, + b as c2543, + b as c2544, + b as c2545, + b as c2546, + b as c2547, + b as c2548, + b as c2549, + b as c2550, + b as c2551, + b as c2552, + b as c2553, + b as c2554, + b as c2555, + b as c2556, + b as c2557, + b as c2558, + b as c2559, + b as c2560, + b as c2561, + b as c2562, + b as c2563, + b as c2564, + b as c2565, + b as c2566, + b as c2567, + b as c2568, + b as c2569, + b as c2570, + b as c2571, + b as c2572, + b as c2573, + b as c2574, + b as c2575, + b as c2576, + b as c2577, + b as c2578, + b as c2579, + b as c2580, + b as c2581, + b as c2582, + b as c2583, + b as c2584, + b as c2585, + b as c2586, + b as c2587, + b as c2588, + b as c2589, + b as c2590, + b as c2591, + b as c2592, + b as c2593, + b as c2594, + b as c2595, + b as c2596, + b as c2597, + b as c2598, + b as c2599, + b as c2600, + b as c2601, + b as c2602, + b as c2603, + b as c2604, + b as c2605, + b as c2606, + b as c2607, + b as c2608, + b as c2609, + b as c2610, + b as c2611, + b as c2612, + b as c2613, + b as c2614, + b as c2615, + b as c2616, + b as c2617, + b as c2618, + b as c2619, + b as c2620, + b as c2621, + b as c2622, + b as c2623, + b as c2624, + b as c2626 + from t1 + ) as tt1; +drop table t1; diff --git a/mysql-test/main/union_innodb.result b/mysql-test/main/union_innodb.result new file mode 100644 index 00000000000..876897fa865 --- /dev/null +++ b/mysql-test/main/union_innodb.result @@ -0,0 +1,34 @@ +# +# MDEV-25636: Bug report: abortion in sql/sql_parse.cc:6294 +# +CREATE TABLE t1 (i1 int)engine=innodb; +INSERT INTO `t1` VALUES (62),(66); +CREATE TABLE t2 (i1 int) engine=innodb; +SELECT 1 FROM t1 +WHERE t1.i1 =( SELECT t1.i1 FROM t2 +UNION SELECT i1 FROM (t1 AS dt1 natural JOIN t2) +window w1 as (partition by t1.i1)); +1 +drop table t1,t2; +# Another testcase +CREATE TABLE t1 (i3 int NOT NULL, i1 int , i2 int , i4 int , PRIMARY key(i2)); +INSERT INTO t1 VALUES (6,72,98,98),(46,1,6952,0); +SELECT i1 FROM t1 +WHERE t1.i3 = +(SELECT ref_4.i2 FROM t1 AS ref_4 +WHERE t1.i2 > (SELECT i3 FROM t1 ORDER BY i3 LIMIT 1 OFFSET 4) +UNION +SELECT ref_6.i2 +FROM (t1 AS ref_5 JOIN t1 AS ref_6 ON ((ref_6.i1 > ref_6.i2) OR (ref_5.i4 < ref_5.i4))) +WHERE (t1.i2 >= t1.i2)); +i1 +drop table t1; +# +# MDEV-25761: Assertion `aggr != __null' failed in sub_select_postjoin_aggr +# +CREATE TABLE t1 ( a int NOT NULL PRIMARY KEY) engine=innodb; +INSERT INTO t1 VALUES (0),(4),(31); +CREATE TABLE t2 (i int) engine=innodb; +DELETE FROM t1 WHERE t1.a = +(SELECT t1.a FROM t2 UNION SELECT DISTINCT 52 FROM t2 r WHERE t1.a = t1.a); +DROP TABLE t1,t2; diff --git a/mysql-test/main/union_innodb.test b/mysql-test/main/union_innodb.test new file mode 100644 index 00000000000..cb805a30bb4 --- /dev/null +++ b/mysql-test/main/union_innodb.test @@ -0,0 +1,45 @@ +--source include/have_innodb.inc + +--echo # +--echo # MDEV-25636: Bug report: abortion in sql/sql_parse.cc:6294 +--echo # + +CREATE TABLE t1 (i1 int)engine=innodb; +INSERT INTO `t1` VALUES (62),(66); +CREATE TABLE t2 (i1 int) engine=innodb; + +SELECT 1 FROM t1 +WHERE t1.i1 =( SELECT t1.i1 FROM t2 + UNION SELECT i1 FROM (t1 AS dt1 natural JOIN t2) + window w1 as (partition by t1.i1)); + +drop table t1,t2; + +--echo # Another testcase +CREATE TABLE t1 (i3 int NOT NULL, i1 int , i2 int , i4 int , PRIMARY key(i2)); +INSERT INTO t1 VALUES (6,72,98,98),(46,1,6952,0); + +SELECT i1 FROM t1 +WHERE t1.i3 = + (SELECT ref_4.i2 FROM t1 AS ref_4 + WHERE t1.i2 > (SELECT i3 FROM t1 ORDER BY i3 LIMIT 1 OFFSET 4) + UNION + SELECT ref_6.i2 + FROM (t1 AS ref_5 JOIN t1 AS ref_6 ON ((ref_6.i1 > ref_6.i2) OR (ref_5.i4 < ref_5.i4))) + WHERE (t1.i2 >= t1.i2)); + +drop table t1; + +--echo # +--echo # MDEV-25761: Assertion `aggr != __null' failed in sub_select_postjoin_aggr +--echo # + +CREATE TABLE t1 ( a int NOT NULL PRIMARY KEY) engine=innodb; +INSERT INTO t1 VALUES (0),(4),(31); + +CREATE TABLE t2 (i int) engine=innodb; + +DELETE FROM t1 WHERE t1.a = + (SELECT t1.a FROM t2 UNION SELECT DISTINCT 52 FROM t2 r WHERE t1.a = t1.a); + +DROP TABLE t1,t2; diff --git a/mysql-test/main/win.result b/mysql-test/main/win.result index d4a5ac63216..e52ac635c7b 100644 --- a/mysql-test/main/win.result +++ b/mysql-test/main/win.result @@ -4198,6 +4198,38 @@ drop procedure sp7; drop view v1,v2; drop table t1; # +# MDEV-17785: Window functions not working in ONLY_FULL_GROUP_BY mode +# +CREATE TABLE t1(a VARCHAR(10), b int); +INSERT INTO t1 VALUES +('Maths', 60),('Maths', 60), +('Maths', 70),('Maths', 55), +('Biology', 60), ('Biology', 70); +SET @save_sql_mode= @@sql_mode; +SET sql_mode = 'ONLY_FULL_GROUP_BY'; +SELECT +RANK() OVER (PARTITION BY a ORDER BY b) AS rank, +a, b FROM t1 ORDER BY a, b DESC; +rank a b +2 Biology 70 +1 Biology 60 +4 Maths 70 +2 Maths 60 +2 Maths 60 +1 Maths 55 +SET sql_mode= @save_sql_mode; +DROP TABLE t1; +CREATE TABLE t1(i int,j int); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +SELECT i, LAST_VALUE(COUNT(i)) OVER (PARTITION BY i ORDER BY j) FROM t1 GROUP BY i; +i LAST_VALUE(COUNT(i)) OVER (PARTITION BY i ORDER BY j) +1 6 +2 4 +3 2 +4 2 +DROP TABLE t1; +# # End of 10.2 tests # # diff --git a/mysql-test/main/win.test b/mysql-test/main/win.test index 2b3ce469990..171a57180dc 100644 --- a/mysql-test/main/win.test +++ b/mysql-test/main/win.test @@ -2704,6 +2704,33 @@ drop view v1,v2; drop table t1; --echo # +--echo # MDEV-17785: Window functions not working in ONLY_FULL_GROUP_BY mode +--echo # + +CREATE TABLE t1(a VARCHAR(10), b int); + +INSERT INTO t1 VALUES +('Maths', 60),('Maths', 60), +('Maths', 70),('Maths', 55), +('Biology', 60), ('Biology', 70); + +SET @save_sql_mode= @@sql_mode; +SET sql_mode = 'ONLY_FULL_GROUP_BY'; + +SELECT + RANK() OVER (PARTITION BY a ORDER BY b) AS rank, + a, b FROM t1 ORDER BY a, b DESC; + +SET sql_mode= @save_sql_mode; +DROP TABLE t1; + +CREATE TABLE t1(i int,j int); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +SELECT i, LAST_VALUE(COUNT(i)) OVER (PARTITION BY i ORDER BY j) FROM t1 GROUP BY i; +DROP TABLE t1; + +--echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 592915fb0b2..d33fd0eb84f 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1747,7 +1747,7 @@ sub collect_mysqld_features_from_running_server () } mtr_add_arg($args, "--silent"); # Tab separated output - mtr_add_arg($args, "-e '%s'", "use mysql; SHOW VARIABLES"); + mtr_add_arg($args, "-e \"use mysql; SHOW VARIABLES\""); my $cmd= "$mysql " . join(' ', @$args); mtr_verbose("cmd: $cmd"); diff --git a/mysql-test/suite/encryption/r/tempfiles_encrypted.result b/mysql-test/suite/encryption/r/tempfiles_encrypted.result index dea3e4f0968..de9820184a5 100644 --- a/mysql-test/suite/encryption/r/tempfiles_encrypted.result +++ b/mysql-test/suite/encryption/r/tempfiles_encrypted.result @@ -4204,6 +4204,38 @@ drop procedure sp7; drop view v1,v2; drop table t1; # +# MDEV-17785: Window functions not working in ONLY_FULL_GROUP_BY mode +# +CREATE TABLE t1(a VARCHAR(10), b int); +INSERT INTO t1 VALUES +('Maths', 60),('Maths', 60), +('Maths', 70),('Maths', 55), +('Biology', 60), ('Biology', 70); +SET @save_sql_mode= @@sql_mode; +SET sql_mode = 'ONLY_FULL_GROUP_BY'; +SELECT +RANK() OVER (PARTITION BY a ORDER BY b) AS rank, +a, b FROM t1 ORDER BY a, b DESC; +rank a b +2 Biology 70 +1 Biology 60 +4 Maths 70 +2 Maths 60 +2 Maths 60 +1 Maths 55 +SET sql_mode= @save_sql_mode; +DROP TABLE t1; +CREATE TABLE t1(i int,j int); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +INSERT INTO t1 VALUES (1,1), (1,5),(1,4), (2,2),(2,5), (3,3),(4,4); +SELECT i, LAST_VALUE(COUNT(i)) OVER (PARTITION BY i ORDER BY j) FROM t1 GROUP BY i; +i LAST_VALUE(COUNT(i)) OVER (PARTITION BY i ORDER BY j) +1 6 +2 4 +3 2 +4 2 +DROP TABLE t1; +# # End of 10.2 tests # # diff --git a/mysql-test/suite/rpl/t/rpl_relay_max_extension.test b/mysql-test/suite/rpl/t/rpl_relay_max_extension.test index e1e087f2e0e..acca2f6954c 100644 --- a/mysql-test/suite/rpl/t/rpl_relay_max_extension.test +++ b/mysql-test/suite/rpl/t/rpl_relay_max_extension.test @@ -28,6 +28,8 @@ # showed # +# MDEV-27721 rpl.rpl_relay_max_extension test is not FreeBSD-compatible +--source include/linux.inc --source include/have_innodb.inc --source include/have_binlog_format_row.inc --let $rpl_topology=1->2 diff --git a/scripts/wsrep_sst_mariabackup.sh b/scripts/wsrep_sst_mariabackup.sh index aa9442b0601..471b0e5f5b0 100644 --- a/scripts/wsrep_sst_mariabackup.sh +++ b/scripts/wsrep_sst_mariabackup.sh @@ -1,4 +1,7 @@ -#!/bin/bash -ue +#!/usr/bin/env bash + +set -ue + # Copyright (C) 2017-2021 MariaDB # Copyright (C) 2013 Percona Inc # diff --git a/scripts/wsrep_sst_mysqldump.sh b/scripts/wsrep_sst_mysqldump.sh index bed2cac0a9a..1c8fc181328 100644 --- a/scripts/wsrep_sst_mysqldump.sh +++ b/scripts/wsrep_sst_mysqldump.sh @@ -1,4 +1,7 @@ -#!/bin/bash -ue +#!/usr/bin/env bash + +set -ue + # Copyright (C) 2009-2015 Codership Oy # Copyright (C) 2017-2021 MariaDB # diff --git a/scripts/wsrep_sst_rsync.sh b/scripts/wsrep_sst_rsync.sh index 28dfed18218..cc73db5da87 100644 --- a/scripts/wsrep_sst_rsync.sh +++ b/scripts/wsrep_sst_rsync.sh @@ -1,4 +1,6 @@ -#!/bin/bash -ue +#!/usr/bin/env bash + +set -ue # Copyright (C) 2017-2021 MariaDB # Copyright (C) 2010-2014 Codership Oy @@ -740,7 +742,7 @@ EOF elif [ "$OS" = 'Linux' ]; then tmpfile=$(mktemp "--tmpdir=$tmpdir") else - tmpfile=$(TMPDIR="$tmpdir"; mktemp '-d') + tmpfile=$(TMPDIR="$tmpdir"; mktemp) fi wsrep_log_info "Extracting binlog files:" diff --git a/sql/item_windowfunc.cc b/sql/item_windowfunc.cc index 5a114b7a193..11fc18b1817 100644 --- a/sql/item_windowfunc.cc +++ b/sql/item_windowfunc.cc @@ -109,6 +109,8 @@ Item_window_func::fix_fields(THD *thd, Item **ref) return true; } + window_func()->mark_as_window_func_sum_expr(); + /* TODO: why the last parameter is 'ref' in this call? What if window_func decides to substitute itself for something else and does *ref=.... ? diff --git a/sql/records.cc b/sql/records.cc index 817caada8e2..e5510e8b3d7 100644 --- a/sql/records.cc +++ b/sql/records.cc @@ -321,7 +321,7 @@ void end_read_record(READ_RECORD *info) free_cache(info); if (info->table) { - if (info->table->is_created()) + if (info->table->db_stat) // if opened (void) info->table->file->extra(HA_EXTRA_NO_CACHE); if (info->read_record_func != rr_quick) // otherwise quick_range does it (void) info->table->file->ha_index_or_rnd_end(); diff --git a/sql/sql_base.cc b/sql/sql_base.cc index be47a48fec2..d0f8966837f 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -6475,9 +6475,10 @@ find_field_in_tables(THD *thd, Item_ident *item, sl=sl->outer_select()) { Item *subs= sl->master_unit()->item; - if (subs->type() == Item::SUBSELECT_ITEM && - ((Item_subselect*)subs)->substype() == Item_subselect::IN_SUBS && - ((Item_in_subselect*)subs)->test_strategy(SUBS_SEMI_JOIN)) + if (!subs || + (subs->type() == Item::SUBSELECT_ITEM && + ((Item_subselect*)subs)->substype() == Item_subselect::IN_SUBS && + ((Item_in_subselect*)subs)->test_strategy(SUBS_SEMI_JOIN))) { continue; } diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 871b3733693..5c01d2a3b67 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -4264,7 +4264,21 @@ bool st_select_lex::optimize_unflattened_subqueries(bool const_only) } if (empty_union_result) subquery_predicate->no_rows_in_result(); - if (!is_correlated_unit) + + if (is_correlated_unit) + { + /* + Some parts of UNION are not correlated. This means we will need to + re-execute the whole UNION every time. Mark all parts of the UNION + as correlated so that they are prepared to be executed multiple + times (if we don't do that, some part of the UNION may free its + execution data at the end of first execution and crash on the second + execution) + */ + for (SELECT_LEX *sl= un->first_select(); sl; sl= sl->next_select()) + sl->uncacheable |= UNCACHEABLE_DEPENDENT; + } + else un->uncacheable&= ~UNCACHEABLE_DEPENDENT; subquery_predicate->is_correlated= is_correlated_unit; } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 87b67b521a7..fed704e0ddf 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -11693,9 +11693,6 @@ window_func: simple_window_func | sum_expr - { - ((Item_sum *) $1)->mark_as_window_func_sum_expr(); - } | function_call_generic { @@ -11708,8 +11705,6 @@ window_func: thd->parse_error(); MYSQL_YYABORT; } - - ((Item_sum *) $1)->mark_as_window_func_sum_expr(); } ; diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index 9ba0e7aecd4..c1277396f7c 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -11791,9 +11791,6 @@ window_func: simple_window_func | sum_expr - { - ((Item_sum *) $1)->mark_as_window_func_sum_expr(); - } | function_call_generic { @@ -11806,8 +11803,6 @@ window_func: thd->parse_error(); MYSQL_YYABORT; } - - ((Item_sum *) $1)->mark_as_window_func_sum_expr(); } ; diff --git a/storage/maria/ma_create.c b/storage/maria/ma_create.c index 85e158a9fd6..8ef3249c2e4 100644 --- a/storage/maria/ma_create.c +++ b/storage/maria/ma_create.c @@ -718,9 +718,10 @@ int maria_create(const char *name, enum data_file_type datafile_type, share.base.extra_options|= MA_EXTRA_OPTIONS_INSERT_ORDER; } + share.state.state.key_file_length= MY_ALIGN(info_length, maria_block_size); DBUG_PRINT("info", ("info_length: %u", info_length)); /* There are only 16 bits for the total header length. */ - if (info_length > 65535) + if (share.state.state.key_file_length > 65535) { my_printf_error(HA_WRONG_CREATE_OPTION, "Aria table '%s' has too many columns and/or " @@ -777,8 +778,7 @@ int maria_create(const char *name, enum data_file_type datafile_type, maria_set_all_keys_active(share.state.key_map, keys); - share.base.keystart = share.state.state.key_file_length= - MY_ALIGN(info_length, maria_block_size); + share.base.keystart = share.state.state.key_file_length; share.base.max_key_block_length= maria_block_size; share.base.max_key_length=ALIGN_SIZE(max_key_length+4); share.base.records=ci->max_rows; |