summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am2
-rw-r--r--include/m_ctype.h17
-rw-r--r--include/m_string.h9
-rw-r--r--include/my_base.h4
-rw-r--r--include/my_sys.h6
-rw-r--r--include/my_xml.h61
-rw-r--r--include/myisam.h4
-rw-r--r--include/myisammrg.h2
-rw-r--r--include/mysql.h18
-rw-r--r--include/mysql_com.h7
-rw-r--r--include/mysqld_error.h3
11 files changed, 110 insertions, 23 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index c88e1ee1e40..652278e8a80 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -16,7 +16,7 @@
# MA 02111-1307, USA
BUILT_SOURCES = mysql_version.h m_ctype.h my_config.h
-pkginclude_HEADERS = dbug.h m_string.h my_sys.h my_list.h \
+pkginclude_HEADERS = dbug.h m_string.h my_sys.h my_list.h my_xml.h \
mysql.h mysql_com.h mysqld_error.h mysql_embed.h \
my_semaphore.h my_pthread.h my_no_pthread.h raid.h \
errmsg.h my_global.h my_net.h my_alloc.h \
diff --git a/include/m_ctype.h b/include/m_ctype.h
index 09a24201588..d99fda8d2b9 100644
--- a/include/m_ctype.h
+++ b/include/m_ctype.h
@@ -27,6 +27,13 @@ extern "C" {
#endif
+#define MY_CS_NAME_SIZE 32
+#define MY_CS_CTYPE_TABLE_SIZE 257
+#define MY_CS_TO_LOWER_TABLE_SIZE 256
+#define MY_CS_TO_UPPER_TABLE_SIZE 256
+#define MY_CS_SORT_ORDER_TABLE_SIZE 256
+#define MY_CS_TO_UNI_TABLE_SIZE 256
+
#define CHARSET_DIR "charsets/"
#define my_wc_t ulong
@@ -49,6 +56,7 @@ typedef struct unicase_info_st {
#define MY_CS_INDEX 4 /* sets listed in the Index file */
#define MY_CS_LOADED 8 /* sets that are currently loaded */
#define MY_CS_BINSORT 16 /* if binary sort order */
+#define MY_CS_PRIMARY 32 /* if primary collation */
#define MY_CHARSET_UNDEFINED 0
#define MY_CHARSET_CURRENT (default_charset_info->number)
@@ -65,6 +73,7 @@ typedef struct charset_info_st
{
uint number;
uint state;
+ const char *csname;
const char *name;
const char *comment;
uchar *ctype;
@@ -127,11 +136,12 @@ typedef struct charset_info_st
int (*l10tostr)(struct charset_info_st *, char *to, uint n, int radix, long int val);
int (*ll10tostr)(struct charset_info_st *, char *to, uint n, int radix, longlong val);
+ /* String-to-number convertion routines */
long (*strntol)(struct charset_info_st *, const char *s, uint l,char **e, int base);
ulong (*strntoul)(struct charset_info_st *, const char *s, uint l, char **e, int base);
longlong (*strntoll)(struct charset_info_st *, const char *s, uint l, char **e, int base);
ulonglong (*strntoull)(struct charset_info_st *, const char *s, uint l, char **e, int base);
- double (*strntod)(struct charset_info_st *, const char *s, uint l, char **e);
+ double (*strntod)(struct charset_info_st *, char *s, uint l, char **e);
} CHARSET_INFO;
@@ -142,7 +152,8 @@ extern CHARSET_INFO *default_charset_info;
extern CHARSET_INFO *system_charset_info;
extern CHARSET_INFO *all_charsets[256];
extern my_bool init_compiled_charsets(myf flags);
-
+extern my_bool my_parse_charset_xml(const char *bug, uint len,
+ int (*add)(CHARSET_INFO *cs));
/* declarations for simple charsets */
extern int my_strnxfrm_simple(CHARSET_INFO *, uchar *, uint, const uchar *, uint);
@@ -175,7 +186,7 @@ long my_strntol_8bit(CHARSET_INFO *, const char *s, uint l,char **e, int
ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, uint l,char **e, int base);
longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, uint l,char **e, int base);
ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, uint l,char **e, int base);
-double my_strntod_8bit(CHARSET_INFO *, const char *s, uint l,char **e);
+double my_strntod_8bit(CHARSET_INFO *, char *s, uint l,char **e);
int my_l10tostr_8bit(CHARSET_INFO *, char *to, uint l, int radix, long int val);
int my_ll10tostr_8bit(CHARSET_INFO *, char *to, uint l, int radix, longlong val);
diff --git a/include/m_string.h b/include/m_string.h
index c6943613b1a..15a488fe72a 100644
--- a/include/m_string.h
+++ b/include/m_string.h
@@ -31,6 +31,9 @@
#include <string.h>
#endif
+/* need by my_vsnprintf */
+#include <stdarg.h>
+
/* Correct some things for UNIXWARE7 */
#ifdef HAVE_UNIXWARE7_THREADS
#undef HAVE_STRINGS_H
@@ -238,6 +241,12 @@ extern ulonglong strtoull(const char *str, char **ptr, int base);
#endif
#endif
+/* my_vsnprintf.c */
+
+extern int my_vsnprintf( char *str, size_t n,
+ const char *format, va_list ap );
+extern int my_snprintf(char* to, size_t n, const char* fmt, ...);
+
#if defined(__cplusplus) && !defined(OS2)
}
#endif
diff --git a/include/my_base.h b/include/my_base.h
index ccca3f74ec4..b16a545b937 100644
--- a/include/my_base.h
+++ b/include/my_base.h
@@ -107,9 +107,6 @@ enum ha_extra_function {
HA_EXTRA_IGNORE_DUP_KEY, /* Dup keys don't rollback everything*/
HA_EXTRA_NO_IGNORE_DUP_KEY,
HA_EXTRA_DONT_USE_CURSOR_TO_UPDATE, /* Cursor will not be used for update */
- HA_EXTRA_BULK_INSERT_BEGIN,
- HA_EXTRA_BULK_INSERT_FLUSH, /* Flush one index */
- HA_EXTRA_BULK_INSERT_END,
HA_EXTRA_PREPARE_FOR_DELETE,
HA_EXTRA_PREPARE_FOR_UPDATE /* Remove read cache if problems */
};
@@ -267,6 +264,7 @@ enum ha_base_keytype {
#define MBR_EQUAL 8192
#define MBR_DATA 16384
#define SEARCH_NULL_ARE_EQUAL 32768 /* NULL in keys are equal */
+#define SEARCH_NULL_ARE_NOT_EQUAL 65536 /* NULL in keys are not equal */
/* bits in opt_flag */
#define QUICK_USED 1
diff --git a/include/my_sys.h b/include/my_sys.h
index ab5dedc0ba1..3d81a9e9219 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -206,6 +206,7 @@ extern const char *get_charset_name(uint cs_number);
extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
extern my_bool set_default_charset(uint cs, myf flags);
extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
+extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, myf flags);
extern my_bool set_default_charset_by_name(const char *cs_name, myf flags);
extern void free_charsets(void);
extern char *list_charsets(myf want_flags); /* my_free() this string... */
@@ -505,6 +506,8 @@ extern int my_setwd(const char *dir,myf MyFlags);
extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags);
extern gptr my_once_alloc(uint Size,myf MyFlags);
extern void my_once_free(void);
+extern char *my_once_strdup(const char *src,myf myflags);
+extern char *my_once_memdup(const char *src, uint len, myf myflags);
extern my_string my_tempnam(const char *dir,const char *pfx,myf MyFlags);
extern File my_open(const char *FileName,int Flags,myf MyFlags);
extern File my_register_filename(File fd, const char *FileName,
@@ -566,9 +569,6 @@ extern int my_error _VARARGS((int nr,myf MyFlags, ...));
extern int my_printf_error _VARARGS((uint my_err, const char *format,
myf MyFlags, ...)
__attribute__ ((format (printf, 2, 4))));
-extern int my_vsnprintf( char *str, size_t n,
- const char *format, va_list ap );
-extern int my_snprintf(char* to, size_t n, const char* fmt, ...);
extern int my_message(uint my_err, const char *str,myf MyFlags);
extern int my_message_no_curses(uint my_err, const char *str,myf MyFlags);
extern int my_message_curses(uint my_err, const char *str,myf MyFlags);
diff --git a/include/my_xml.h b/include/my_xml.h
new file mode 100644
index 00000000000..0d968ab38c7
--- /dev/null
+++ b/include/my_xml.h
@@ -0,0 +1,61 @@
+/* Copyright (C) 2000 MySQL AB
+
+ 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; either version 2 of the License, or
+ (at your option) any later version.
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+
+#ifndef _my_xml_h
+#define _my_xml_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define MY_XML_OK 0
+#define MY_XML_ERROR 1
+
+typedef struct xml_stack_st
+{
+ char errstr[128];
+ char attr[128];
+ char *attrend;
+ const char *beg;
+ const char *cur;
+ const char *end;
+ void *user_data;
+ int (*enter)(struct xml_stack_st *st,const char *val, uint len);
+ int (*value)(struct xml_stack_st *st,const char *val, uint len);
+ int (*leave)(struct xml_stack_st *st,const char *val, uint len);
+} MY_XML_PARSER;
+
+void my_xml_parser_create(MY_XML_PARSER *st);
+void my_xml_parser_free(MY_XML_PARSER *st);
+int my_xml_parse(MY_XML_PARSER *st,const char *str, uint len);
+
+void my_xml_set_value_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, const char *, uint len));
+void my_xml_set_enter_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, const char *, uint len));
+void my_xml_set_leave_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, const char *, uint len));
+void my_xml_set_user_data(MY_XML_PARSER *st, void *);
+
+uint my_xml_error_pos(MY_XML_PARSER *st);
+uint my_xml_error_lineno(MY_XML_PARSER *st);
+
+const char *my_xml_error_string(MY_XML_PARSER *st);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _my_xml_h */
diff --git a/include/myisam.h b/include/myisam.h
index 4f8fc149ba1..5c4a5345d37 100644
--- a/include/myisam.h
+++ b/include/myisam.h
@@ -397,6 +397,10 @@ void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows);
my_bool mi_test_if_sort_rep(MI_INFO *info, ha_rows rows, ulonglong key_map,
my_bool force);
+int mi_init_bulk_insert(MI_INFO *info, ulong cache_size, ha_rows rows);
+void mi_flush_bulk_insert(MI_INFO *info, uint inx);
+void mi_end_bulk_insert(MI_INFO *info);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/myisammrg.h b/include/myisammrg.h
index 16d3528717b..8b09e1a9231 100644
--- a/include/myisammrg.h
+++ b/include/myisammrg.h
@@ -51,6 +51,7 @@ typedef struct st_mymerge_info /* Struct from h_info */
uint reclength; /* Recordlength */
int errkey; /* With key was dupplicated on err */
uint options; /* HA_OPTION_... used */
+ ulong *rec_per_key; /* for sql optimizing */
} MYMERGE_INFO;
typedef struct st_myrg_table_info
@@ -71,6 +72,7 @@ typedef struct st_myrg_info
my_bool cache_in_use;
LIST open_list;
QUEUE by_key;
+ ulong *rec_per_key_part; /* for sql optimizing */
} MYRG_INFO;
diff --git a/include/mysql.h b/include/mysql.h
index cb82e1988f6..acf0618c8e8 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -130,6 +130,7 @@ struct st_mysql_options {
char *ssl_ca; /* PEM CA file */
char *ssl_capath; /* PEM directory of CA-s? */
char *ssl_cipher; /* cipher to use */
+ unsigned long max_allowed_packet;
my_bool use_ssl; /* if to use SSL or not */
my_bool compress,named_pipe;
/*
@@ -415,7 +416,6 @@ MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
-MYSQL_RES * STDCALL mysql_warnings(MYSQL *mysql);
int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option,
const char *arg);
void STDCALL mysql_free_result(MYSQL_RES *result);
@@ -473,13 +473,12 @@ typedef struct st_mysql_bind
{
long *length; /* output length pointer */
gptr buffer; /* buffer */
- unsigned long buffer_length; /* buffer length */
enum enum_field_types buffer_type; /* buffer type */
- enum enum_field_types field_type; /* field type */
my_bool is_null; /* NULL indicator */
my_bool is_long_data; /* long data indicator */
/* The following are for internal use. Set by mysql_bind_param */
+ unsigned long buffer_length; /* buffer length */
long bind_length; /* Default length of data */
my_bool long_ended; /* All data supplied for long */
unsigned int param_number; /* For null count and error messages */
@@ -536,15 +535,16 @@ int STDCALL mysql_multi_query(MYSQL *mysql,const char *query,
unsigned long len);
MYSQL_RES *STDCALL mysql_next_result(MYSQL *mysql);
MYSQL_RES *STDCALL mysql_prepare_result(MYSQL_STMT *stmt);
+my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt);
/* new status messages */
-#define MYSQL_SUCCESS 0
-#define MYSQL_WARNING 1
-#define MYSQL_STATUS_ERROR 2
-#define MYSQL_NO_DATA 100
-#define MYSQL_NEED_DATA 99
-#define MYSQL_LONG_DATA_END 0xFF
+#define MYSQL_SUCCESS 0
+#define MYSQL_STATUS_ERROR 1
+#define MYSQL_NO_DATA 100
+#define MYSQL_NEED_DATA 99
+#define MYSQL_NULL_DATA (-1)
+#define MYSQL_LONG_DATA (-2)
#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)
diff --git a/include/mysql_com.h b/include/mysql_com.h
index 49bf2ba017e..3d68b876596 100644
--- a/include/mysql_com.h
+++ b/include/mysql_com.h
@@ -42,7 +42,8 @@ enum enum_server_command
COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING,
COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP,
COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE,
- COM_PREPARE, COM_EXECUTE, COM_LONG_DATA, COM_CLOSE_STMT
+ COM_PREPARE, COM_EXECUTE, COM_LONG_DATA, COM_CLOSE_STMT,
+ COM_END /* Must be last */
};
@@ -297,11 +298,11 @@ int get_password_length(my_bool force_old_scramble);
char get_password_version(const char* password);
void create_random_string(int length,struct rand_struct *rand_st,char* target);
my_bool validate_password(const char* password, const char* message,
- ulong* salt);
+ unsigned long* salt);
void password_hash_stage1(char *to, const char *password);
void password_hash_stage2(char *to,const char *salt);
void password_crypt(const char* from,char* to, const char* password,int length);
-void get_hash_and_password(ulong* salt, unsigned char pversion,char* hash,
+void get_hash_and_password(unsigned long* salt, unsigned char pversion,char* hash,
unsigned char* bin_password);
void get_salt_from_password(unsigned long *res,const char *password);
void create_key_from_old_password(const char* password,char* key);
diff --git a/include/mysqld_error.h b/include/mysqld_error.h
index 81a24e89164..377f714bfff 100644
--- a/include/mysqld_error.h
+++ b/include/mysqld_error.h
@@ -265,4 +265,5 @@
#define ER_DERIVED_MUST_HAVE_ALIAS 1246
#define ER_SELECT_REDUCED 1247
#define ER_TABLENAME_NOT_ALLOWED_HERE 1248
-#define ER_ERROR_MESSAGES 249
+#define ER_NOT_SUPPORTED_AUTH_MODE 1249
+#define ER_ERROR_MESSAGES 250