[FEAT MERGE] 424 SQL compatibility patch 433

Co-authored-by: wjhh2008 <wjh2006-1@163.com>
Co-authored-by: GongYusen <986957406@qq.com>
Co-authored-by: hy-guo <fqboyg@gmail.com>
This commit is contained in:
jingtaoye35
2024-08-23 03:32:01 +00:00
committed by ob-robot
parent cb61323917
commit e537a0c479
296 changed files with 21588 additions and 4122 deletions

View File

@ -120,11 +120,13 @@ char *replace_invalid_character(const struct ObCharsetInfo* src_cs, const struct
const char *str, int64_t *out_len, void *malloc_pool, int *extra_errno)
{
char *out_str = NULL;
if (OB_ISNULL(str) || OB_ISNULL(extra_errno) || OB_ISNULL(out_len)) {
if (OB_ISNULL(str) || OB_ISNULL(extra_errno) || OB_ISNULL(out_len) || OB_ISNULL(src_cs)) {
} else if (NULL == oracle_db_cs) {
out_str = const_cast<char *>(str);
} else {
ob_wc_t replace_char = !!(oracle_db_cs->state & OB_CS_UNICODE) ? 0xFFFD : '?';
ob_wc_t replace_char = (!!(oracle_db_cs->state & OB_CS_UNICODE)) &&
(!!(src_cs->state & OB_CS_UNICODE))
? 0xFFFD : '?';
uint errors = 0;
size_t str_len = STRLEN(str);
char *temp_str = NULL;
@ -269,8 +271,10 @@ char *parse_strdup_with_replace_multi_byte_char(const char *str, int *connection
case 46/*CS_TYPE_UTF8MB4_BIN*/:
case 63/*CS_TYPE_BINARY*/:
case 224/*CS_TYPE_UTF8MB4_UNICODE_CI*/:
//case 8/*CS_TYPE_LATIN1_SWEDISH_CI*/:
//case 47/*CS_TYPE_LATIN1_BIN*/:
case 245/*CS_TYPE_UTF8MB4_CROATIAN_CI*/:
case 246/*CS_TYPE_UTF8MB4_UNICODE_520_CI*/:
case 234/*CS_TYPE_UTF8MB4_CZECH_CI*/:
case 255/*CS_TYPE_UTF8MB4_0900_AI_CI*/:
{
if (i + 2 < dup_len) {
if (str[i] == (char)0xe3 && str[i+1] == (char)0x80 && str[i+2] == (char)0x80) {