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

Imported Upstream version 10.0.10

parent 61756679
......@@ -3,9 +3,10 @@ organization.
The current main members and sponsors of the MariaDB foundation are:
Booking.com http://www.booking.com
SkySQL Ab http://www.skysql.com
Parallels http://www.parallels.com/products/plesk
Automattic http://automattic.com (2014)
SkySQL Ab http://www.skysql.com (2013, 2014)
Booking.com http://www.booking.com (2013)
Parallels http://www.parallels.com/products/plesk (2013)
For a full list of supporters and sponsors see
https://mariadb.org/en/supporters/
......
revision-id: sergii@pisem.net-20140308113351-mkvpzkaclhoontiw
date: 2014-03-08 12:33:51 +0100
build-date: 2014-03-08 13:41:47 +0100
revno: 4040
revision-id: sergii@pisem.net-20140329163246-mzfkzyodua370lx5
date: 2014-03-29 17:32:46 +0100
build-date: 2014-03-30 19:56:54 +0200
revno: 4140
branch-nick: 10.0
MySQL source 10.0.9
MySQL source 10.0.10
......@@ -4,5 +4,5 @@
#
MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=0
MYSQL_VERSION_PATCH=9
MYSQL_VERSION_PATCH=10
MYSQL_VERSION_EXTRA=
/*
Copyright (c) 2000, 2013, Oracle and/or its affiliates.
Copyright (c) 2009, 2013, Monty Program Ab.
Copyright (c) 2013, 2014, SkySQL 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
......@@ -1176,12 +1177,9 @@ int main(int argc,char *argv[])
exit(1);
}
defaults_argv=argv;
if (get_options(argc, (char **) argv))
{
free_defaults(defaults_argv);
my_end(0);
exit(1);
}
if ((status.exit_status= get_options(argc, (char **) argv)))
mysql_end(-1);
if (status.batch && !status.line_buff &&
!(status.line_buff= batch_readline_init(MAX_BATCH_BUFFER_SIZE, stdin)))
{
......@@ -1877,7 +1875,7 @@ static int get_options(int argc, char **argv)
opt_net_buffer_length= *mysql_params->p_net_buffer_length;
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
exit(ho_error);
return(ho_error);
*mysql_params->p_max_allowed_packet= opt_max_allowed_packet;
*mysql_params->p_net_buffer_length= opt_net_buffer_length;
......
......@@ -7943,6 +7943,7 @@ void handle_error(struct st_command *command,
DBUG_ENTER("handle_error");
command->used_replace= 1;
if (command->require_file)
{
/*
......
......@@ -1642,6 +1642,7 @@ void _db_end_()
cs->stack= &init_settings;
FreeState(cs, 0);
pthread_mutex_destroy(&THR_LOCK_dbug);
init_done= 0;
}
......
......@@ -11,6 +11,7 @@ usr/lib/mysql/plugin/query_response_time.so
usr/lib/mysql/plugin/semisync_master.so
usr/lib/mysql/plugin/semisync_slave.so
usr/lib/mysql/plugin/sql_errlog.so
usr/lib/mysql/plugin/server_audit.so
usr/lib/libhsclient.so.*
etc/mysql/debian-start
etc/mysql/conf.d/mysqld_safe_syslog.cnf
......
......@@ -11,6 +11,7 @@ usr/lib/mysql/plugin/query_response_time.so
usr/lib/mysql/plugin/semisync_master.so
usr/lib/mysql/plugin/semisync_slave.so
usr/lib/mysql/plugin/sql_errlog.so
usr/lib/mysql/plugin/server_audit.so
usr/lib/libhsclient.so.*
etc/apparmor.d/usr.sbin.mysqld
usr/share/apport/package-hooks/source_mariadb-10.0.py
......
......@@ -265,7 +265,7 @@ static int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name)
if (!(pa->str= (uchar*) my_malloc((uint) (PS_MALLOC-MALLOC_OVERHEAD),
MYF(MY_WME))))
{
my_free((char*) pa->typelib.type_names);
my_free((void*) pa->typelib.type_names);
DBUG_RETURN (-1);
}
pa->max_count=(PC_MALLOC-MALLOC_OVERHEAD)/(sizeof(uchar*)+
......@@ -327,7 +327,7 @@ static void free_pointer_array(reg1 POINTER_ARRAY *pa)
if (pa->typelib.count)
{
pa->typelib.count=0;
my_free((char*) pa->typelib.type_names);
my_free((void*) pa->typelib.type_names);
pa->typelib.type_names=0;
my_free(pa->str);
}
......
......@@ -31,6 +31,12 @@
#define make_atomic_store_body(S) *a= v
#define MY_ATOMIC_MODE "gcc-builtins-up"
#elif defined(__ATOMIC_SEQ_CST)
#define MY_ATOMIC_MODE "gcc-builtins-smp"
#define make_atomic_load_body(S) \
ret= __atomic_load_n(a, __ATOMIC_SEQ_CST)
#define make_atomic_store_body(S) \
__atomic_store_n(a, v, __ATOMIC_SEQ_CST)
#else
#define MY_ATOMIC_MODE "gcc-builtins-smp"
#define make_atomic_load_body(S) \
......
......@@ -102,8 +102,8 @@ typedef struct st_heap_block
HP_PTRS *root; /* Top-level block */
struct st_level_info level_info[HP_MAX_LEVELS+1];
uint levels; /* number of used levels */
uint records_in_block; /* Records in one heap-block */
uint recbuffer; /* Length of one saved record */
ulong records_in_block; /* Records in one heap-block */
ulong last_allocated; /* number of records there is allocated space for */
} HP_BLOCK;
......@@ -134,14 +134,15 @@ typedef struct st_heap_share
{
HP_BLOCK block;
HP_KEYDEF *keydef;
ulong min_records,max_records; /* Params to open */
ulonglong data_length,index_length,max_table_size;
ulonglong auto_increment;
ulong min_records,max_records; /* Params to open */
ulong records; /* records */
ulong blength; /* records rounded up to 2^n */
ulong deleted; /* Deleted records in database */
uint key_stat_version; /* version to indicate insert/delete */
uint key_version; /* Updated on key change */
uint file_version; /* Update on clear */
uint records; /* records */
uint blength; /* records rounded up to 2^n */
uint deleted; /* Deleted records in database */
uint reclength; /* Length of one record */
uint changed;
uint keys,max_key_length;
......@@ -157,7 +158,6 @@ typedef struct st_heap_share
LIST open_list;
uint auto_key;
uint auto_key_type; /* real type of the auto key segment */
ulonglong auto_increment;
} HP_SHARE;
struct st_hp_hash_info;
......@@ -188,12 +188,12 @@ typedef struct st_heap_info
typedef struct st_heap_create_info
{
HP_KEYDEF *keydef;
ulong max_records;
ulong min_records;
uint auto_key; /* keynr [1 - maxkey] for auto key */
uint auto_key_type;
uint keys;
uint reclength;
ulong max_records;
ulong min_records;
ulonglong max_table_size;
ulonglong auto_increment;
my_bool with_auto_increment;
......
......@@ -220,6 +220,9 @@ mariadb_dyncol_unpack(DYNAMIC_COLUMN *str,
uint *count,
MYSQL_LEX_STRING **names, DYNAMIC_COLUMN_VALUE **vals);
void mariadb_dyncol_unpack_free(MYSQL_LEX_STRING *names,
DYNAMIC_COLUMN_VALUE *vals);
int mariadb_dyncol_column_cmp_named(const MYSQL_LEX_STRING *s1,
const MYSQL_LEX_STRING *s2);
......
......@@ -782,8 +782,9 @@ extern my_bool real_open_cached_file(IO_CACHE *cache);
extern void close_cached_file(IO_CACHE *cache);
File create_temp_file(char *to, const char *dir, const char *pfx,
int mode, myf MyFlags);
#define my_init_dynamic_array(A,B,C,D,E) my_init_dynamic_array2(A,B,NULL,C,D,E)
extern my_bool my_init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
#define my_init_dynamic_array(A,B,C,D,E) init_dynamic_array2(A,B,NULL,C,D,E)
#define my_init_dynamic_array2(A,B,C,D,E,F) init_dynamic_array2(A,B,C,D,E,F)
extern my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
void *init_buffer, uint init_alloc,
uint alloc_increment, myf my_flags);
extern my_bool insert_dynamic(DYNAMIC_ARRAY *array, const void* element);
......
......@@ -622,6 +622,7 @@ void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
void thd_storage_lock_wait(MYSQL_THD thd, long long value);
int thd_tx_isolation(const MYSQL_THD thd);
int thd_tx_is_read_only(const MYSQL_THD thd);
int thd_rpl_is_parallel(const MYSQL_THD thd);
/**
Create a temporary file.
......
......@@ -303,6 +303,7 @@ void **thd_ha_data(const void* thd, const struct handlerton *hton);
void thd_storage_lock_wait(void* thd, long long value);
int thd_tx_isolation(const void* thd);
int thd_tx_is_read_only(const void* thd);
int thd_rpl_is_parallel(const void* thd);
int mysql_tmpfile(const char *prefix);
unsigned long thd_get_thread_id(const void* thd);
void thd_get_xid(const void* thd, MYSQL_XID *xid);
......
......@@ -303,6 +303,7 @@ void **thd_ha_data(const void* thd, const struct handlerton *hton);
void thd_storage_lock_wait(void* thd, long long value);
int thd_tx_isolation(const void* thd);
int thd_tx_is_read_only(const void* thd);
int thd_rpl_is_parallel(const void* thd);
int mysql_tmpfile(const char *prefix);
unsigned long thd_get_thread_id(const void* thd);
void thd_get_xid(const void* thd, MYSQL_XID *xid);
......
......@@ -256,6 +256,7 @@ void **thd_ha_data(const void* thd, const struct handlerton *hton);
void thd_storage_lock_wait(void* thd, long long value);
int thd_tx_isolation(const void* thd);
int thd_tx_is_read_only(const void* thd);
int thd_rpl_is_parallel(const void* thd);
int mysql_tmpfile(const char *prefix);
unsigned long thd_get_thread_id(const void* thd);
void thd_get_xid(const void* thd, MYSQL_XID *xid);
......
......@@ -66,6 +66,7 @@
An instrumented mutex structure.
@sa mysql_mutex_t
*/
struct st_mysql_mutex
{
/** The real mutex. */
......@@ -96,6 +97,15 @@ struct st_mysql_mutex
*/
typedef struct st_mysql_mutex mysql_mutex_t;
/* How to access the pthread_mutex in mysql_mutex_t */
#ifdef SAFE_MUTEX
#define mysql_mutex_real_mutex(A) &(A)->m_mutex.mutex
#elif defined(MY_PTHREAD_FASTMUTEX)
#define mysql_mutex_real_mutex(A) &(A)->m_mutex.mutex
#else
#define mysql_mutex_real_mutex(A) &(A)->m_mutex
#endif
/**
An instrumented rwlock structure.
@sa mysql_rwlock_t
......@@ -518,7 +528,7 @@ typedef struct st_mysql_cond mysql_cond_t;
@c mysql_cond_timedwait is a drop-in replacement
for @c pthread_cond_timedwait.
*/
#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX)
#ifdef HAVE_PSI_COND_INTERFACE
#define mysql_cond_timedwait(C, M, W) \
inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__)
#else
......@@ -1171,7 +1181,7 @@ static inline int inline_mysql_cond_timedwait(
mysql_cond_t *that,
mysql_mutex_t *mutex,
const struct timespec *abstime
#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX)
#ifdef HAVE_PSI_COND_INTERFACE
, const char *src_file, uint src_line
#endif
)
......
......@@ -25,6 +25,6 @@
*/
#define ORACLE_WELCOME_COPYRIGHT_NOTICE(first_year) \
"Copyright (c) " first_year ", " COPYRIGHT_NOTICE_CURRENT_YEAR \
", Oracle, Monty Program Ab and others.\n"
", Oracle, SkySQL Ab and others.\n"
#endif /* _welcome_copyright_notice_h_ */
......@@ -248,6 +248,7 @@ mariadb_dyncol_val_str
mariadb_dyncol_val_long
mariadb_dyncol_val_double
mariadb_dyncol_unpack
mariadb_dyncol_unpack_free
mariadb_dyncol_column_cmp_named
mariadb_dyncol_column_count
mariadb_dyncol_prepare_decimal
......@@ -305,7 +306,45 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
# DBD::mysql requires this
is_prefix
)
)
# And even more so on Debian
SET(CLIENT_API_5_5_EXTRA
# libmyodbc. Argh!
alloc_dynamic
alloc_root
delete_dynamic
dynstr_append
dynstr_append_mem
dynstr_append_os_quoted
dynstr_free
dynstr_realloc
free_root
get_dynamic
init_dynamic_array2
init_dynamic_string
int2str
list_add
list_delete
my_end
my_free
my_malloc
my_memdup
my_realloc
my_strdup
set_dynamic
strdup_root
strend
strfill
strmake
strmake_root
strxmov
# pam_mysql.so
make_scrambled_password
make_scrambled_password_323
)
# Linker script to version symbols in Fedora- and Debian- compatible way, MDEV-5529
SET(VERSION_SCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/libmysql_versions.ld.in)
......@@ -323,7 +362,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
ENDFOREACH()
SET (CLIENT_API_5_5_LIST)
FOREACH (f ${CLIENT_API_FUNCTIONS_5_5})
FOREACH (f ${CLIENT_API_FUNCTIONS_5_5} ${CLIENT_API_5_5_EXTRA})
SET(CLIENT_API_5_5_LIST "${CLIENT_API_5_5_LIST}\t${f};\n")
ENDFOREACH()
......@@ -384,7 +423,9 @@ IF(UNIX)
ENDIF()
IF(NOT DISABLE_SHARED)
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_5_1_EXTRA} COMPONENT SharedLibraries)
MERGE_LIBRARIES(libmysql SHARED ${LIBS}
EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_5_1_EXTRA} ${CLIENT_API_5_5_EXTRA}
COMPONENT SharedLibraries)
IF(UNIX)
# libtool compatability
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
......
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