unknown
2e1bfbd2b4
Cleanup patch for handling of subselects in commands which cannot
...
handle them.
Problem:
CREATE|ALTER EVENT, HANDLER READ, KILL, Partitioning uses `expr` from the
parser. This rule comes with all the rings and bells including subqueries.
However, these commands are not subquery safe. For this reason there are two
fuse checks in the parser. They were checking by command id. CREATE EVENT
should forbid subquery is the fix for
bug#16394 Events: Crash if schedule contains SELECT
The fix has been incorporated as part of the patch for WL#3337 (Event scheduler
new architecture).
Solution:
A new flag was added to LEX command_forbids_subselect. The fuse checks were
changed. The commands are responsible to set the value to true whenever
they can't handle subselects.
sql/sql_lex.cc:
initialize the variable
sql/sql_lex.h:
Add a new flag whether the parser should allow a subselect when
parsing. This is temporarily turned off by commands like CREATE|ALTER EVENT,
HA_READ, KILL. Could be used by other parts which reuse `expr` rule of the
grammar and should not allow subqueries as part of it.
sql/sql_yacc.yy:
Forbid subselects in some commands in a better way.
CREATE|ALTER EVENT, HANDLER READ, KILL, are not subselect
safe for parameters and therefore they should be forbidden already in
the parser.
This patch makes it easier for the developer to add new commands in that
sense similar to the mentioned above.
2006-08-23 16:53:04 +02:00
..
2006-08-17 14:22:59 +02:00
2006-05-30 10:22:31 +02:00
2006-08-14 15:26:59 +02:00
2006-05-02 17:53:26 -07:00
2006-05-30 18:21:03 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 17:44:16 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 17:44:16 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-07-15 01:04:51 +04:00
2006-08-12 21:06:51 +04:00
2006-08-08 09:01:32 -07:00
2006-06-28 14:03:08 +03:00
2006-06-06 02:47:30 +03:00
2006-06-04 21:05:22 +03:00
2006-08-08 09:01:32 -07:00
2006-08-02 12:36:01 +02:00
2006-06-04 21:05:22 +03:00
2006-06-04 21:05:22 +03:00
2006-08-01 21:59:58 +02:00
2006-07-29 07:17:33 +04:00
2006-08-10 14:28:39 -07:00
2006-06-04 21:05:22 +03:00
2006-08-10 14:28:39 -07:00
2006-06-15 10:58:02 +02:00
2006-08-02 17:57:06 +02:00
2006-08-02 17:57:06 +02:00
2006-08-02 18:10:51 +02:00
2006-07-01 00:19:23 -04:00
2006-07-15 04:06:31 -04:00
2006-07-15 03:59:53 -04:00
2006-08-17 18:13:45 +02:00
2006-08-04 14:48:51 +04:00
2006-06-15 16:24:02 +05:00
2006-07-30 00:33:24 +04:00
2006-07-30 00:33:24 +04:00
2006-07-26 23:33:25 +04:00
2006-07-26 23:33:25 +04:00
2006-08-12 21:06:51 +04:00
2006-08-12 21:06:51 +04:00
2006-07-05 11:20:10 +02:00
2006-06-04 18:52:22 +03:00
2006-06-04 18:52:22 +03:00
2006-08-12 21:06:51 +04:00
2006-08-12 21:06:51 +04:00
2006-08-12 21:06:51 +04:00
2006-07-30 00:33:24 +04:00
2006-08-14 13:27:11 +04:00
2006-08-12 21:06:51 +04:00
2006-08-12 21:06:51 +04:00
2006-06-18 14:56:35 +04:00
2006-07-14 02:07:37 +04:00
2006-05-31 13:32:14 -04:00
2006-08-17 19:09:55 +02:00
2006-07-30 00:33:24 +04:00
2006-06-21 13:00:19 +05:00
2006-05-23 11:25:11 -07:00
2006-07-04 10:02:11 +02:00
2006-07-13 17:34:49 +04:00
2006-07-03 11:35:58 -04:00
2006-08-03 21:28:15 +04:00
2006-08-03 21:28:15 +04:00
2006-08-17 14:22:59 +02:00
2006-08-17 19:09:55 +02:00
2006-08-14 15:26:59 +02:00
2006-06-17 00:30:02 +02:00
2006-08-01 09:24:19 +04:00
2006-07-30 00:33:24 +04:00
2006-07-05 11:11:40 +02:00
2006-06-14 09:12:07 -04:00
2006-06-27 22:19:27 +02:00
2006-06-27 22:19:27 +02:00
2006-06-16 12:17:20 +02:00
2006-08-12 21:06:51 +04:00
2006-06-04 18:52:22 +03:00
2006-05-22 20:46:13 +02:00
2006-07-07 16:14:07 +04:00
2006-07-07 16:14:07 +04:00
2006-06-23 15:05:15 +02:00
2006-06-23 15:05:15 +02:00
2006-06-07 23:58:08 +04:00
2006-08-17 14:22:59 +02:00
2006-07-26 23:33:25 +04:00
2006-08-12 21:06:51 +04:00
2006-06-28 23:47:45 +04:00
2006-08-14 15:26:59 +02:00
2006-08-12 21:06:51 +04:00
2006-04-18 11:07:34 +02:00
2006-04-18 11:07:34 +02:00
2006-05-15 12:01:55 +02:00
2006-05-15 12:01:55 +02:00
2006-08-12 21:06:51 +04:00
2006-07-26 12:40:26 +02:00
2006-06-04 21:05:22 +03:00
2006-06-28 16:28:29 +03:00
2006-08-17 19:09:55 +02:00
2006-05-11 11:28:56 +04:00
2006-06-16 12:17:20 +02:00
2006-06-16 12:17:20 +02:00
2006-08-10 14:28:39 -07:00
2006-06-04 18:52:22 +03:00
2006-07-26 23:33:25 +04:00
2006-08-14 15:26:59 +02:00
2006-08-12 21:06:51 +04:00
2006-06-19 12:45:34 +03:00
2006-08-17 14:22:59 +02:00
2006-08-14 16:30:57 +04:00
2006-06-04 18:52:22 +03:00
2006-08-17 18:13:45 +02:00
2006-08-17 18:13:45 +02:00
2006-07-04 10:02:11 +02:00
2006-06-04 18:52:22 +03:00
2006-08-10 14:28:39 -07:00
2006-08-23 16:53:04 +02:00
2006-08-23 16:53:04 +02:00
2006-07-13 00:18:59 +04:00
2006-07-18 15:53:12 +05:00
2006-06-04 18:52:22 +03:00
2006-08-18 10:11:32 +02:00
2006-08-17 19:09:55 +02:00
2006-06-27 22:19:27 +02:00
2006-08-17 18:13:45 +02:00
2006-06-12 06:50:11 -07:00
2006-08-12 21:06:51 +04:00
2006-08-02 17:57:06 +02:00
2006-06-04 18:52:22 +03:00
2006-08-09 13:37:20 +04:00
2006-07-28 21:27:01 +04:00
2006-08-18 10:11:32 +02:00
2006-06-28 14:22:14 +02:00
2006-06-19 13:00:36 +03:00
2006-07-01 14:31:52 -04:00
2006-08-14 16:30:57 +04:00
2006-06-12 06:50:11 -07:00
2006-05-04 22:27:12 +03:00
2006-08-17 19:09:55 +02:00
2006-07-06 13:33:23 +04:00
2006-08-12 21:06:51 +04:00
2006-07-09 13:03:51 +04:00
2006-07-01 00:01:37 -04:00
2006-07-26 23:33:25 +04:00
2006-08-17 19:09:55 +02:00
2006-08-09 02:49:29 +04:00
2006-08-23 16:53:04 +02:00
2006-07-09 17:52:19 +02:00
2006-08-17 14:22:59 +02:00
2006-08-17 14:22:59 +02:00
2006-07-11 13:06:29 -04:00
2006-08-17 18:13:45 +02:00
2006-05-02 18:41:42 -04:00
2006-08-02 13:25:13 +04:00
2006-07-19 08:57:52 +02:00
2006-08-09 02:49:29 +04:00