• unknown's avatar
    WL#3337 (Event scheduler new architecture) Fourth cut of refactoring · cace147c
    unknown authored
    the parsing. Next step will be to refactor of usage of Event_timed 
    during Events::create_event() and Events::update_event().
    
    Disallow:
    - CREATE EVENT ... DO CREATE EVENT ...;
    - ALTER  EVENT ... DO CREATE EVENT ...;
    - CREATE EVENT ... DO ALTER EVENT DO ....;
    - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
    
    Allowed:
    - CREATE EVENT ... DO DROP EVENT yyy;
    - CREATE EVENT ... DO ALTER EVENT yyy;
      (the nested ALTER EVENT can have anything but DO clause)
    - ALTER  EVENT ... DO ALTER EVENT yyy;
      (the nested ALTER EVENT can have anything but DO clause)
    - ALTER  EVENT ... DO DROP EVENT yyy;
    - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
      (the nested ALTER EVENT can have anything but DO clause)
    - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
    
    
    mysql-test/r/events.result:
      update results
    mysql-test/r/events_bugs.result:
      update results
    mysql-test/t/events.test:
      use number as error, mysql-test-run does not like the name.
      will come back to this later, now it's enough to pass the test.
      disable nested events / events in SP, when the nested event has
      a body. If no body is provided, namely DROP EVENT or ALTER that
      changes the characteristics, then these are allowed.
    mysql-test/t/events_bugs.test:
      use number as error, mysql-test-run does not like the name.
      will come back to this later, now it's enough to pass the test.
      disable nested events / events in SP, when the nested event has
      a body. If no body is provided, namely DROP EVENT or ALTER that
      changes the characteristics, then these are allowed.
    sql/share/errmsg.txt:
      new message
    sql/sql_yacc.yy:
      refactor CREATE EVENT parsing to fit into the structure
      CREATE DEFINER=xxx EVENT
      The actual definer part is not used, but parsed, for now.
      Disable nested CREATE EVENTS, CREATE EVENT inside CREATE PROCEDURE.
      And an event DDL with body inside an ALTER.
      This stops the following :
      - CREATE EVENT ... DO CREATE EVENT ...;
      - ALTER  EVENT ... DO CREATE EVENT ...;
      - CREATE EVENT ... DO ALTER EVENT DO ....;
      - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
      This allows:
      - CREATE EVENT ... DO DROP EVENT yyy;
      - CREATE EVENT ... DO ALTER EVENT yyy;
        (the nested ALTER EVENT can have anything but DO clause)
      - ALTER  EVENT ... DO ALTER EVENT yyy;
        (the nested ALTER EVENT can have anything but DO clause)
      - ALTER  EVENT ... DO DROP EVENT yyy;
      - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
        (the nested ALTER EVENT can have anything but DO clause)
      - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
    cace147c
events_bugs.result 9.34 KB