• Yuchen Pei's avatar
    MDEV-34716 Allow arbitrary options in CREATE SERVER · 698e8fa3
    Yuchen Pei authored
    The existing syntax for CREATE SERVER
    
    CREATE [OR REPLACE] SERVER [IF NOT EXISTS] server_name
        FOREIGN DATA WRAPPER wrapper_name
        OPTIONS (option [, option] ...)
    
    option:
      { HOST character-literal
      | DATABASE character-literal
      | USER character-literal
      | PASSWORD character-literal
      | SOCKET character-literal
      | OWNER character-literal
      | PORT numeric-literal }
    
    With this change we have:
    
    option:
      { HOST character-literal
      | DATABASE character-literal
      | USER character-literal
      | PASSWORD character-literal
      | SOCKET character-literal
      | OWNER character-literal
      | PORT numeric-literal
      | PORT quoted-numerical-literal
      | identifier character-literal}
    
    We store these options as a JSON field in the mysql.servers system
    table. We retain the restriction that PORT needs to be a number, but
    also allow it to be a quoted number, so that SHOW CREATE SERVER can be
    used for dumping. Without an accompanied implementation of SHOW CREATE
    SERVER, some mysqldump tests will fail. Therefore this commit should
    be immediately followed by the one implementating SHOW CREATE SERVER,
    with testing covering both.
    698e8fa3
create_options.h 4.74 KB