mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 09:14:17 +01:00
d2eba35653
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.
54 lines
1.8 KiB
C++
54 lines
1.8 KiB
C++
#ifndef SQL_SERVERS_INCLUDED
|
|
#define SQL_SERVERS_INCLUDED
|
|
|
|
/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
|
|
|
#include "slave.h" // for tables_ok(), rpl_filter
|
|
#include "create_options.h"
|
|
|
|
class THD;
|
|
typedef struct st_lex_server_options LEX_SERVER_OPTIONS;
|
|
typedef struct st_mem_root MEM_ROOT;
|
|
|
|
/* structs */
|
|
typedef struct st_federated_server
|
|
{
|
|
const char *server_name;
|
|
long port;
|
|
size_t server_name_length;
|
|
const char *db, *scheme, *username, *password, *socket, *owner, *host, *sport;
|
|
engine_option_value *option_list;
|
|
} FOREIGN_SERVER;
|
|
|
|
/* cache handlers */
|
|
bool servers_init(bool dont_read_server_table);
|
|
bool servers_reload(THD *thd);
|
|
void servers_free(bool end=0);
|
|
|
|
/* insert functions */
|
|
int create_server(THD *thd, LEX_SERVER_OPTIONS *server_options);
|
|
|
|
/* drop functions */
|
|
int drop_server(THD *thd, LEX_SERVER_OPTIONS *server_options);
|
|
|
|
/* update functions */
|
|
int alter_server(THD *thd, LEX_SERVER_OPTIONS *server_options);
|
|
|
|
/* lookup functions */
|
|
FOREIGN_SERVER *get_server_by_name(MEM_ROOT *mem, const char *server_name,
|
|
FOREIGN_SERVER *server_buffer);
|
|
|
|
#endif /* SQL_SERVERS_INCLUDED */
|