1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-08 14:02:17 +03:00

Merge branch '3.3' into 3.4

This commit is contained in:
Georg Richter
2025-02-11 11:45:53 +01:00
8 changed files with 113 additions and 13 deletions

View File

@@ -168,12 +168,6 @@ SET(MYSQL_LIB_SYMBOLS
mysql_use_result
mysql_warning_count)
# some gcc versions fail to compile asm parts of my_context.c,
# if build type is "Release" (see CONC-133), so we need to add -g flag
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_BUILD_TYPE MATCHES "Release")
SET_SOURCE_FILES_PROPERTIES(my_context.c PROPERTIES COMPILE_FLAGS -g)
ENDIF()
IF(ZLIB_FOUND AND WITH_EXTERNAL_ZLIB)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
ELSE()

View File

@@ -105,6 +105,7 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
c->user_func= f;
c->user_data= d;
c->active= 1;
u.a[1]= 0; /* Otherwise can give uninitialized warnings on 32-bit. */
u.p= c;
makecontext(&c->spawned_context, (uc_func_t)my_context_spawn_internal, 2,
u.a[0], u.a[1]);
@@ -204,7 +205,7 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
(
"movq %%rsp, (%[save])\n\t"
"movq %[stack], %%rsp\n\t"
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __clang__) && !defined(__INTEL_COMPILER)
#if defined(__GCC_HAVE_DWARF2_CFI_ASM) || (defined(__clang__) && __clang_major__ < 13)
/*
This emits a DWARF DW_CFA_undefined directive to make the return address
undefined. This indicates that this is the top of the stack frame, and
@@ -440,7 +441,7 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
(
"movl %%esp, (%[save])\n\t"
"movl %[stack], %%esp\n\t"
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __clang__) && !defined(__INTEL_COMPILER)
#if defined(__GCC_HAVE_DWARF2_CFI_ASM) || (defined(__clang__) && __clang_major__ < 13)
/*
This emits a DWARF DW_CFA_undefined directive to make the return address
undefined. This indicates that this is the top of the stack frame, and
@@ -675,7 +676,7 @@ my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
(
"mov x10, sp\n\t"
"mov sp, %[stack]\n\t"
#if !defined(__INTEL_COMPILER)
#if defined(__GCC_HAVE_DWARF2_CFI_ASM) || (defined(__clang__) && __clang_major__ < 13)
/*
This emits a DWARF DW_CFA_undefined directive to make the return address
(UNW_AARCH64_X30) undefined. This indicates that this is the top of the

View File

@@ -120,6 +120,7 @@ const char *mariadb_client_errors[] =
/* 5023 */ "Semi sync request error: %s",
/* 5024 */ "Invalid client flags (%lu) specified. Supported flags: %lu",
/* 5025 */ "Statement has no result set",
/* 5026 */ "Server returned an error packet without further information",
""
};

View File

@@ -80,7 +80,7 @@
#define strncasecmp _strnicmp
#endif
#define ASYNC_CONTEXT_DEFAULT_STACK_SIZE (4096*15)
#define ASYNC_CONTEXT_DEFAULT_STACK_SIZE (256*1024)
#define MA_RPL_VERSION_HACK "5.5.5-"
#define CHARSET_NAME_LEN 64
@@ -273,6 +273,11 @@ restart:
ma_strmake(net->last_error,(char*) pos,
min(len,sizeof(net->last_error)-1));
}
/* MDEV-35935: if server sends error packet without error, we have to
set error manually */
if (!net->last_errno) {
my_set_error(mysql, CR_ERR_MISSING_ERROR_INFO, SQLSTATE_UNKNOWN, 0);
}
}
else
{