diff --git a/.github/workflows/upgrade-test.yml b/.github/workflows/upgrade-test.yml index c7a8ac978e..33a8958a41 100644 --- a/.github/workflows/upgrade-test.yml +++ b/.github/workflows/upgrade-test.yml @@ -121,7 +121,7 @@ jobs: done - name: Upload Logs - if: always() && steps.test-file-rename.outcome == 'success' + if: always() && steps.upgrade-and-test.outcome != 'success' uses: actions/upload-artifact@v4 with: name: upgrade-logs-${{ matrix.upgrade-path.title }} diff --git a/contrib/babelfishpg_common/sql/binary.sql b/contrib/babelfishpg_common/sql/binary.sql index 98e0b425e4..0ddd5cbc4b 100644 --- a/contrib/babelfishpg_common/sql/binary.sql +++ b/contrib/babelfishpg_common/sql/binary.sql @@ -46,6 +46,11 @@ CREATE TYPE sys.BBF_BINARY ( COLLATABLE = false ); +CREATE OR REPLACE FUNCTION sys.varbinarybinary (sys.BBF_VARBINARY, integer, boolean) +RETURNS sys.BBF_BINARY +AS 'babelfishpg_common', 'binary' +LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + CREATE CAST (sys.BBF_BINARY AS sys.BBF_VARBINARY) WITHOUT FUNCTION AS IMPLICIT; diff --git a/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.6.0--3.0.0.sql b/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.6.0--3.0.0.sql new file mode 100644 index 0000000000..cf9363ee76 --- /dev/null +++ b/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.6.0--3.0.0.sql @@ -0,0 +1,16 @@ +-- complain if script is sourced in psql, rather than via ALTER EXTENSION +\echo Use "ALTER EXTENSION ""babelfishpg_common"" UPDATE TO '3.0.0'" to load this file. \quit + +SELECT set_config('search_path', 'sys, '||current_setting('search_path'), false); + +/* This helper function would only be useful and strictly be used during 1.x->2.3 and 2.3->3.0 upgrade. */ +CREATE OR REPLACE FUNCTION sys.babelfish_update_server_collation_name() RETURNS VOID +LANGUAGE C +AS 'babelfishpg_common', 'babelfish_update_server_collation_name'; + +SELECT sys.babelfish_update_server_collation_name(); + +DROP FUNCTION sys.babelfish_update_server_collation_name(); + +-- Reset search_path to not affect any subsequent scripts +SELECT set_config('search_path', trim(leading 'sys, ' from current_setting('search_path')), false); diff --git a/contrib/babelfishpg_tsql/src/pltsql_coerce.c b/contrib/babelfishpg_tsql/src/pltsql_coerce.c index dc1dda13f8..fcf9c9ec37 100644 --- a/contrib/babelfishpg_tsql/src/pltsql_coerce.c +++ b/contrib/babelfishpg_tsql/src/pltsql_coerce.c @@ -60,6 +60,8 @@ extern PGDLLIMPORT select_common_typmod_hook_type select_common_typmod_hook; extern PGDLLIMPORT handle_constant_literals_hook_type handle_constant_literals_hook; extern PGDLLIMPORT set_common_typmod_case_expr_hook_type set_common_typmod_case_expr_hook; +extern bool babelfish_dump_restore; + PG_FUNCTION_INFO_V1(init_tsql_coerce_hash_tab); PG_FUNCTION_INFO_V1(init_tsql_datatype_precedence_hash_tab); PG_FUNCTION_INFO_V1(get_immediate_base_type_of_UDT); @@ -126,7 +128,7 @@ tsql_cast_raw_info_t tsql_cast_raw_infos[] = {PG_CAST_ENTRY, "sys", "bbf_varbinary", "pg_catalog", "int4", NULL, 'i', 'f'}, {PG_CAST_ENTRY, "sys", "bbf_varbinary", "pg_catalog", "int2", NULL, 'i', 'f'}, {TSQL_CAST_ENTRY, "sys", "bbf_varbinary", "sys", "rowversion", "varbinaryrowversion", 'i', 'f'}, - {TSQL_CAST_WITHOUT_FUNC_ENTRY, "sys", "bbf_varbinary", "sys", "bbf_binary", NULL, 'i', 'b'}, + {TSQL_CAST_ENTRY, "sys", "bbf_varbinary", "sys", "bbf_binary", "varbinarybinary", 'i', 'f'}, /* binary {only allow to cast to integral data type) */ {PG_CAST_ENTRY, "sys", "bbf_binary", "pg_catalog", "int8", NULL, 'i', 'f'}, {PG_CAST_ENTRY, "sys", "bbf_binary", "pg_catalog", "int4", NULL, 'i', 'f'}, @@ -671,9 +673,26 @@ init_tsql_coerce_hash_tab(PG_FUNCTION_ARGS) if (!OidIsValid(entry->castfunc)) { + /* + * varbinary to binary implicit type cast without function should be allowed during MVU + * since the cast function might not exists when source version is before 14_11 and 15_6 + */ + if (babelfish_dump_restore && ((*common_utility_plugin_ptr->is_tsql_varbinary_datatype) (castsource) + && (*common_utility_plugin_ptr->is_tsql_binary_datatype) (casttarget))) + { + entry->castfunc = 0; + entry->castcontext = COERCION_CODE_IMPLICIT; + entry->castmethod = COERCION_METHOD_BINARY; + value = hash_search(ht_tsql_cast_info, key, HASH_ENTER, NULL); + *(tsql_cast_info_entry_t *) value = *entry; + continue; + } /* function is not loaded. wait for next scan */ - inited_ht_tsql_cast_info = false; - continue; + else + { + inited_ht_tsql_cast_info = false; + continue; + } } } break; diff --git a/contrib/babelfishpg_tsql/src/pltsql_utils.c b/contrib/babelfishpg_tsql/src/pltsql_utils.c index 04e22445f8..6ded61b562 100644 --- a/contrib/babelfishpg_tsql/src/pltsql_utils.c +++ b/contrib/babelfishpg_tsql/src/pltsql_utils.c @@ -39,7 +39,7 @@ bool is_tsql_varchar_or_char_datatype(Oid oid); /* sys.char / sys.varchar */ bool is_tsql_nchar_or_nvarchar_datatype(Oid oid); /* sys.nchar / sys.nvarchar */ bool is_tsql_binary_or_varbinary_datatype(Oid oid); /* sys.binary / sys.varbinary */ bool is_tsql_text_ntext_or_image_datatype(Oid oid); - +bool is_tsql_binary_or_varbinary_datatype(Oid oid); bool pltsql_createFunction(ParseState *pstate, PlannedStmt *pstmt, const char *queryString, ProcessUtilityContext context, @@ -1106,6 +1106,12 @@ is_tsql_text_ntext_or_image_datatype(Oid oid) (*common_utility_plugin_ptr->is_tsql_image_datatype) (oid); } +bool is_tsql_binary_or_varbinary_datatype(Oid oid) +{ + return (*common_utility_plugin_ptr->is_tsql_sys_binary_datatype) (oid) || + (*common_utility_plugin_ptr->is_tsql_sys_varbinary_datatype) (oid); +} + /* * Try to acquire a lock with no wait */ diff --git a/contrib/babelfishpg_tsql/src/tsqlIface.cpp b/contrib/babelfishpg_tsql/src/tsqlIface.cpp index 2a39a1f8b9..14c55586a9 100644 --- a/contrib/babelfishpg_tsql/src/tsqlIface.cpp +++ b/contrib/babelfishpg_tsql/src/tsqlIface.cpp @@ -91,6 +91,7 @@ extern "C" extern PLtsql_type *parse_datatype(const char *string, int location); extern bool is_tsql_text_ntext_or_image_datatype(Oid oid); + extern bool is_tsql_binary_or_varbinary_datatype(Oid oid); extern int CurrentLineNumber; @@ -4360,6 +4361,14 @@ makeDeclareStmt(TSqlParser::Declare_statementContext *ctx) const char *name = downcase_truncate_identifier(nameStr.c_str(), nameStr.length(), true); check_dup_declare(name); PLtsql_type *type = parse_datatype(typeStr.c_str(), 0); + + /* (N)(VAR)CHAR and BINARY datatype length is treated as 1 when nothing is provided */ + if (type->atttypmod == -1 && (is_tsql_any_char_datatype(type->typoid) + || is_tsql_binary_or_varbinary_datatype(type->typoid))) + { + std::string newTypeStr = typeStr + "(1)"; + type = parse_datatype(newTypeStr.c_str(), 0); + } PLtsql_variable *var = pltsql_build_variable(name, 0, type, true); @@ -4386,7 +4395,19 @@ makeDeclareStmt(TSqlParser::Declare_statementContext *ctx) { std::string typeStr = ::getFullText(local->data_type()); PLtsql_type *type = parse_datatype(typeStr.c_str(), 0); // FIXME: the second arg should be 'location' +<<<<<<< HEAD if (is_tsql_text_ntext_or_image_datatype(type->typoid)) +======= + + /* (N)(VAR)CHAR and BINARY datatype length is treated as 1 when nothing is provided */ + if (type->atttypmod == -1 && (is_tsql_any_char_datatype(type->typoid) + || is_tsql_binary_or_varbinary_datatype(type->typoid))) + { + std::string newTypeStr = typeStr + "(1)"; + type = parse_datatype(newTypeStr.c_str(), 0); + } + else if (is_tsql_text_ntext_or_image_datatype(type->typoid)) +>>>>>>> 8c3b3865 (Fix typmod for sys.binary datatype (#2037)) { throw PGErrorWrapperException(ERROR, ERRCODE_DATATYPE_MISMATCH, "The text, ntext, and image data types are invalid for local variables.", getLineAndPos(local->data_type())); } diff --git a/test/JDBC/expected/BABEL-1566-vu-verify.out b/test/JDBC/expected/BABEL-1566-vu-verify.out index 035f9f727d..311cb53594 100644 --- a/test/JDBC/expected/BABEL-1566-vu-verify.out +++ b/test/JDBC/expected/BABEL-1566-vu-verify.out @@ -281,7 +281,7 @@ select cast(cast(0xfe as binary) as text); go ~~START~~ text -0xfe +0xfe0000000000000000000000000000000000000000000000000000000000 ~~END~~ diff --git a/test/JDBC/expected/BABEL-1566.out b/test/JDBC/expected/BABEL-1566.out index c61c0da56f..2a08c99065 100644 --- a/test/JDBC/expected/BABEL-1566.out +++ b/test/JDBC/expected/BABEL-1566.out @@ -344,7 +344,7 @@ select cast(cast(0xfe as binary) as text); go ~~START~~ text -0xfe +0xfe0000000000000000000000000000000000000000000000000000000000 ~~END~~ diff --git a/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-prepare.out b/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-prepare.out new file mode 100644 index 0000000000..90e274de21 --- /dev/null +++ b/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-prepare.out @@ -0,0 +1,43 @@ +-- function +CREATE FUNCTION babel_3166_func(@a numeric, @b varchar, @c varchar(max), @d varchar(8), @e binary(6)) +RETURNS varbinary(8) AS BEGIN RETURN @e END; +go + +-- Look at the probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_func'; +go +~~START~~ +varchar#!#text +babel_3166_func#!#{"version_num": "1", "typmod_array": ["1179652", "-1", "-8000", "8", "6", "8"], "original_probin": ""} +~~END~~ + + +SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); +go +~~START~~ +varbinary +12BCFE +~~END~~ + + +-- procedure +CREATE PROCEDURE babel_3166_proc @a numeric, @b varchar, @c varchar(max), @d varchar(8), @e binary(6) +AS SELECT @e; +go + +-- Look at the probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_proc'; +go +~~START~~ +varchar#!#text +babel_3166_proc#!#{"version_num": "1", "typmod_array": ["1179652", "-1", "-8000", "8", "6"], "original_probin": ""} +~~END~~ + + +EXEC babel_3166_proc 1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe; +go +~~START~~ +binary +12BCFE000000 +~~END~~ + diff --git a/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-verify.out b/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-verify.out new file mode 100644 index 0000000000..caea907f24 --- /dev/null +++ b/test/JDBC/expected/BABEL-3166-before-14_11-or-15_6-vu-verify.out @@ -0,0 +1,38 @@ +-- Look at function's probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_func'; +go +~~START~~ +varchar#!#text +babel_3166_func#!#{"version_num": "1", "typmod_array": ["1179652", "-1", "-8000", "8", "6", "8"], "original_probin": ""} +~~END~~ + + +SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); +go +~~START~~ +varbinary +12BCFE000000 +~~END~~ + + + +DROP FUNCTION babel_3166_func; +-- Look at procedures's probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_proc'; +go +~~START~~ +varchar#!#text +babel_3166_proc#!#{"version_num": "1", "typmod_array": ["1179652", "-1", "-8000", "8", "6"], "original_probin": ""} +~~END~~ + + +EXEC babel_3166_proc 1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe; +go +~~START~~ +binary +12BCFE000000 +~~END~~ + + +DROP PROCEDURE babel_3166_proc; +go diff --git a/test/JDBC/expected/BABEL-3166-vu-prepare.out b/test/JDBC/expected/BABEL-3166-vu-prepare.out index e04a7fd77e..1bd1255eab 100644 --- a/test/JDBC/expected/BABEL-3166-vu-prepare.out +++ b/test/JDBC/expected/BABEL-3166-vu-prepare.out @@ -22,7 +22,7 @@ SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); go ~~START~~ varbinary -12BCFE +12BCFE000000 ~~END~~ diff --git a/test/JDBC/expected/BABEL-3166-vu-verify.out b/test/JDBC/expected/BABEL-3166-vu-verify.out index a97752db88..f75d1d9b17 100644 --- a/test/JDBC/expected/BABEL-3166-vu-verify.out +++ b/test/JDBC/expected/BABEL-3166-vu-verify.out @@ -14,7 +14,7 @@ SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); go ~~START~~ varbinary -12BCFE +12BCFE000000 ~~END~~ diff --git a/test/JDBC/expected/BABEL_1940.out b/test/JDBC/expected/BABEL_1940.out index fb40052e3b..51adb0d80a 100644 --- a/test/JDBC/expected/BABEL_1940.out +++ b/test/JDBC/expected/BABEL_1940.out @@ -276,7 +276,7 @@ SELECT CAST(CAST(0x61 AS BINARY(3)) AS VARBINARY(2)) GO ~~START~~ varbinary -61 +6100 ~~END~~ diff --git a/test/JDBC/expected/BABEL_4544.out b/test/JDBC/expected/BABEL_4544.out new file mode 100644 index 0000000000..1f877593c3 --- /dev/null +++ b/test/JDBC/expected/BABEL_4544.out @@ -0,0 +1,280 @@ +SELECT DATALENGTH(CAST(0X61626364 AS BINARY(3))) +GO +~~START~~ +int +3 +~~END~~ + +SELECT DATALENGTH(CAST(0X6162 AS BINARY(3))) +GO +~~START~~ +int +3 +~~END~~ + +SELECT CAST(0x6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 AS BINARY) +GO +~~START~~ +binary +616161616161616161616161616161616161616161616161616161616161 +~~END~~ + +SELECT CAST(0x6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 AS BINARY(51)) +GO +~~START~~ +binary +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x11 AS VARBINARY(5)) AS BINARY(5))), CAST(CAST(0x11 AS VARBINARY(5)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +5#!#1100000000 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS VARBINARY(5)) AS BINARY(5))), CAST(CAST(0x111213141516 AS VARBINARY(5)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +5#!#1112131415 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(5))), CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(5)) +GO +~~START~~ +int#!#varbinary +5#!#1100000000 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(5))), CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(5)) +GO +~~START~~ +int#!#varbinary +5#!#1112131415 +~~END~~ + + +CREATE TABLE babel_4544_t (id BINARY(5)) +GO + +INSERT INTO babel_4544_t VALUES (0x65), (0x656667) +GO +~~ROW COUNT: 2~~ + +INSERT INTO babel_4544_t VALUES (0x6566676869707172) +GO +~~ERROR (Code: 33557097)~~ + +~~ERROR (Message: String or binary data would be truncated. +The statement has been terminated.)~~ + +INSERT INTO babel_4544_t VALUES (CAST(0x6566676869707172 AS VARBINARY(6))) +GO +~~ERROR (Code: 33557097)~~ + +~~ERROR (Message: String or binary data would be truncated. +The statement has been terminated.)~~ + +INSERT INTO babel_4544_t VALUES ('aa') +GO +~~ERROR (Code: 33557097)~~ + +~~ERROR (Message: cannot coerce string literal to binary datatype)~~ + +INSERT INTO babel_4544_t VALUES (CAST('aaaaaa' AS VARBINARY)) +GO +~~ERROR (Code: 33557097)~~ + +~~ERROR (Message: String or binary data would be truncated. +The statement has been terminated.)~~ + +INSERT INTO babel_4544_t VALUES (CAST('aaa' AS VARBINARY)) +GO +~~ROW COUNT: 1~~ + +INSERT INTO babel_4544_t VALUES (CAST(0x65 AS VARBINARY)), (CAST(0x6564 AS VARBINARY(5))), (CAST(0x6566676869707172 AS VARBINARY(4))), (CAST(0x65666768 AS VARBINARY(6))) +GO +~~ROW COUNT: 4~~ + + +SELECT *, DATALENGTH(id) FROM babel_4544_t +GO +~~START~~ +binary#!#int +6500000000#!#5 +6566670000#!#5 +6161610000#!#5 +6500000000#!#5 +6564000000#!#5 +6566676800#!#5 +6566676800#!#5 +~~END~~ + + +DROP TABLE babel_4544_t +GO + +-- default length should be 1 +DECLARE @A VARBINARY = 0x0123456789012345678901234567890123456789 +SELECT @A, DATALENGTH(@A) +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)), CAST(@A as VARBINARY(60)) +GO +~~START~~ +varbinary#!#int +01#!#1 +~~END~~ + +~~START~~ +int#!#binary#!#varbinary +50#!#0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000#!#01 +~~END~~ + + +DECLARE @A BINARY = 0x0123456789012345678901234567890123456789 +SELECT @A, DATALENGTH(@A) +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +binary#!#int +01#!#1 +~~END~~ + +~~START~~ +int#!#binary +50#!#0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +DECLARE @A BINARY = 0x012345678901234567890123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +int#!#binary +1#!#01 +~~END~~ + +~~START~~ +int#!#binary +50#!#0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +DECLARE @A BINARY = 0x01234567890123456789012345678901234567890123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +int#!#binary +1#!#01 +~~END~~ + +~~START~~ +int#!#binary +50#!#0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +DECLARE @A BINARY(10) = 0x012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +int#!#binary +10#!#01234567890123456789 +~~END~~ + +~~START~~ +int#!#binary +50#!#0123456789012345678900000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +DECLARE @A BINARY(10) = 0x01234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +int#!#binary +10#!#01234567890123456789 +~~END~~ + +~~START~~ +int#!#binary +50#!#0123456789012345678900000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +DECLARE @A BINARY(10) = 0x0123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO +~~START~~ +int#!#binary +10#!#01234567890123456789 +~~END~~ + +~~START~~ +int#!#binary +50#!#0123456789012345678900000000000000000000000000000000000000000000000000000000000000000000000000000000 +~~END~~ + + +SELECT DATALENGTH(CAST(CAST(0x11 AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(0x11 AS VARBINARY(MAX)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +5#!#1100000000 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(0x111213141516 AS VARBINARY(MAX)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +5#!#1112131415 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(MAX)) +GO +~~START~~ +int#!#varbinary +5#!#1100000000 +~~END~~ + +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(MAX)) +GO +~~START~~ +int#!#varbinary +5#!#1112131415 +~~END~~ + + +SELECT DATALENGTH(CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +#!# +~~END~~ + +SELECT DATALENGTH(CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5)) +GO +~~START~~ +int#!#binary +#!# +~~END~~ + +SELECT DATALENGTH(CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX)) +GO +~~START~~ +int#!#varbinary +#!# +~~END~~ + +SELECT DATALENGTH(CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX)) +GO +~~START~~ +int#!#varbinary +#!# +~~END~~ + diff --git a/test/JDBC/expected/TestBinary-vu-prepare.out b/test/JDBC/expected/TestBinary-vu-prepare.out index 35de0cfd73..031ec16154 100644 --- a/test/JDBC/expected/TestBinary-vu-prepare.out +++ b/test/JDBC/expected/TestBinary-vu-prepare.out @@ -25,7 +25,7 @@ INSERT INTO testBINARY_dt4(a, b) values (1234, 12345); prepst#!# INSERT INTO testBINARY_dt4(a, b) values(?, ?) #!#binary|-|a|-|1234#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ -prepst#!#exec#!#binary|-|a|-|123456789#!#varbinary|-|b|-|12345 +prepst#!#exec#!#binary|-|a|-|12345678#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ prepst#!#exec#!#binary|-|a|-|1234#!#varbinary|-|b|-|123456789 diff --git a/test/JDBC/expected/TestBinary.out b/test/JDBC/expected/TestBinary.out index 85a5ac131f..562c8b0cea 100644 --- a/test/JDBC/expected/TestBinary.out +++ b/test/JDBC/expected/TestBinary.out @@ -49,7 +49,7 @@ INSERT INTO BINARY_dt(a, b) values (1234, 12345); prepst#!# INSERT INTO BINARY_dt(a, b) values(?, ?) #!#binary|-|a|-|1234#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ -prepst#!#exec#!#binary|-|a|-|123456789#!#varbinary|-|b|-|12345 +prepst#!#exec#!#binary|-|a|-|12345678#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ prepst#!#exec#!#binary|-|a|-|1234#!#varbinary|-|b|-|123456789 diff --git a/test/JDBC/expected/babel_datatype.out b/test/JDBC/expected/babel_datatype.out index cce059dcac..d571a2b4c4 100644 --- a/test/JDBC/expected/babel_datatype.out +++ b/test/JDBC/expected/babel_datatype.out @@ -2279,14 +2279,16 @@ GO insert into testing6 values (cast('ab' as varbinary)); GO -~~ROW COUNT: 1~~ +~~ERROR (Code: 33557097)~~ + +~~ERROR (Message: String or binary data would be truncated. +The statement has been terminated.)~~ select * from testing6; GO ~~START~~ binary 61 -61 ~~END~~ diff --git a/test/JDBC/expected/binary-index-vu-verify.out b/test/JDBC/expected/binary-index-vu-verify.out index a25e9eb03d..c3480843b2 100644 --- a/test/JDBC/expected/binary-index-vu-verify.out +++ b/test/JDBC/expected/binary-index-vu-verify.out @@ -62,7 +62,7 @@ Query Text: EXEC babel_3939_vu_prepare_p1 Index Cond: ((a)::bbf_binary = '0xbaadf00d'::bbf_varbinary) Query Text: select * from tab_binary where a = cast (0xBAADF00D as binary ) -> Index Scan using ix_tab_binary_atab_binary30474ea5eaee4ec0e0a5a86377abb1ac on tab_binary - Index Cond: ((a)::bbf_binary = '0xbaadf00d'::bbf_binary) + Index Cond: ((a)::bbf_binary = '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_binary) Query Text: select * from tab_binary where a = 0xBAADF00D -> Index Scan using ix_tab_binary_atab_binary30474ea5eaee4ec0e0a5a86377abb1ac on tab_binary Index Cond: ((a)::bbf_binary = '0xbaadf00d'::bbf_varbinary) @@ -95,19 +95,19 @@ Query Text: EXEC babel_3939_vu_prepare_p2 Index Cond: ((a)::bbf_varbinary = '0xbaadf00d'::bbf_varbinary) Query Text: select * from tab_varbinary where a = cast(0xBAADF00D as binary ) -> Index Scan using ix_tab_binary_btab_varbinary785ec2330c9a18520469e01cd1dc6f53 on tab_varbinary - Index Cond: ((a)::bbf_varbinary = '0xbaadf00d'::bbf_binary) + Index Cond: ((a)::bbf_varbinary = '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_binary) Query Text: select * from tab_varbinary where a > cast(0xBAADF00D as binary ) -> Seq Scan on tab_varbinary - Filter: ((a)::bbf_varbinary > '0xbaadf00d'::bbf_varbinary) + Filter: ((a)::bbf_varbinary > '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_varbinary) Query Text: select * from tab_varbinary where a < cast(0xBAADF00D as binary ) -> Seq Scan on tab_varbinary - Filter: ((a)::bbf_varbinary < '0xbaadf00d'::bbf_varbinary) + Filter: ((a)::bbf_varbinary < '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_varbinary) Query Text: select * from tab_varbinary where a >= cast(0xBAADF00D as binary ) -> Seq Scan on tab_varbinary - Filter: ((a)::bbf_varbinary >= '0xbaadf00d'::bbf_varbinary) + Filter: ((a)::bbf_varbinary >= '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_varbinary) Query Text: select * from tab_varbinary where a <= cast(0xBAADF00D as binary ) -> Seq Scan on tab_varbinary - Filter: ((a)::bbf_varbinary <= '0xbaadf00d'::bbf_varbinary) + Filter: ((a)::bbf_varbinary <= '0xbaadf00d0000000000000000000000000000000000000000000000000000'::bbf_varbinary) ~~END~~ diff --git a/test/JDBC/expected/openquery-vu-verify.out b/test/JDBC/expected/openquery-vu-verify.out index 2baa9cb66e..04a6508829 100644 --- a/test/JDBC/expected/openquery-vu-verify.out +++ b/test/JDBC/expected/openquery-vu-verify.out @@ -2093,7 +2093,7 @@ INSERT INTO testBINARY_dt4(a, b) values (1234, 12345); prepst#!# INSERT INTO testBINARY_dt4(a, b) values(?, ?) #!#binary|-|a|-|1234#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ -prepst#!#exec#!#binary|-|a|-|123456789#!#varbinary|-|b|-|12345 +prepst#!#exec#!#binary|-|a|-|12345678#!#varbinary|-|b|-|12345 ~~ROW COUNT: 1~~ prepst#!#exec#!#binary|-|a|-|1234#!#varbinary|-|b|-|123456789 diff --git a/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-prepare.sql b/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-prepare.sql new file mode 100644 index 0000000000..16b17cb346 --- /dev/null +++ b/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-prepare.sql @@ -0,0 +1,23 @@ +-- function +CREATE FUNCTION babel_3166_func(@a numeric, @b varchar, @c varchar(max), @d varchar(8), @e binary(6)) +RETURNS varbinary(8) AS BEGIN RETURN @e END; +go + +-- Look at the probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_func'; +go + +SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); +go + +-- procedure +CREATE PROCEDURE babel_3166_proc @a numeric, @b varchar, @c varchar(max), @d varchar(8), @e binary(6) +AS SELECT @e; +go + +-- Look at the probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_proc'; +go + +EXEC babel_3166_proc 1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe; +go \ No newline at end of file diff --git a/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-verify.sql b/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-verify.sql new file mode 100644 index 0000000000..96d1019ab9 --- /dev/null +++ b/test/JDBC/input/BABEL-3166-before-14_11-or-15_6-vu-verify.sql @@ -0,0 +1,18 @@ +-- Look at function's probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_func'; +go + +SELECT babel_3166_func(1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe); +go + +DROP FUNCTION babel_3166_func; + +-- Look at procedures's probin for typmod information +SELECT proname, probin FROM pg_proc WHERE proname = 'babel_3166_proc'; +go + +EXEC babel_3166_proc 1.2, 'abc', 'abcd', 'abcdefgh', 0x12bcfe; +go + +DROP PROCEDURE babel_3166_proc; +go diff --git a/test/JDBC/input/BABEL_4544.sql b/test/JDBC/input/BABEL_4544.sql new file mode 100644 index 0000000000..3c8f4783c4 --- /dev/null +++ b/test/JDBC/input/BABEL_4544.sql @@ -0,0 +1,94 @@ +SELECT DATALENGTH(CAST(0X61626364 AS BINARY(3))) +GO +SELECT DATALENGTH(CAST(0X6162 AS BINARY(3))) +GO +SELECT CAST(0x6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 AS BINARY) +GO +SELECT CAST(0x6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 AS BINARY(51)) +GO +SELECT DATALENGTH(CAST(CAST(0x11 AS VARBINARY(5)) AS BINARY(5))), CAST(CAST(0x11 AS VARBINARY(5)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS VARBINARY(5)) AS BINARY(5))), CAST(CAST(0x111213141516 AS VARBINARY(5)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(5))), CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(5))), CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(5)) +GO + +CREATE TABLE babel_4544_t (id BINARY(5)) +GO + +INSERT INTO babel_4544_t VALUES (0x65), (0x656667) +GO +INSERT INTO babel_4544_t VALUES (0x6566676869707172) +GO +INSERT INTO babel_4544_t VALUES (CAST(0x6566676869707172 AS VARBINARY(6))) +GO +INSERT INTO babel_4544_t VALUES ('aa') +GO +INSERT INTO babel_4544_t VALUES (CAST('aaaaaa' AS VARBINARY)) +GO +INSERT INTO babel_4544_t VALUES (CAST('aaa' AS VARBINARY)) +GO +INSERT INTO babel_4544_t VALUES (CAST(0x65 AS VARBINARY)), (CAST(0x6564 AS VARBINARY(5))), (CAST(0x6566676869707172 AS VARBINARY(4))), (CAST(0x65666768 AS VARBINARY(6))) +GO + +SELECT *, DATALENGTH(id) FROM babel_4544_t +GO + +DROP TABLE babel_4544_t +GO + +-- default length should be 1 +DECLARE @A VARBINARY = 0x0123456789012345678901234567890123456789 +SELECT @A, DATALENGTH(@A) +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)), CAST(@A as VARBINARY(60)) +GO + +DECLARE @A BINARY = 0x0123456789012345678901234567890123456789 +SELECT @A, DATALENGTH(@A) +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +DECLARE @A BINARY = 0x012345678901234567890123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +DECLARE @A BINARY = 0x01234567890123456789012345678901234567890123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +DECLARE @A BINARY(10) = 0x012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +DECLARE @A BINARY(10) = 0x01234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +DECLARE @A BINARY(10) = 0x0123456789012345678901234567890123456789 +SELECT DATALENGTH(@A), @A +SELECT DATALENGTH(CAST(@A as BINARY(50))), CAST(@A as BINARY(50)) +GO + +SELECT DATALENGTH(CAST(CAST(0x11 AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(0x11 AS VARBINARY(MAX)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(0x111213141516 AS VARBINARY(MAX)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(0x11 AS BINARY(5)) AS VARBINARY(MAX)) +GO +SELECT DATALENGTH(CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(0x111213141516 AS BINARY(5)) AS VARBINARY(MAX)) +GO + +SELECT DATALENGTH(CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5))), CAST(CAST(NULL AS VARBINARY(MAX)) AS BINARY(5)) +GO +SELECT DATALENGTH(CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX)) +GO +SELECT DATALENGTH(CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX))), CAST(CAST(NULL AS BINARY(5)) AS VARBINARY(MAX)) +GO diff --git a/test/JDBC/input/datatypes/TestBinary-vu-prepare.txt b/test/JDBC/input/datatypes/TestBinary-vu-prepare.txt index e020a18017..29cad2a451 100644 --- a/test/JDBC/input/datatypes/TestBinary-vu-prepare.txt +++ b/test/JDBC/input/datatypes/TestBinary-vu-prepare.txt @@ -13,5 +13,5 @@ insert into testBINARY_dt3 (a,b,c,d,e,f,g,h,i) values (NULL,1,2,3,4,5,6,7,8); CREATE TABLE testBINARY_dt4(a BINARY(8), b VARBINARY(10)); INSERT INTO testBINARY_dt4(a, b) values (1234, 12345); prepst#!# INSERT INTO testBINARY_dt4(a, b) values(@a, @b) #!#binary|-|a|-|1234#!#varbinary|-|b|-|12345 -prepst#!#exec#!#binary|-|a|-|123456789#!#varbinary|-|b|-|12345 +prepst#!#exec#!#binary|-|a|-|12345678#!#varbinary|-|b|-|12345 prepst#!#exec#!#binary|-|a|-|1234#!#varbinary|-|b|-|123456789 \ No newline at end of file diff --git a/test/JDBC/input/datatypes/TestBinary.txt b/test/JDBC/input/datatypes/TestBinary.txt index 0d2ffb1207..e4f4c5a539 100644 --- a/test/JDBC/input/datatypes/TestBinary.txt +++ b/test/JDBC/input/datatypes/TestBinary.txt @@ -21,7 +21,7 @@ drop table BINARY_dt; CREATE TABLE BINARY_dt(a BINARY(8), b VARBINARY(10)); INSERT INTO BINARY_dt(a, b) values (1234, 12345); prepst#!# INSERT INTO BINARY_dt(a, b) values(@a, @b) #!#binary|-|a|-|1234#!#varbinary|-|b|-|12345 -prepst#!#exec#!#binary|-|a|-|123456789#!#varbinary|-|b|-|12345 +prepst#!#exec#!#binary|-|a|-|12345678#!#varbinary|-|b|-|12345 prepst#!#exec#!#binary|-|a|-|1234#!#varbinary|-|b|-|123456789 SELECT * FROM BINARY_dt; DROP TABLE BINARY_dt; diff --git a/test/JDBC/jdbc_schedule b/test/JDBC/jdbc_schedule index 9eec3f2b56..69fc60fe19 100644 --- a/test/JDBC/jdbc_schedule +++ b/test/JDBC/jdbc_schedule @@ -127,6 +127,8 @@ ignore#!#orderby-before-15_3-vu-verify ignore#!#orderby-before-15_3-vu-cleanup ignore#!#babel_function_string-before-15-5-or-14-10-vu-prepare ignore#!#babel_function_string-before-15-5-or-14-10-vu-verify +ignore#!#BABEL-3166-before-14_11-or-15_6-vu-prepare +ignore#!#BABEL-3166-before-14_11-or-15_6-vu-verify # These tests are meant for upgrade scenario where source version is 13_X ignore#!#sys_database_principals_dep_for_13_x-vu-cleanup diff --git a/test/JDBC/upgrade/13_4/schedule b/test/JDBC/upgrade/13_4/schedule index 420330df48..cfd0620577 100644 --- a/test/JDBC/upgrade/13_4/schedule +++ b/test/JDBC/upgrade/13_4/schedule @@ -42,7 +42,7 @@ BABEL-3000-dep BABEL-3010-before-14_6 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3213 BABEL-3215 diff --git a/test/JDBC/upgrade/13_5/schedule b/test/JDBC/upgrade/13_5/schedule index 652e3bdcb0..2db8235d26 100644 --- a/test/JDBC/upgrade/13_5/schedule +++ b/test/JDBC/upgrade/13_5/schedule @@ -44,7 +44,7 @@ BABEL-3000-dep BABEL-3010-before-14_6 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/13_6/schedule b/test/JDBC/upgrade/13_6/schedule index 5a301e1e6e..db877227b2 100644 --- a/test/JDBC/upgrade/13_6/schedule +++ b/test/JDBC/upgrade/13_6/schedule @@ -57,7 +57,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/13_7/schedule b/test/JDBC/upgrade/13_7/schedule index e7a95769a6..5cb9365e3d 100644 --- a/test/JDBC/upgrade/13_7/schedule +++ b/test/JDBC/upgrade/13_7/schedule @@ -55,7 +55,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/13_8/schedule b/test/JDBC/upgrade/13_8/schedule index e7a95769a6..5cb9365e3d 100644 --- a/test/JDBC/upgrade/13_8/schedule +++ b/test/JDBC/upgrade/13_8/schedule @@ -55,7 +55,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/13_9/schedule b/test/JDBC/upgrade/13_9/schedule index b64adcfc81..70e7207c87 100644 --- a/test/JDBC/upgrade/13_9/schedule +++ b/test/JDBC/upgrade/13_9/schedule @@ -55,7 +55,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_10/schedule b/test/JDBC/upgrade/14_10/schedule index 50588fd324..cee63fcf85 100644 --- a/test/JDBC/upgrade/14_10/schedule +++ b/test/JDBC/upgrade/14_10/schedule @@ -46,7 +46,7 @@ sys-suser_sid sys-trigger_events BABEL-2688 BABEL-328 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3221-before-16_4-or-15_9 BABEL-3204 diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index a7fd4dcf6c..f5d1efc2c6 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -57,7 +57,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147-before-14_5 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_5/schedule b/test/JDBC/upgrade/14_5/schedule index 45c8398497..dcf8882867 100644 --- a/test/JDBC/upgrade/14_5/schedule +++ b/test/JDBC/upgrade/14_5/schedule @@ -55,7 +55,7 @@ BABEL-3116 BABEL-3118 BABEL-3121 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_6/schedule b/test/JDBC/upgrade/14_6/schedule index ec01ce9c29..051f499e7b 100644 --- a/test/JDBC/upgrade/14_6/schedule +++ b/test/JDBC/upgrade/14_6/schedule @@ -61,7 +61,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_7/schedule b/test/JDBC/upgrade/14_7/schedule index 12b249d4f8..d783d6b439 100644 --- a/test/JDBC/upgrade/14_7/schedule +++ b/test/JDBC/upgrade/14_7/schedule @@ -63,7 +63,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_8/schedule b/test/JDBC/upgrade/14_8/schedule index 9df830635c..14abe76e18 100644 --- a/test/JDBC/upgrade/14_8/schedule +++ b/test/JDBC/upgrade/14_8/schedule @@ -63,7 +63,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/14_9/schedule b/test/JDBC/upgrade/14_9/schedule index bb17d796d5..4d217f5e13 100644 --- a/test/JDBC/upgrade/14_9/schedule +++ b/test/JDBC/upgrade/14_9/schedule @@ -46,7 +46,7 @@ sys-suser_sid sys-trigger_events BABEL-2688 BABEL-328 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3221-before-16_4-or-15_9 BABEL-3204 diff --git a/test/JDBC/upgrade/15_1/schedule b/test/JDBC/upgrade/15_1/schedule index 4e885c81e8..29332e0753 100644 --- a/test/JDBC/upgrade/15_1/schedule +++ b/test/JDBC/upgrade/15_1/schedule @@ -61,7 +61,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/15_2/schedule b/test/JDBC/upgrade/15_2/schedule index b8698b6b20..af4b6961e5 100644 --- a/test/JDBC/upgrade/15_2/schedule +++ b/test/JDBC/upgrade/15_2/schedule @@ -63,7 +63,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/15_3/schedule b/test/JDBC/upgrade/15_3/schedule index e759477897..ec41308f25 100644 --- a/test/JDBC/upgrade/15_3/schedule +++ b/test/JDBC/upgrade/15_3/schedule @@ -65,7 +65,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/JDBC/upgrade/15_4/schedule b/test/JDBC/upgrade/15_4/schedule index 3a0a24445f..8e833ac993 100644 --- a/test/JDBC/upgrade/15_4/schedule +++ b/test/JDBC/upgrade/15_4/schedule @@ -65,7 +65,7 @@ BABEL-3118 BABEL-3121 BABEL-3144 BABEL-3147 -BABEL-3166 +BABEL-3166-before-14_11-or-15_6 BABEL-3192 BABEL-3204 BABEL-3213 diff --git a/test/python/expected/sql_validation_framework/expected_drop.out b/test/python/expected/sql_validation_framework/expected_drop.out index 727b7eec78..7ca80e9ec4 100644 --- a/test/python/expected/sql_validation_framework/expected_drop.out +++ b/test/python/expected/sql_validation_framework/expected_drop.out @@ -10,7 +10,14 @@ Unexpected drop found for function sys.babelfish_update_server_collation_name in Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.3.0--3.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.4.0--3.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.5.0--3.0.0.sql -Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.7.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.6.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.0.0--2.1.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.3.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.4.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.5.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.6.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.7.0--3.0.0.sql +Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--2.8.0--3.0.0.sql Unexpected drop found for function sys.babelfishpg_common_get_babel_server_collation_oid in file babelfishpg_common--2.2.0--2.3.0.sql Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.2.0--2.3.0.sql Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.3.0--3.0.0.sql