Commit de111ba6 authored by Otto Kekäläinen's avatar Otto Kekäläinen
Browse files

New upstream version 10.1.30

parent 255c2398
commit: 05103c84ecc519eae4090b720f48203a648e2ab9 commit: 461cf3e5a3c2d346d75b1407b285f8daf9d01f67
date: 2017-11-13 18:41:55 +0000 date: 2017-12-21 17:40:01 +0200
build-date: 2017-11-13 18:46:50 +0000 build-date: 2017-12-21 15:48:56 +0000
short: 05103c8 short: 461cf3e
branch: HEAD branch: HEAD
MariaDB source 10.1.29 MariaDB source 10.1.30
MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=1 MYSQL_VERSION_MINOR=1
MYSQL_VERSION_PATCH=29 MYSQL_VERSION_PATCH=30
...@@ -1793,8 +1793,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1793,8 +1793,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
#endif #endif
break; break;
case OPT_SERVER_ARG: case OPT_SERVER_ARG:
......
...@@ -166,8 +166,8 @@ static struct my_option my_long_options[]= ...@@ -166,8 +166,8 @@ static struct my_option my_long_options[]=
"server with which it was built/distributed.", "server with which it was built/distributed.",
&opt_version_check, &opt_version_check, 0, &opt_version_check, &opt_version_check, 0,
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{"write-binlog", OPT_WRITE_BINLOG, "All commands including those, " {"write-binlog", OPT_WRITE_BINLOG, "All commands including those "
"issued by mysqlcheck, are written to the binary log.", "issued by mysqlcheck are written to the binary log.",
&opt_write_binlog, &opt_write_binlog, 0, GET_BOOL, NO_ARG, &opt_write_binlog, &opt_write_binlog, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
......
...@@ -298,8 +298,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -298,8 +298,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
return 0; return 0;
......
...@@ -1649,8 +1649,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1649,8 +1649,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
remote_opt= 1; remote_opt= 1;
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case OPT_START_DATETIME: case OPT_START_DATETIME:
start_datetime= convert_str_to_timestamp(start_datetime_str); start_datetime= convert_str_to_timestamp(start_datetime_str);
...@@ -1663,8 +1667,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -1663,8 +1667,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_base64_output_mode= BASE64_OUTPUT_ALWAYS; opt_base64_output_mode= BASE64_OUTPUT_ALWAYS;
else else
{ {
opt_base64_output_mode= (enum_base64_output_mode) int val;
(find_type_or_exit(argument, &base64_output_mode_typelib, opt->name)-1);
if ((val= find_type_with_warning(argument, &base64_output_mode_typelib,
opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
opt_base64_output_mode= (enum_base64_output_mode) (val - 1);
} }
break; break;
case OPT_REWRITE_DB: // db_from->db_to case OPT_REWRITE_DB: // db_from->db_to
......
...@@ -367,8 +367,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -367,8 +367,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
print_version(); exit(0); print_version(); exit(0);
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
......
...@@ -956,8 +956,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -956,8 +956,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
} }
case (int) OPT_MYSQL_PROTOCOL: case (int) OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
} }
return 0; return 0;
......
...@@ -249,8 +249,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -249,8 +249,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
break; break;
#endif #endif
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : "d:t:o"); DBUG_PUSH(argument ? argument : "d:t:o");
......
...@@ -328,8 +328,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -328,8 +328,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : "d:t:o"); DBUG_PUSH(argument ? argument : "d:t:o");
......
...@@ -779,8 +779,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -779,8 +779,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#endif #endif
break; break;
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
break; break;
case '#': case '#':
DBUG_PUSH(argument ? argument : default_dbug_option); DBUG_PUSH(argument ? argument : default_dbug_option);
......
...@@ -7292,8 +7292,12 @@ get_one_option(int optid, const struct my_option *opt, char *argument) ...@@ -7292,8 +7292,12 @@ get_one_option(int optid, const struct my_option *opt, char *argument)
exit(0); exit(0);
case OPT_MYSQL_PROTOCOL: case OPT_MYSQL_PROTOCOL:
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
#endif #endif
break; break;
case '?': case '?':
......
...@@ -42,7 +42,8 @@ MACRO(CHECK_DTRACE) ...@@ -42,7 +42,8 @@ MACRO(CHECK_DTRACE)
# On FreeBSD, dtrace does not handle userland tracing yet # On FreeBSD, dtrace does not handle userland tracing yet
IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD" IF(DTRACE AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD"
AND NOT BUGGY_GCC_NO_DTRACE_MODULES AND NOT BUGGY_GCC_NO_DTRACE_MODULES
AND NOT BUGGY_LINUX_DTRACE) AND NOT BUGGY_LINUX_DTRACE
AND NOT CMAKE_SYSTEM_NAME MATCHES "SunOS")
SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace") SET(ENABLE_DTRACE ON CACHE BOOL "Enable dtrace")
ENDIF() ENDIF()
SET(HAVE_DTRACE ${ENABLE_DTRACE}) SET(HAVE_DTRACE ${ENABLE_DTRACE})
......
...@@ -162,6 +162,8 @@ SET(INSTALL_MYSQLDATADIR_RPM "/var/lib/mysql") ...@@ -162,6 +162,8 @@ SET(INSTALL_MYSQLDATADIR_RPM "/var/lib/mysql")
SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock") SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock")
SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system") SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system")
SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d")
SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d")
# #
# DEB layout # DEB layout
...@@ -191,6 +193,8 @@ SET(INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql") ...@@ -191,6 +193,8 @@ SET(INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql")
SET(INSTALL_UNIX_ADDRDIR_DEB "/var/run/mysqld/mysqld.sock") SET(INSTALL_UNIX_ADDRDIR_DEB "/var/run/mysqld/mysqld.sock")
SET(INSTALL_SYSTEMD_UNITDIR_DEB "/lib/systemd/system") SET(INSTALL_SYSTEMD_UNITDIR_DEB "/lib/systemd/system")
SET(INSTALL_SYSTEMD_SYSUSERSDIR_DEB "/usr/lib/sysusers.d")
SET(INSTALL_SYSTEMD_TMPFILESDIR_DEB "/usr/lib/tmpfiles.d")
# #
# SVR4 layout # SVR4 layout
...@@ -232,7 +236,7 @@ SET(OLD_INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE INTERNAL "") ...@@ -232,7 +236,7 @@ SET(OLD_INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE INTERNAL "")
# layout is chosen) # layout is chosen)
FOREACH(var BIN SBIN LIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN SYSCONF SYSCONF2 FOREACH(var BIN SBIN LIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN SYSCONF SYSCONF2
INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA UNIX_ADDR INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA UNIX_ADDR
SYSTEMD_UNIT) SYSTEMD_UNIT SYSTEMD_SYSUSERS SYSTEMD_TMPFILES)
SET(INSTALL_${var}DIR ${INSTALL_${var}DIR_${INSTALL_LAYOUT}} SET(INSTALL_${var}DIR ${INSTALL_${var}DIR_${INSTALL_LAYOUT}}
CACHE STRING "${var} installation directory" ${FORCE}) CACHE STRING "${var} installation directory" ${FORCE})
MARK_AS_ADVANCED(INSTALL_${var}DIR) MARK_AS_ADVANCED(INSTALL_${var}DIR)
......
...@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ...@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include <string.h> #include <string.h>
#include <zlib.h> #include <zlib.h>
#if __GNUC__ >= 4 && defined(__x86_64__) #if defined(__GNUC__) && defined(__x86_64__)
static int pclmul_enabled = 0; static int pclmul_enabled = 0;
#endif #endif
......
...@@ -1103,11 +1103,13 @@ Disable with --skip-innodb-doublewrite.", (G_PTR*) &innobase_use_doublewrite, ...@@ -1103,11 +1103,13 @@ Disable with --skip-innodb-doublewrite.", (G_PTR*) &innobase_use_doublewrite,
(G_PTR*) &defaults_group, (G_PTR*) &defaults_group, (G_PTR*) &defaults_group, (G_PTR*) &defaults_group,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"plugin-dir", OPT_PLUGIN_DIR, "Server plugin directory", {"plugin-dir", OPT_PLUGIN_DIR,
"Server plugin directory. Used to load encryption plugin during 'prepare' phase."
"Has no effect in the 'backup' phase (plugin directory during backup is the same as server's)",
&xb_plugin_dir, &xb_plugin_dir, &xb_plugin_dir, &xb_plugin_dir,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
{ "plugin-load", OPT_PLUGIN_LOAD, "encrypton plugin to load", { "plugin-load", OPT_PLUGIN_LOAD, "encrypton plugin to load during 'prepare' phase.",
&xb_plugin_load, &xb_plugin_load, &xb_plugin_load, &xb_plugin_load,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
...@@ -1378,8 +1380,12 @@ xb_get_one_option(int optid, ...@@ -1378,8 +1380,12 @@ xb_get_one_option(int optid,
case OPT_PROTOCOL: case OPT_PROTOCOL:
if (argument) if (argument)
{ {
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, if ((opt_protocol= find_type_with_warning(argument, &sql_protocol_typelib,
opt->name); opt->name)) <= 0)
{
sf_leaking_memory= 1; /* no memory leak reports here */
exit(1);
}
} }
break; break;
#include "sslopt-case.h" #include "sslopt-case.h"
...@@ -2555,8 +2561,9 @@ xtrabackup_scan_log_recs( ...@@ -2555,8 +2561,9 @@ xtrabackup_scan_log_recs(
to this lsn */ to this lsn */
lsn_t* group_scanned_lsn,/*!< out: scanning succeeded up to lsn_t* group_scanned_lsn,/*!< out: scanning succeeded up to
this lsn */ this lsn */
bool* finished) /*!< out: false if is not able to scan bool* finished, /*!< out: false if is not able to scan
any more in this log group */ any more in this log group */
bool* must_reread_log) /*!< out: should re-read buffer from disk, incomplete read*/
{ {
lsn_t scanned_lsn; lsn_t scanned_lsn;
ulint data_len; ulint data_len;
...@@ -2566,6 +2573,7 @@ xtrabackup_scan_log_recs( ...@@ -2566,6 +2573,7 @@ xtrabackup_scan_log_recs(
ulint scanned_checkpoint_no = 0; ulint scanned_checkpoint_no = 0;
*finished = false; *finished = false;
*must_reread_log = false;
scanned_lsn = start_lsn; scanned_lsn = start_lsn;
log_block = log_sys->buf; log_block = log_sys->buf;
...@@ -2622,8 +2630,10 @@ xtrabackup_scan_log_recs( ...@@ -2622,8 +2630,10 @@ xtrabackup_scan_log_recs(
msg("mariabackup: warning: this is possible when the " msg("mariabackup: warning: this is possible when the "
"log block has not been fully written by the " "log block has not been fully written by the "
"server, will retry later.\n"); "server, will retry later.\n");
*finished = true; *finished = false;
break; *must_reread_log = true;
my_sleep(1000);
return false;
} }
if (log_block_get_flush_bit(log_block)) { if (log_block_get_flush_bit(log_block)) {
...@@ -2735,12 +2745,21 @@ xtrabackup_copy_logfile(lsn_t from_lsn, my_bool is_last) ...@@ -2735,12 +2745,21 @@ xtrabackup_copy_logfile(lsn_t from_lsn, my_bool is_last)
mutex_enter(&log_sys->mutex); mutex_enter(&log_sys->mutex);
bool scan_ok = false;
bool must_reread_log;
int retries = 0;
do {
log_group_read_log_seg(LOG_RECOVER, log_sys->buf, log_group_read_log_seg(LOG_RECOVER, log_sys->buf,
group, start_lsn, end_lsn, false); group, start_lsn, end_lsn, false);
if (!xtrabackup_scan_log_recs(group, is_last, scan_ok = xtrabackup_scan_log_recs(group, is_last,
start_lsn, &contiguous_lsn, &group_scanned_lsn, start_lsn, &contiguous_lsn, &group_scanned_lsn,
&finished)) { &finished, &must_reread_log);
} while (!scan_ok && must_reread_log && retries++ < 100);
if (!scan_ok) {
goto error; goto error;
} }
...@@ -4955,10 +4974,29 @@ xtrabackup_apply_delta( ...@@ -4955,10 +4974,29 @@ xtrabackup_apply_delta(
const os_offset_t off = os_offset_t(offset_on_page)*page_size; const os_offset_t off = os_offset_t(offset_on_page)*page_size;
if (off == 0) { if (off == 0) {
/* Fix tablespace size. */ /* Read tablespace size from page 0,
os_offset_t n_pages = fsp_get_size_low(static_cast<ib_page_t *>(buf)); extend the tablespace to specified size. */
os_offset_t n_pages = mach_read_from_4(buf + FSP_HEADER_OFFSET + FSP_SIZE);
ulint space_id = mach_read_from_4(buf + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID);
if (space_id != TRX_SYS_SPACE) {
if (!os_file_set_size(dst_path, dst_file, n_pages*page_size)) if (!os_file_set_size(dst_path, dst_file, n_pages*page_size))
goto error; goto error;
} else {
/* System tablespace needs special handling , since
it can consist of multiple files. The first one has full
tablespace size in page 0, but only last file should be extended. */
mutex_enter(&fil_system->mutex);
fil_space_t* space = fil_space_get_by_id(space_id);
mutex_exit(&fil_system->mutex);
DBUG_ASSERT(space);
fil_node_t* n = UT_LIST_GET_FIRST(space->chain);
if(strcmp(n->name, dst_path) == 0) {
/* Got first tablespace file, with correct size */
ulint actual_size;
if (!fil_extend_space_to_desired_size(&actual_size, 0, (ulint)n_pages))
goto error;
}
}
} }
success = os_file_write(dst_path, dst_file, buf, off, page_size); success = os_file_write(dst_path, dst_file, buf, off, page_size);
......
...@@ -64,15 +64,6 @@ ...@@ -64,15 +64,6 @@
extern "C" { extern "C" {
#endif #endif
/*
my_str_malloc(), my_str_realloc() and my_str_free() are assigned to
implementations in strings/alloc.c, but can be overridden in
the calling program.
*/
extern void *(*my_str_malloc)(size_t);
extern void *(*my_str_realloc)(void *, size_t);
extern void (*my_str_free)(void *);
#ifdef DBUG_OFF #ifdef DBUG_OFF
#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER) #if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER)
#define strmov(A,B) __builtin_stpcpy((A),(B)) #define strmov(A,B) __builtin_stpcpy((A),(B))
......
...@@ -63,6 +63,12 @@ typedef struct st_mysql_lex_string LEX_STRING; ...@@ -63,6 +63,12 @@ typedef struct st_mysql_lex_string LEX_STRING;
/* NO and OK is the same used just to show semantics */ /* NO and OK is the same used just to show semantics */
#define ER_DYNCOL_NO ER_DYNCOL_OK #define ER_DYNCOL_NO ER_DYNCOL_OK
#ifdef HAVE_CHARSET_utf8mb4
#define DYNCOL_UTF (&my_charset_utf8mb4_general_ci)
#else
#define DYNCOL_UTF (&my_charset_utf8_general_ci)
#endif
enum enum_dyncol_func_result enum enum_dyncol_func_result
{ {
ER_DYNCOL_OK= 0, ER_DYNCOL_OK= 0,
......
...@@ -221,8 +221,6 @@ typedef struct st_typelib { ...@@ -221,8 +221,6 @@ typedef struct st_typelib {
extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position); extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position);
extern int find_type_with_warning(const char *x, TYPELIB *typelib, extern int find_type_with_warning(const char *x, TYPELIB *typelib,
const char *option); const char *option);
extern int find_type_or_exit(const char *x, TYPELIB *typelib,
const char *option);
extern int find_type(const char *x, const TYPELIB *typelib, unsigned int flags); extern int find_type(const char *x, const TYPELIB *typelib, unsigned int flags);
extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); extern void make_type(char *to,unsigned int nr,TYPELIB *typelib);
extern const char *get_type(TYPELIB *typelib,unsigned int nr); extern const char *get_type(TYPELIB *typelib,unsigned int nr);
......
...@@ -29,8 +29,6 @@ typedef struct st_typelib { /* Different types saved here */ ...@@ -29,8 +29,6 @@ typedef struct st_typelib { /* Different types saved here */
extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position); extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position);
extern int find_type_with_warning(const char *x, TYPELIB *typelib, extern int find_type_with_warning(const char *x, TYPELIB *typelib,
const char *option); const char *option);
extern int find_type_or_exit(const char *x, TYPELIB *typelib,
const char *option);
#define FIND_TYPE_BASIC 0 #define FIND_TYPE_BASIC 0
/** makes @c find_type() require the whole name, no prefix */ /** makes @c find_type() require the whole name, no prefix */
#define FIND_TYPE_NO_PREFIX (1 << 0) #define FIND_TYPE_NO_PREFIX (1 << 0)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment