From 88a8e738d9fc27494dd20499c9aa9d54574ae5a8 Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni Date: Sat, 20 Jun 2026 14:27:01 +0000 Subject: [PATCH 1/5] Enable index scans for OID cast patterns in system views Signed-off-by: Rucha Kulkarni --- contrib/babelfishpg_tsql/src/hooks.c | 124 ++++++++ contrib/babelfishpg_tsql/src/pltsql.h | 17 + test/JDBC/expected/BABEL-6814-vu-cleanup.out | 45 +++ test/JDBC/expected/BABEL-6814-vu-prepare.out | 53 ++++ test/JDBC/expected/BABEL-6814-vu-verify.out | 281 +++++++++++++++++ .../parallel_query/BABEL-6814-vu-verify.out | 298 ++++++++++++++++++ test/JDBC/input/BABEL-6814-vu-cleanup.sql | 45 +++ test/JDBC/input/BABEL-6814-vu-prepare.sql | 53 ++++ test/JDBC/input/BABEL-6814-vu-verify.mix | 143 +++++++++ test/JDBC/upgrade/13_4/schedule | 1 + test/JDBC/upgrade/13_5/schedule | 1 + test/JDBC/upgrade/13_6/schedule | 1 + test/JDBC/upgrade/13_7/schedule | 1 + test/JDBC/upgrade/13_8/schedule | 1 + test/JDBC/upgrade/13_9/schedule | 1 + test/JDBC/upgrade/14_10/schedule | 1 + test/JDBC/upgrade/14_11/schedule | 1 + test/JDBC/upgrade/14_12/schedule | 1 + test/JDBC/upgrade/14_13/schedule | 1 + test/JDBC/upgrade/14_15/schedule | 1 + test/JDBC/upgrade/14_17/schedule | 1 + test/JDBC/upgrade/14_18/schedule | 1 + test/JDBC/upgrade/14_19/schedule | 1 + test/JDBC/upgrade/14_20/schedule | 1 + test/JDBC/upgrade/14_22/schedule | 1 + test/JDBC/upgrade/14_23/schedule | 1 + test/JDBC/upgrade/14_24/schedule | 1 + test/JDBC/upgrade/14_3/schedule | 1 + test/JDBC/upgrade/14_5/schedule | 1 + test/JDBC/upgrade/14_6/schedule | 1 + test/JDBC/upgrade/14_7/schedule | 1 + test/JDBC/upgrade/14_8/schedule | 1 + test/JDBC/upgrade/14_9/schedule | 1 + test/JDBC/upgrade/15_1/schedule | 1 + test/JDBC/upgrade/15_10/schedule | 1 + test/JDBC/upgrade/15_12/schedule | 1 + test/JDBC/upgrade/15_13/schedule | 1 + test/JDBC/upgrade/15_14/schedule | 1 + test/JDBC/upgrade/15_15/schedule | 1 + test/JDBC/upgrade/15_17/schedule | 1 + test/JDBC/upgrade/15_18/schedule | 1 + test/JDBC/upgrade/15_19/schedule | 1 + test/JDBC/upgrade/15_2/schedule | 1 + test/JDBC/upgrade/15_3/schedule | 1 + test/JDBC/upgrade/15_4/schedule | 1 + test/JDBC/upgrade/15_5/schedule | 1 + test/JDBC/upgrade/15_6/schedule | 1 + test/JDBC/upgrade/15_7/schedule | 1 + test/JDBC/upgrade/15_8/schedule | 1 + test/JDBC/upgrade/16_1/schedule | 1 + test/JDBC/upgrade/16_10/schedule | 1 + test/JDBC/upgrade/16_11/schedule | 1 + test/JDBC/upgrade/16_13/schedule | 1 + test/JDBC/upgrade/16_14/schedule | 1 + test/JDBC/upgrade/16_15/schedule | 1 + test/JDBC/upgrade/16_2/schedule | 1 + test/JDBC/upgrade/16_3/schedule | 1 + test/JDBC/upgrade/16_4/schedule | 1 + test/JDBC/upgrade/16_6/schedule | 1 + test/JDBC/upgrade/16_8/schedule | 1 + test/JDBC/upgrade/16_9/schedule | 1 + test/JDBC/upgrade/17_10/schedule | 1 + test/JDBC/upgrade/17_4/schedule | 1 + test/JDBC/upgrade/17_5/schedule | 1 + test/JDBC/upgrade/17_6/schedule | 1 + test/JDBC/upgrade/17_7/schedule | 1 + test/JDBC/upgrade/17_9/schedule | 1 + test/JDBC/upgrade/latest/schedule | 1 + 68 files changed, 1118 insertions(+) create mode 100644 test/JDBC/expected/BABEL-6814-vu-cleanup.out create mode 100644 test/JDBC/expected/BABEL-6814-vu-prepare.out create mode 100644 test/JDBC/expected/BABEL-6814-vu-verify.out create mode 100644 test/JDBC/expected/parallel_query/BABEL-6814-vu-verify.out create mode 100644 test/JDBC/input/BABEL-6814-vu-cleanup.sql create mode 100644 test/JDBC/input/BABEL-6814-vu-prepare.sql create mode 100644 test/JDBC/input/BABEL-6814-vu-verify.mix diff --git a/contrib/babelfishpg_tsql/src/hooks.c b/contrib/babelfishpg_tsql/src/hooks.c index c7a120ceed7..beb9e1a8491 100644 --- a/contrib/babelfishpg_tsql/src/hooks.c +++ b/contrib/babelfishpg_tsql/src/hooks.c @@ -53,7 +53,10 @@ #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/optimizer.h" +#include "optimizer/paths.h" #include "optimizer/planner.h" +#include "optimizer/restrictinfo.h" +#include "access/stratnum.h" #include "parser/analyze.h" #include "parser/parse_clause.h" #include "parser/parse_coerce.h" @@ -395,6 +398,9 @@ ParallelQueryMain_hook_type prev_ParallelQueryMain_hook = NULL; #ifdef USE_LIBXML static openxml_set_namespaces_hook_type prev_openxml_set_namespaces_hook = NULL; #endif +static match_opclause_to_indexcol_hook_type prev_match_opclause_to_indexcol_hook = NULL; +static IndexClause *match_oid_cast_to_indexcol(PlannerInfo *root, RestrictInfo *rinfo, int indexcol, IndexOptInfo *index, Node *cast_arg, Node *val_arg, Oid opfamily); +static IndexClause *bbf_match_opclause_to_indexcol(PlannerInfo *root, RestrictInfo *rinfo, int indexcol, IndexOptInfo *index); /***************************************** * Install / Uninstall @@ -668,6 +674,9 @@ InstallExtendedHooks(void) walk_view_rule_hook = mark_nodes_inside_view; handle_target_view_hook = tsql_handle_target_view_hook; + + prev_match_opclause_to_indexcol_hook = match_opclause_to_indexcol_hook; + match_opclause_to_indexcol_hook = bbf_match_opclause_to_indexcol; } void @@ -765,6 +774,7 @@ UninstallExtendedHooks(void) get_domain_typmodin_hook = NULL; walk_view_rule_hook = NULL; handle_target_view_hook = NULL; + match_opclause_to_indexcol_hook = prev_match_opclause_to_indexcol_hook; } /***************************************** @@ -9289,3 +9299,117 @@ pltsql_post_transform_expr_recurse(ParseState *pstate, Node *expr) return expr; } + +static IndexClause * +match_oid_cast_to_indexcol(PlannerInfo *root, RestrictInfo *rinfo, + int indexcol, IndexOptInfo *index, + Node *cast_arg, Node *val_arg, Oid opfamily) +{ + if (IsA(cast_arg, RelabelType)) + { + RelabelType *relabel = (RelabelType *) cast_arg; + Node *inner_arg = (Node *) relabel->arg; + Oid orig_type = exprType(inner_arg); + + if (orig_type == OIDOID && relabel->resulttype == INT4OID && + match_index_to_operand(inner_arg, indexcol, index)) + { + Oid idx_op; + + if (contain_volatile_functions(val_arg)) + return NULL; + + idx_op = get_opfamily_member(opfamily, orig_type, orig_type, + BTEqualStrategyNumber); + if (OidIsValid(idx_op)) + { + RelabelType *new_val; + OpExpr *new_clause; + RestrictInfo *new_rinfo; + IndexClause *iclause; + OpExpr *clause = (OpExpr *) rinfo->clause; + + new_val = makeRelabelType((Expr *) copyObject(val_arg), + orig_type, -1, InvalidOid, + COERCE_IMPLICIT_CAST); + + new_clause = makeNode(OpExpr); + new_clause->opno = idx_op; + new_clause->opfuncid = get_opcode(idx_op); + new_clause->opresulttype = BOOLOID; + new_clause->opretset = false; + new_clause->opcollid = InvalidOid; + new_clause->inputcollid = clause->inputcollid; + new_clause->args = list_make2(copyObject(inner_arg), new_val); + new_clause->location = clause->location; + + new_rinfo = make_simple_restrictinfo(root, + (Expr *) new_clause); + new_rinfo->security_level = rinfo->security_level; + + iclause = makeNode(IndexClause); + iclause->rinfo = rinfo; + iclause->indexquals = list_make1(new_rinfo); + iclause->lossy = false; + iclause->indexcol = indexcol; + iclause->indexcols = NIL; + return iclause; + } + } + } + return NULL; +} + +/* + * bbf_match_opclause_to_indexcol + * + * Enables index usage for Babelfish equality patterns where an OID column + * is cast to integer, preventing index matching. Handles both operand orders: + * (oid)::integer = value => oid = value::oid + * value = (oid)::integer => oid = value::oid + */ +static IndexClause * +bbf_match_opclause_to_indexcol(PlannerInfo *root, + RestrictInfo *rinfo, + int indexcol, + IndexOptInfo *index) +{ + if (sql_dialect == SQL_DIALECT_TSQL && IsA(rinfo->clause, OpExpr)) + { + OpExpr *clause = (OpExpr *) rinfo->clause; + + if (list_length(clause->args) == 2 && + clause->opno == Int4EqualOperator && + index->opcintype[indexcol] == OIDOID) + { + Node *leftop = (Node *) linitial(clause->args); + Node *rightop = (Node *) lsecond(clause->args); + Oid opfamily = index->opfamily[indexcol]; + IndexClause *iclause; + + /* Try left operand as the cast: (oid)::int4 = value */ + if (!bms_is_member(index->rel->relid, rinfo->right_relids)) + { + iclause = match_oid_cast_to_indexcol(root, rinfo, indexcol, + index, leftop, rightop, + opfamily); + if (iclause) + return iclause; + } + + /* Try right operand as the cast: value = (oid)::int4 */ + if (!bms_is_member(index->rel->relid, rinfo->left_relids)) + { + iclause = match_oid_cast_to_indexcol(root, rinfo, indexcol, + index, rightop, leftop, + opfamily); + if (iclause) + return iclause; + } + } + } + + if (prev_match_opclause_to_indexcol_hook) + return prev_match_opclause_to_indexcol_hook(root, rinfo, indexcol, index); + return NULL; +} diff --git a/contrib/babelfishpg_tsql/src/pltsql.h b/contrib/babelfishpg_tsql/src/pltsql.h index a91cc3a4c16..17ce803891c 100644 --- a/contrib/babelfishpg_tsql/src/pltsql.h +++ b/contrib/babelfishpg_tsql/src/pltsql.h @@ -2519,6 +2519,23 @@ extern bool is_numeric_datatype(Oid typid); */ extern char *tsql_format_type_extended(Oid type_oid, int32 typemod, bits16 flags); +/* + * INSERT EXEC functions (pl_insert_exec.c) + */ +typedef struct InsertExecContext +{ + Oid temp_table_oid; /* OID of temp table for buffering */ + Oid target_rel_oid; /* OID of target table - lock held to detect schema changes */ + bool is_target_relation_modified; /* Set by bbf_object_access_hook when target table is altered */ +} InsertExecContext; + +extern InsertExecContext insert_exec_ctx; + +extern Oid create_insert_exec_temp_table(const char *target_table, const char *column_list, const char *schema_name_in); +extern void flush_insert_exec_temp_table(PLtsql_execstate *estate, + const char *column_list); +extern DestReceiver *CreateInsertExecDestReceiver(void); + #define NUM_DB_OBJECTS 11 extern const char *shipped_objects_not_in_sys_db[NUM_DB_OBJECTS][2]; diff --git a/test/JDBC/expected/BABEL-6814-vu-cleanup.out b/test/JDBC/expected/BABEL-6814-vu-cleanup.out new file mode 100644 index 00000000000..439f00d7e66 --- /dev/null +++ b/test/JDBC/expected/BABEL-6814-vu-cleanup.out @@ -0,0 +1,45 @@ +DROP FUNCTION babel_6814_func1; +GO + +-- Drop extra tables created for consistent EXPLAIN plan behavior +DECLARE @i INT = 1; +DECLARE @sql NVARCHAR(200); +WHILE @i <= 100 +BEGIN + SET @sql = 'DROP TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i); + EXEC(@sql); + SET @i = @i + 1; +END +GO + +-- Drop extra schemas +DECLARE @j INT = 1; +DECLARE @sql2 NVARCHAR(200); +WHILE @j <= 500 +BEGIN + SET @sql2 = 'DROP SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j); + EXEC(@sql2); + SET @j = @j + 1; +END +GO + +DROP VIEW babel_6814_view1; +GO + +DROP PROCEDURE babel_6814_proc1; +GO + +DROP INDEX babel_6814_idx3 ON babel_6814_t2; +GO + +DROP INDEX babel_6814_idx2 ON babel_6814_t1; +GO + +DROP INDEX babel_6814_idx1 ON babel_6814_t1; +GO + +DROP TABLE babel_6814_t2; +GO + +DROP TABLE babel_6814_t1; +GO diff --git a/test/JDBC/expected/BABEL-6814-vu-prepare.out b/test/JDBC/expected/BABEL-6814-vu-prepare.out new file mode 100644 index 00000000000..3d83c695bf1 --- /dev/null +++ b/test/JDBC/expected/BABEL-6814-vu-prepare.out @@ -0,0 +1,53 @@ +CREATE TABLE babel_6814_t1(a int, b varchar(50)); +GO + +CREATE TABLE babel_6814_t2(c int, d varchar(50)); +GO + +CREATE INDEX babel_6814_idx1 ON babel_6814_t1(a); +GO + +CREATE INDEX babel_6814_idx2 ON babel_6814_t1(b); +GO + +CREATE INDEX babel_6814_idx3 ON babel_6814_t2(c); +GO + +CREATE PROCEDURE babel_6814_proc1 AS SELECT 1; +GO + +CREATE VIEW babel_6814_view1 AS SELECT * FROM babel_6814_t1; +GO + +CREATE FUNCTION babel_6814_func1() +RETURNS int +AS +BEGIN +RETURN 1; +END +GO + +-- Create extra tables and indexes to ensure pg_index/pg_class have enough rows +-- for consistent planner behavior in EXPLAIN tests +DECLARE @i INT = 1; +DECLARE @sql NVARCHAR(200); +WHILE @i <= 100 +BEGIN + SET @sql = 'CREATE TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i) + ' (id INT)'; + EXEC(@sql); + SET @sql = 'CREATE INDEX babel_6814_extra_idx_' + CONVERT(VARCHAR, @i) + ' ON babel_6814_extra_' + CONVERT(VARCHAR, @i) + '(id)'; + EXEC(@sql); + SET @i = @i + 1; +END +GO + +-- Create extra schemas to ensure pg_namespace has enough rows for consistent plans +DECLARE @j INT = 1; +DECLARE @sql2 NVARCHAR(200); +WHILE @j <= 500 +BEGIN + SET @sql2 = 'CREATE SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j); + EXEC(@sql2); + SET @j = @j + 1; +END +GO diff --git a/test/JDBC/expected/BABEL-6814-vu-verify.out b/test/JDBC/expected/BABEL-6814-vu-verify.out new file mode 100644 index 00000000000..928f91cc0fe --- /dev/null +++ b/test/JDBC/expected/BABEL-6814-vu-verify.out @@ -0,0 +1,281 @@ +-- Test 1: sys.objects point lookup - left side cast pattern +SELECT name FROM sys.objects +WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1'); +GO +~~START~~ +varchar +babel_6814_t1 +~~END~~ + + +-- Test 2: sys.objects point lookup - right side cast pattern +SELECT name FROM sys.objects +WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id; +GO +~~START~~ +varchar +babel_6814_t1 +~~END~~ + + +-- Test 3: Both patterns return same result +SELECT CASE WHEN + (SELECT name FROM sys.objects WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1')) + = + (SELECT name FROM sys.objects WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id) +THEN 'PASS' ELSE 'FAIL' END; +GO +~~START~~ +varchar +PASS +~~END~~ + + +-- Test 4: sys.indexes - lookup by object_id +SELECT i.index_id, i.type_desc FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY i.index_id; +GO +~~START~~ +int#!#nvarchar +0#!#HEAP +2#!#NONCLUSTERED +3#!#NONCLUSTERED +~~END~~ + + +-- Test 5: sys.columns - lookup by object_id +SELECT name, column_id FROM sys.columns +WHERE object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY column_id; +GO +~~START~~ +varchar#!#int +a#!#1 +b#!#2 +~~END~~ + + +-- Test 6: sys.schemas - lookup by schema_id +SELECT name FROM sys.schemas WHERE schema_id = SCHEMA_ID('dbo'); +GO +~~START~~ +varchar +dbo +~~END~~ + + +-- Test 7: Non-existent object returns 0 rows +SELECT name FROM sys.objects WHERE object_id = 99999999; +GO +~~START~~ +varchar +~~END~~ + + +-- Test 8: Correlated subquery pattern +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE o.object_id = t.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#char +babel_6814_t1#!#U +babel_6814_t2#!#U +~~END~~ + + +-- Test 9: Correlated subquery - reversed operand +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE t.object_id = o.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#char +babel_6814_t1#!#U +babel_6814_t2#!#U +~~END~~ + + +-- Test 10: Join pattern - sys.objects JOIN sys.columns +SELECT o.name, c.name as col_name +FROM sys.objects o +JOIN sys.columns c ON o.object_id = c.object_id +WHERE o.name = 'babel_6814_t1' +ORDER BY c.column_id; +GO +~~START~~ +varchar#!#varchar +babel_6814_t1#!#a +babel_6814_t1#!#b +~~END~~ + + +-- Test 11: Join pattern - sys.tables JOIN sys.indexes +SELECT t.name, i.index_id, i.type_desc +FROM sys.tables t +JOIN sys.indexes i ON t.object_id = i.object_id +WHERE t.name = 'babel_6814_t1' +ORDER BY i.index_id; +GO +~~START~~ +varchar#!#int#!#nvarchar +babel_6814_t1#!#0#!#HEAP +babel_6814_t1#!#2#!#NONCLUSTERED +babel_6814_t1#!#3#!#NONCLUSTERED +~~END~~ + + +-- Test 12: Multiple objects via subquery +SELECT name, type_desc FROM sys.objects +WHERE object_id IN ( + SELECT object_id FROM sys.objects WHERE name IN ('babel_6814_t1', 'babel_6814_t2', 'babel_6814_proc1') +) +ORDER BY name; +GO +~~START~~ +varchar#!#nvarchar +babel_6814_proc1#!#SQL_STORED_PROCEDURE +babel_6814_t1#!#USER_TABLE +babel_6814_t2#!#USER_TABLE +~~END~~ + + +-- Test 13: Different object types all resolve correctly +SELECT name, type, type_desc FROM sys.objects +WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%' +ORDER BY name; +GO +~~START~~ +varchar#!#char#!#nvarchar +babel_6814_func1#!#FN#!#SQL_SCALAR_FUNCTION +babel_6814_proc1#!#P #!#SQL_STORED_PROCEDURE +babel_6814_t1#!#U #!#USER_TABLE +babel_6814_t2#!#U #!#USER_TABLE +babel_6814_view1#!#V #!#VIEW +~~END~~ + + +-- Test 14: sys.indexes with index_id filter +SELECT i.index_id FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +AND i.index_id > 0 +ORDER BY i.index_id; +GO +~~START~~ +int +2 +3 +~~END~~ + + +-- Test 15: Correlated count - ensures all indexes found per table +SELECT t.name, + (SELECT COUNT(*) FROM sys.indexes i WHERE i.object_id = t.object_id AND i.index_id > 0) as idx_count +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#int +babel_6814_t1#!#2 +babel_6814_t2#!#1 +~~END~~ + + +-- psql +-- Verifying Index Scans being Used +ANALYZE pg_class; +ANALYZE pg_namespace; +ANALYZE pg_index; +ANALYZE pg_attribute; +ANALYZE pg_type; +ANALYZE pg_proc; +GO + +SET babelfishpg_tsql.sql_dialect = "tsql"; +GO + +-- Test 16: EXPLAIN on pg_class +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 12345; +GO +~~START~~ +text +Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (12345)::oid) +~~END~~ + + +-- Test 17: EXPLAIN reversed operand +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE 12345 = (oid)::int4; +GO +~~START~~ +text +Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (12345)::oid) +~~END~~ + + +-- Test 18: EXPLAIN join pattern (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, n.nspname FROM pg_class c JOIN pg_namespace n ON (n.oid)::int4 = (c.relnamespace)::int4 WHERE c.relname = 'babel_6814_t1'; +GO +~~START~~ +text +Hash Join + Hash Cond: ((n.oid)::integer = (c.relnamespace)::integer) + -> Seq Scan on pg_namespace n + -> Hash + -> Index Only Scan using pg_class_relname_nsp_index on pg_class c + Index Cond: (relname = 'babel_6814_t1'::name) +~~END~~ + + +-- Test 19: EXPLAIN correlated subquery (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, (SELECT n.nspname FROM pg_namespace n WHERE (n.oid)::int4 = (c.relnamespace)::int4) FROM pg_class c WHERE c.relname = 'babel_6814_t1'; +GO +~~START~~ +text +Index Only Scan using pg_class_relname_nsp_index on pg_class c + Index Cond: (relname = 'babel_6814_t1'::name) + SubPlan 1 + -> Index Scan using pg_namespace_oid_index on pg_namespace n + Index Cond: (oid = ((c.relnamespace)::integer)::oid) +~~END~~ + + +-- Test 20: EXPLAIN pg_index with indrelid cast (few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT * FROM pg_index WHERE (indrelid)::int4 = 12345; +GO +~~START~~ +text +Index Scan using pg_index_indrelid_index on pg_index + Index Cond: (indrelid = (12345)::oid) +~~END~~ + + +-- Test 21: EXPLAIN pg_attribute with attrelid cast +EXPLAIN (COSTS OFF) SELECT * FROM pg_attribute WHERE (attrelid)::int4 = 12345 AND attnum > 0; +GO +~~START~~ +text +Index Scan using pg_attribute_relid_attnum_index on pg_attribute + Index Cond: ((attrelid = (12345)::oid) AND (attnum > 0)) +~~END~~ + + +-- Test 22: EXPLAIN non-existent value +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 99999999; +GO +~~START~~ +text +Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (99999999)::oid) +~~END~~ + + +RESET babelfishpg_tsql.sql_dialect; +GO diff --git a/test/JDBC/expected/parallel_query/BABEL-6814-vu-verify.out b/test/JDBC/expected/parallel_query/BABEL-6814-vu-verify.out new file mode 100644 index 00000000000..65da18c107b --- /dev/null +++ b/test/JDBC/expected/parallel_query/BABEL-6814-vu-verify.out @@ -0,0 +1,298 @@ +-- Test 1: sys.objects point lookup - left side cast pattern +SELECT name FROM sys.objects +WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1'); +GO +~~START~~ +varchar +babel_6814_t1 +~~END~~ + + +-- Test 2: sys.objects point lookup - right side cast pattern +SELECT name FROM sys.objects +WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id; +GO +~~START~~ +varchar +babel_6814_t1 +~~END~~ + + +-- Test 3: Both patterns return same result +SELECT CASE WHEN + (SELECT name FROM sys.objects WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1')) + = + (SELECT name FROM sys.objects WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id) +THEN 'PASS' ELSE 'FAIL' END; +GO +~~START~~ +varchar +PASS +~~END~~ + + +-- Test 4: sys.indexes - lookup by object_id +SELECT i.index_id, i.type_desc FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY i.index_id; +GO +~~START~~ +int#!#nvarchar +0#!#HEAP +2#!#NONCLUSTERED +3#!#NONCLUSTERED +~~END~~ + + +-- Test 5: sys.columns - lookup by object_id +SELECT name, column_id FROM sys.columns +WHERE object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY column_id; +GO +~~START~~ +varchar#!#int +a#!#1 +b#!#2 +~~END~~ + + +-- Test 6: sys.schemas - lookup by schema_id +SELECT name FROM sys.schemas WHERE schema_id = SCHEMA_ID('dbo'); +GO +~~START~~ +varchar +dbo +~~END~~ + + +-- Test 7: Non-existent object returns 0 rows +SELECT name FROM sys.objects WHERE object_id = 99999999; +GO +~~START~~ +varchar +~~END~~ + + +-- Test 8: Correlated subquery pattern +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE o.object_id = t.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#char +babel_6814_t1#!#U +babel_6814_t2#!#U +~~END~~ + + +-- Test 9: Correlated subquery - reversed operand +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE t.object_id = o.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#char +babel_6814_t1#!#U +babel_6814_t2#!#U +~~END~~ + + +-- Test 10: Join pattern - sys.objects JOIN sys.columns +SELECT o.name, c.name as col_name +FROM sys.objects o +JOIN sys.columns c ON o.object_id = c.object_id +WHERE o.name = 'babel_6814_t1' +ORDER BY c.column_id; +GO +~~START~~ +varchar#!#varchar +babel_6814_t1#!#a +babel_6814_t1#!#b +~~END~~ + + +-- Test 11: Join pattern - sys.tables JOIN sys.indexes +SELECT t.name, i.index_id, i.type_desc +FROM sys.tables t +JOIN sys.indexes i ON t.object_id = i.object_id +WHERE t.name = 'babel_6814_t1' +ORDER BY i.index_id; +GO +~~START~~ +varchar#!#int#!#nvarchar +babel_6814_t1#!#0#!#HEAP +babel_6814_t1#!#2#!#NONCLUSTERED +babel_6814_t1#!#3#!#NONCLUSTERED +~~END~~ + + +-- Test 12: Multiple objects via subquery +SELECT name, type_desc FROM sys.objects +WHERE object_id IN ( + SELECT object_id FROM sys.objects WHERE name IN ('babel_6814_t1', 'babel_6814_t2', 'babel_6814_proc1') +) +ORDER BY name; +GO +~~START~~ +varchar#!#nvarchar +babel_6814_proc1#!#SQL_STORED_PROCEDURE +babel_6814_t1#!#USER_TABLE +babel_6814_t2#!#USER_TABLE +~~END~~ + + +-- Test 13: Different object types all resolve correctly +SELECT name, type, type_desc FROM sys.objects +WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%' +ORDER BY name; +GO +~~START~~ +varchar#!#char#!#nvarchar +babel_6814_func1#!#FN#!#SQL_SCALAR_FUNCTION +babel_6814_proc1#!#P #!#SQL_STORED_PROCEDURE +babel_6814_t1#!#U #!#USER_TABLE +babel_6814_t2#!#U #!#USER_TABLE +babel_6814_view1#!#V #!#VIEW +~~END~~ + + +-- Test 14: sys.indexes with index_id filter +SELECT i.index_id FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +AND i.index_id > 0 +ORDER BY i.index_id; +GO +~~START~~ +int +2 +3 +~~END~~ + + +-- Test 15: Correlated count - ensures all indexes found per table +SELECT t.name, + (SELECT COUNT(*) FROM sys.indexes i WHERE i.object_id = t.object_id AND i.index_id > 0) as idx_count +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO +~~START~~ +varchar#!#int +babel_6814_t1#!#2 +babel_6814_t2#!#1 +~~END~~ + + +-- psql +-- Verifying Index Scans being Used +ANALYZE pg_class; +ANALYZE pg_namespace; +ANALYZE pg_index; +ANALYZE pg_attribute; +ANALYZE pg_type; +ANALYZE pg_proc; +GO + +SET babelfishpg_tsql.sql_dialect = "tsql"; +GO + +-- Test 16: EXPLAIN on pg_class +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 12345; +GO +~~START~~ +text +Gather + Workers Planned: 1 + Single Copy: true + -> Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (12345)::oid) +~~END~~ + + +-- Test 17: EXPLAIN reversed operand +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE 12345 = (oid)::int4; +GO +~~START~~ +text +Gather + Workers Planned: 1 + Single Copy: true + -> Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (12345)::oid) +~~END~~ + + +-- Test 18: EXPLAIN join pattern (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, n.nspname FROM pg_class c JOIN pg_namespace n ON (n.oid)::int4 = (c.relnamespace)::int4 WHERE c.relname = 'babel_6814_t1'; +GO +~~START~~ +text +Gather + Workers Planned: 3 + -> Parallel Hash Join + Hash Cond: ((n.oid)::integer = (c.relnamespace)::integer) + -> Parallel Seq Scan on pg_namespace n + -> Parallel Hash + -> Parallel Index Only Scan using pg_class_relname_nsp_index on pg_class c + Index Cond: (relname = 'babel_6814_t1'::name) +~~END~~ + + +-- Test 19: EXPLAIN correlated subquery (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, (SELECT n.nspname FROM pg_namespace n WHERE (n.oid)::int4 = (c.relnamespace)::int4) FROM pg_class c WHERE c.relname = 'babel_6814_t1'; +GO +~~START~~ +text +Index Only Scan using pg_class_relname_nsp_index on pg_class c + Index Cond: (relname = 'babel_6814_t1'::name) + SubPlan 1 + -> Index Scan using pg_namespace_oid_index on pg_namespace n + Index Cond: (oid = ((c.relnamespace)::integer)::oid) +~~END~~ + + +-- Test 20: EXPLAIN pg_index with indrelid cast (few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT * FROM pg_index WHERE (indrelid)::int4 = 12345; +GO +~~START~~ +text +Gather + Workers Planned: 1 + Single Copy: true + -> Index Scan using pg_index_indrelid_index on pg_index + Index Cond: (indrelid = (12345)::oid) +~~END~~ + + +-- Test 21: EXPLAIN pg_attribute with attrelid cast +EXPLAIN (COSTS OFF) SELECT * FROM pg_attribute WHERE (attrelid)::int4 = 12345 AND attnum > 0; +GO +~~START~~ +text +Gather + Workers Planned: 1 + Single Copy: true + -> Index Scan using pg_attribute_relid_attnum_index on pg_attribute + Index Cond: ((attrelid = (12345)::oid) AND (attnum > 0)) +~~END~~ + + +-- Test 22: EXPLAIN non-existent value +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 99999999; +GO +~~START~~ +text +Gather + Workers Planned: 1 + Single Copy: true + -> Index Scan using pg_class_oid_index on pg_class + Index Cond: (oid = (99999999)::oid) +~~END~~ + + +RESET babelfishpg_tsql.sql_dialect; +GO diff --git a/test/JDBC/input/BABEL-6814-vu-cleanup.sql b/test/JDBC/input/BABEL-6814-vu-cleanup.sql new file mode 100644 index 00000000000..439f00d7e66 --- /dev/null +++ b/test/JDBC/input/BABEL-6814-vu-cleanup.sql @@ -0,0 +1,45 @@ +DROP FUNCTION babel_6814_func1; +GO + +-- Drop extra tables created for consistent EXPLAIN plan behavior +DECLARE @i INT = 1; +DECLARE @sql NVARCHAR(200); +WHILE @i <= 100 +BEGIN + SET @sql = 'DROP TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i); + EXEC(@sql); + SET @i = @i + 1; +END +GO + +-- Drop extra schemas +DECLARE @j INT = 1; +DECLARE @sql2 NVARCHAR(200); +WHILE @j <= 500 +BEGIN + SET @sql2 = 'DROP SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j); + EXEC(@sql2); + SET @j = @j + 1; +END +GO + +DROP VIEW babel_6814_view1; +GO + +DROP PROCEDURE babel_6814_proc1; +GO + +DROP INDEX babel_6814_idx3 ON babel_6814_t2; +GO + +DROP INDEX babel_6814_idx2 ON babel_6814_t1; +GO + +DROP INDEX babel_6814_idx1 ON babel_6814_t1; +GO + +DROP TABLE babel_6814_t2; +GO + +DROP TABLE babel_6814_t1; +GO diff --git a/test/JDBC/input/BABEL-6814-vu-prepare.sql b/test/JDBC/input/BABEL-6814-vu-prepare.sql new file mode 100644 index 00000000000..3d83c695bf1 --- /dev/null +++ b/test/JDBC/input/BABEL-6814-vu-prepare.sql @@ -0,0 +1,53 @@ +CREATE TABLE babel_6814_t1(a int, b varchar(50)); +GO + +CREATE TABLE babel_6814_t2(c int, d varchar(50)); +GO + +CREATE INDEX babel_6814_idx1 ON babel_6814_t1(a); +GO + +CREATE INDEX babel_6814_idx2 ON babel_6814_t1(b); +GO + +CREATE INDEX babel_6814_idx3 ON babel_6814_t2(c); +GO + +CREATE PROCEDURE babel_6814_proc1 AS SELECT 1; +GO + +CREATE VIEW babel_6814_view1 AS SELECT * FROM babel_6814_t1; +GO + +CREATE FUNCTION babel_6814_func1() +RETURNS int +AS +BEGIN +RETURN 1; +END +GO + +-- Create extra tables and indexes to ensure pg_index/pg_class have enough rows +-- for consistent planner behavior in EXPLAIN tests +DECLARE @i INT = 1; +DECLARE @sql NVARCHAR(200); +WHILE @i <= 100 +BEGIN + SET @sql = 'CREATE TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i) + ' (id INT)'; + EXEC(@sql); + SET @sql = 'CREATE INDEX babel_6814_extra_idx_' + CONVERT(VARCHAR, @i) + ' ON babel_6814_extra_' + CONVERT(VARCHAR, @i) + '(id)'; + EXEC(@sql); + SET @i = @i + 1; +END +GO + +-- Create extra schemas to ensure pg_namespace has enough rows for consistent plans +DECLARE @j INT = 1; +DECLARE @sql2 NVARCHAR(200); +WHILE @j <= 500 +BEGIN + SET @sql2 = 'CREATE SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j); + EXEC(@sql2); + SET @j = @j + 1; +END +GO diff --git a/test/JDBC/input/BABEL-6814-vu-verify.mix b/test/JDBC/input/BABEL-6814-vu-verify.mix new file mode 100644 index 00000000000..97d37fb4d45 --- /dev/null +++ b/test/JDBC/input/BABEL-6814-vu-verify.mix @@ -0,0 +1,143 @@ +-- parallel_query_expected +-- Test 1: sys.objects point lookup - left side cast pattern +SELECT name FROM sys.objects +WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1'); +GO + +-- Test 2: sys.objects point lookup - right side cast pattern +SELECT name FROM sys.objects +WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id; +GO + +-- Test 3: Both patterns return same result +SELECT CASE WHEN + (SELECT name FROM sys.objects WHERE object_id = (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1')) + = + (SELECT name FROM sys.objects WHERE (SELECT object_id FROM sys.objects WHERE name = 'babel_6814_t1') = object_id) +THEN 'PASS' ELSE 'FAIL' END; +GO + +-- Test 4: sys.indexes - lookup by object_id +SELECT i.index_id, i.type_desc FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY i.index_id; +GO + +-- Test 5: sys.columns - lookup by object_id +SELECT name, column_id FROM sys.columns +WHERE object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +ORDER BY column_id; +GO + +-- Test 6: sys.schemas - lookup by schema_id +SELECT name FROM sys.schemas WHERE schema_id = SCHEMA_ID('dbo'); +GO + +-- Test 7: Non-existent object returns 0 rows +SELECT name FROM sys.objects WHERE object_id = 99999999; +GO + +-- Test 8: Correlated subquery pattern +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE o.object_id = t.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO + +-- Test 9: Correlated subquery - reversed operand +SELECT t.name, + (SELECT o.type FROM sys.objects o WHERE t.object_id = o.object_id) as obj_type +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO + +-- Test 10: Join pattern - sys.objects JOIN sys.columns +SELECT o.name, c.name as col_name +FROM sys.objects o +JOIN sys.columns c ON o.object_id = c.object_id +WHERE o.name = 'babel_6814_t1' +ORDER BY c.column_id; +GO + +-- Test 11: Join pattern - sys.tables JOIN sys.indexes +SELECT t.name, i.index_id, i.type_desc +FROM sys.tables t +JOIN sys.indexes i ON t.object_id = i.object_id +WHERE t.name = 'babel_6814_t1' +ORDER BY i.index_id; +GO + +-- Test 12: Multiple objects via subquery +SELECT name, type_desc FROM sys.objects +WHERE object_id IN ( + SELECT object_id FROM sys.objects WHERE name IN ('babel_6814_t1', 'babel_6814_t2', 'babel_6814_proc1') +) +ORDER BY name; +GO + +-- Test 13: Different object types all resolve correctly +SELECT name, type, type_desc FROM sys.objects +WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%' +ORDER BY name; +GO + +-- Test 14: sys.indexes with index_id filter +SELECT i.index_id FROM sys.indexes i +WHERE i.object_id = (SELECT object_id FROM sys.tables WHERE name = 'babel_6814_t1') +AND i.index_id > 0 +ORDER BY i.index_id; +GO + +-- Test 15: Correlated count - ensures all indexes found per table +SELECT t.name, + (SELECT COUNT(*) FROM sys.indexes i WHERE i.object_id = t.object_id AND i.index_id > 0) as idx_count +FROM sys.tables t +WHERE t.name IN ('babel_6814_t1', 'babel_6814_t2') +ORDER BY t.name; +GO + +-- Verifying Index Scans being Used +-- psql +ANALYZE pg_class; +ANALYZE pg_namespace; +ANALYZE pg_index; +ANALYZE pg_attribute; +ANALYZE pg_type; +ANALYZE pg_proc; +GO + +SET babelfishpg_tsql.sql_dialect = "tsql"; +GO + +-- Test 16: EXPLAIN on pg_class +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 12345; +GO + +-- Test 17: EXPLAIN reversed operand +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE 12345 = (oid)::int4; +GO + +-- Test 18: EXPLAIN join pattern (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, n.nspname FROM pg_class c JOIN pg_namespace n ON (n.oid)::int4 = (c.relnamespace)::int4 WHERE c.relname = 'babel_6814_t1'; +GO + +-- Test 19: EXPLAIN correlated subquery (pg_namespace has few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT c.relname, (SELECT n.nspname FROM pg_namespace n WHERE (n.oid)::int4 = (c.relnamespace)::int4) FROM pg_class c WHERE c.relname = 'babel_6814_t1'; +GO + +-- Test 20: EXPLAIN pg_index with indrelid cast (few rows, planner prefers Seq Scan) +EXPLAIN (COSTS OFF) SELECT * FROM pg_index WHERE (indrelid)::int4 = 12345; +GO + +-- Test 21: EXPLAIN pg_attribute with attrelid cast +EXPLAIN (COSTS OFF) SELECT * FROM pg_attribute WHERE (attrelid)::int4 = 12345 AND attnum > 0; +GO + +-- Test 22: EXPLAIN non-existent value +EXPLAIN (COSTS OFF) SELECT * FROM pg_class WHERE (oid)::int4 = 99999999; +GO + +RESET babelfishpg_tsql.sql_dialect; +GO diff --git a/test/JDBC/upgrade/13_4/schedule b/test/JDBC/upgrade/13_4/schedule index be666360d94..dccc7f17bc5 100644 --- a/test/JDBC/upgrade/13_4/schedule +++ b/test/JDBC/upgrade/13_4/schedule @@ -277,6 +277,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/13_5/schedule b/test/JDBC/upgrade/13_5/schedule index 1481f8fc688..ef61628aee8 100644 --- a/test/JDBC/upgrade/13_5/schedule +++ b/test/JDBC/upgrade/13_5/schedule @@ -330,6 +330,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/13_6/schedule b/test/JDBC/upgrade/13_6/schedule index 7282365550d..7dc9a3682ae 100644 --- a/test/JDBC/upgrade/13_6/schedule +++ b/test/JDBC/upgrade/13_6/schedule @@ -388,6 +388,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/13_7/schedule b/test/JDBC/upgrade/13_7/schedule index a3f8e8a9392..5005e59297e 100644 --- a/test/JDBC/upgrade/13_7/schedule +++ b/test/JDBC/upgrade/13_7/schedule @@ -381,6 +381,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/13_8/schedule b/test/JDBC/upgrade/13_8/schedule index a3f8e8a9392..5005e59297e 100644 --- a/test/JDBC/upgrade/13_8/schedule +++ b/test/JDBC/upgrade/13_8/schedule @@ -381,6 +381,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/13_9/schedule b/test/JDBC/upgrade/13_9/schedule index b78f5a9a15b..64160ea035c 100644 --- a/test/JDBC/upgrade/13_9/schedule +++ b/test/JDBC/upgrade/13_9/schedule @@ -386,6 +386,7 @@ babel_assign_nchar ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_10/schedule b/test/JDBC/upgrade/14_10/schedule index 073501a18e3..9d0f0c1fbca 100644 --- a/test/JDBC/upgrade/14_10/schedule +++ b/test/JDBC/upgrade/14_10/schedule @@ -504,6 +504,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_11/schedule b/test/JDBC/upgrade/14_11/schedule index 90b9e393cd7..d2159ccb6ab 100644 --- a/test/JDBC/upgrade/14_11/schedule +++ b/test/JDBC/upgrade/14_11/schedule @@ -503,6 +503,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_12/schedule b/test/JDBC/upgrade/14_12/schedule index 2adfa81bf59..2d325fe1ee2 100644 --- a/test/JDBC/upgrade/14_12/schedule +++ b/test/JDBC/upgrade/14_12/schedule @@ -504,6 +504,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_13/schedule b/test/JDBC/upgrade/14_13/schedule index 2e1d97739dc..9040c9502cb 100644 --- a/test/JDBC/upgrade/14_13/schedule +++ b/test/JDBC/upgrade/14_13/schedule @@ -504,6 +504,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_15/schedule b/test/JDBC/upgrade/14_15/schedule index d4211ebe739..1977ab3384c 100644 --- a/test/JDBC/upgrade/14_15/schedule +++ b/test/JDBC/upgrade/14_15/schedule @@ -501,6 +501,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_17/schedule b/test/JDBC/upgrade/14_17/schedule index 81939221cfb..51691704aec 100644 --- a/test/JDBC/upgrade/14_17/schedule +++ b/test/JDBC/upgrade/14_17/schedule @@ -498,6 +498,7 @@ test_conv_text_to_string-before-14_21 temp_table_dialect_check-before-15_12-or-16_8 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_18/schedule b/test/JDBC/upgrade/14_18/schedule index d9319846857..0bb60a1f54f 100644 --- a/test/JDBC/upgrade/14_18/schedule +++ b/test/JDBC/upgrade/14_18/schedule @@ -501,6 +501,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_19/schedule b/test/JDBC/upgrade/14_19/schedule index 553894cab70..50d5a95bc1c 100644 --- a/test/JDBC/upgrade/14_19/schedule +++ b/test/JDBC/upgrade/14_19/schedule @@ -499,6 +499,7 @@ test_conv_text_to_string-before-14_21 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_20/schedule b/test/JDBC/upgrade/14_20/schedule index 553894cab70..50d5a95bc1c 100644 --- a/test/JDBC/upgrade/14_20/schedule +++ b/test/JDBC/upgrade/14_20/schedule @@ -499,6 +499,7 @@ test_conv_text_to_string-before-14_21 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_22/schedule b/test/JDBC/upgrade/14_22/schedule index 9b660e2268a..88b8f35cd48 100644 --- a/test/JDBC/upgrade/14_22/schedule +++ b/test/JDBC/upgrade/14_22/schedule @@ -498,6 +498,7 @@ test_conv_text_to_string-before-14_21 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_23/schedule b/test/JDBC/upgrade/14_23/schedule index 9b660e2268a..88b8f35cd48 100644 --- a/test/JDBC/upgrade/14_23/schedule +++ b/test/JDBC/upgrade/14_23/schedule @@ -498,6 +498,7 @@ test_conv_text_to_string-before-14_21 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_24/schedule b/test/JDBC/upgrade/14_24/schedule index 782371016bd..ea969b2d0f5 100644 --- a/test/JDBC/upgrade/14_24/schedule +++ b/test/JDBC/upgrade/14_24/schedule @@ -500,6 +500,7 @@ test_conv_text_to_string-before-14_21 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index 29586d6b306..ea39c2a215a 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -418,6 +418,7 @@ view_sec_setting_before_17_6-or-16_10 ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 forxml-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_5/schedule b/test/JDBC/upgrade/14_5/schedule index 74fdb6a5418..5ab72311496 100644 --- a/test/JDBC/upgrade/14_5/schedule +++ b/test/JDBC/upgrade/14_5/schedule @@ -429,6 +429,7 @@ view_sec_setting_before_17_6-or-16_10 ascii_function_before-17_7-or-16_11 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 BABEL-SP_DATATYPE_INFO forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_6/schedule b/test/JDBC/upgrade/14_6/schedule index 60d3ee225b8..099adc688cf 100644 --- a/test/JDBC/upgrade/14_6/schedule +++ b/test/JDBC/upgrade/14_6/schedule @@ -471,6 +471,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-15_2 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_8-or-15_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_7/schedule b/test/JDBC/upgrade/14_7/schedule index 5dd8660697c..4ebf5adc58c 100644 --- a/test/JDBC/upgrade/14_7/schedule +++ b/test/JDBC/upgrade/14_7/schedule @@ -494,6 +494,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_8-or-15_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_8/schedule b/test/JDBC/upgrade/14_8/schedule index e0ccdcf98f3..a2f8cd5c907 100644 --- a/test/JDBC/upgrade/14_8/schedule +++ b/test/JDBC/upgrade/14_8/schedule @@ -496,6 +496,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/14_9/schedule b/test/JDBC/upgrade/14_9/schedule index f45af7bcbdf..57eb7eeb563 100644 --- a/test/JDBC/upgrade/14_9/schedule +++ b/test/JDBC/upgrade/14_9/schedule @@ -499,6 +499,7 @@ test_conv_text_to_binary-before-15_5 test_conv_text_to_string-before-14_21 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 forxml-path-elements-before-17_10-or-18_4 diff --git a/test/JDBC/upgrade/15_1/schedule b/test/JDBC/upgrade/15_1/schedule index 00daf672c4e..af514d88e88 100644 --- a/test/JDBC/upgrade/15_1/schedule +++ b/test/JDBC/upgrade/15_1/schedule @@ -477,6 +477,7 @@ test_conv_text_to_string-before-15_2 babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-15_2-or-14_7 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-14_8-or-15_3 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_10/schedule b/test/JDBC/upgrade/15_10/schedule index 1c3bf9b3666..6614a4ffc51 100644 --- a/test/JDBC/upgrade/15_10/schedule +++ b/test/JDBC/upgrade/15_10/schedule @@ -601,6 +601,7 @@ temp_table_dialect_check-before-15_12-or-16_8 babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_12/schedule b/test/JDBC/upgrade/15_12/schedule index b47afe48399..1d92d39357d 100644 --- a/test/JDBC/upgrade/15_12/schedule +++ b/test/JDBC/upgrade/15_12/schedule @@ -598,6 +598,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_13/schedule b/test/JDBC/upgrade/15_13/schedule index 433a4028c4f..90c52de049c 100644 --- a/test/JDBC/upgrade/15_13/schedule +++ b/test/JDBC/upgrade/15_13/schedule @@ -606,6 +606,7 @@ test_convert_to_binary-before-17_7-16_11 cast_datetime_to_binary-before-17_7-16_11 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_14/schedule b/test/JDBC/upgrade/15_14/schedule index 878af8c1b3f..7bcce188130 100644 --- a/test/JDBC/upgrade/15_14/schedule +++ b/test/JDBC/upgrade/15_14/schedule @@ -608,6 +608,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_15/schedule b/test/JDBC/upgrade/15_15/schedule index b589db51e28..1d3b569a51b 100644 --- a/test/JDBC/upgrade/15_15/schedule +++ b/test/JDBC/upgrade/15_15/schedule @@ -604,6 +604,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_17/schedule b/test/JDBC/upgrade/15_17/schedule index aec4e8415d9..e1fa21eb54a 100644 --- a/test/JDBC/upgrade/15_17/schedule +++ b/test/JDBC/upgrade/15_17/schedule @@ -602,6 +602,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_binary-before-17_7-or-16_11 babel_convert_with_style diff --git a/test/JDBC/upgrade/15_18/schedule b/test/JDBC/upgrade/15_18/schedule index aec4e8415d9..e1fa21eb54a 100644 --- a/test/JDBC/upgrade/15_18/schedule +++ b/test/JDBC/upgrade/15_18/schedule @@ -602,6 +602,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_binary-before-17_7-or-16_11 babel_convert_with_style diff --git a/test/JDBC/upgrade/15_19/schedule b/test/JDBC/upgrade/15_19/schedule index 985f564dd49..1fd7e52c242 100644 --- a/test/JDBC/upgrade/15_19/schedule +++ b/test/JDBC/upgrade/15_19/schedule @@ -604,6 +604,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_binary-before-17_7-or-16_11 babel_convert_with_style diff --git a/test/JDBC/upgrade/15_2/schedule b/test/JDBC/upgrade/15_2/schedule index e6976d59ead..d56732e1251 100644 --- a/test/JDBC/upgrade/15_2/schedule +++ b/test/JDBC/upgrade/15_2/schedule @@ -513,6 +513,7 @@ test_conv_text_to_string-before-15_2 babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-14_8-or-15_3 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_3/schedule b/test/JDBC/upgrade/15_3/schedule index 36596d457f6..1379b2f6fe1 100644 --- a/test/JDBC/upgrade/15_3/schedule +++ b/test/JDBC/upgrade/15_3/schedule @@ -533,6 +533,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_4/schedule b/test/JDBC/upgrade/15_4/schedule index d21593f3959..b58b8249c41 100644 --- a/test/JDBC/upgrade/15_4/schedule +++ b/test/JDBC/upgrade/15_4/schedule @@ -546,6 +546,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-14_12-or-16_3 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_5/schedule b/test/JDBC/upgrade/15_5/schedule index e2bd63ea29e..82039d5a781 100644 --- a/test/JDBC/upgrade/15_5/schedule +++ b/test/JDBC/upgrade/15_5/schedule @@ -582,6 +582,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-15_6-or-14_11 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-15_7 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_6/schedule b/test/JDBC/upgrade/15_6/schedule index f1bd59481d4..2cfa4835c8e 100644 --- a/test/JDBC/upgrade/15_6/schedule +++ b/test/JDBC/upgrade/15_6/schedule @@ -598,6 +598,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style-before-15_7 forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_7/schedule b/test/JDBC/upgrade/15_7/schedule index e1ace84d4cf..e94eaecebe1 100644 --- a/test/JDBC/upgrade/15_7/schedule +++ b/test/JDBC/upgrade/15_7/schedule @@ -607,6 +607,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/15_8/schedule b/test/JDBC/upgrade/15_8/schedule index 9365a955299..318a0a283a0 100644 --- a/test/JDBC/upgrade/15_8/schedule +++ b/test/JDBC/upgrade/15_8/schedule @@ -599,6 +599,7 @@ test_conv_text_to_string babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/16_1/schedule b/test/JDBC/upgrade/16_1/schedule index 2f3eb3c0f51..46003a292dd 100644 --- a/test/JDBC/upgrade/16_1/schedule +++ b/test/JDBC/upgrade/16_1/schedule @@ -592,6 +592,7 @@ babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style-before-14_12-or-16_3 diff --git a/test/JDBC/upgrade/16_10/schedule b/test/JDBC/upgrade/16_10/schedule index 26d86bf1e58..0a662130a6a 100644 --- a/test/JDBC/upgrade/16_10/schedule +++ b/test/JDBC/upgrade/16_10/schedule @@ -645,6 +645,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/16_11/schedule b/test/JDBC/upgrade/16_11/schedule index 9d7d8fe308e..3ee27211e89 100644 --- a/test/JDBC/upgrade/16_11/schedule +++ b/test/JDBC/upgrade/16_11/schedule @@ -607,6 +607,7 @@ sp_xml_removedocument openxml_with_clause-before-17_7 fixeddecimal_modulo BABEL-NUMERIC_EXPR +BABEL-6814 test_conv_float_to_varchar_char BABEL-5467 BABEL_OBJECT_RESOLUTION_IN_ROUTINES diff --git a/test/JDBC/upgrade/16_13/schedule b/test/JDBC/upgrade/16_13/schedule index bd16bca3262..4fbe053df69 100644 --- a/test/JDBC/upgrade/16_13/schedule +++ b/test/JDBC/upgrade/16_13/schedule @@ -642,6 +642,7 @@ BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_binary diff --git a/test/JDBC/upgrade/16_14/schedule b/test/JDBC/upgrade/16_14/schedule index be1508e6c65..add6e764a36 100644 --- a/test/JDBC/upgrade/16_14/schedule +++ b/test/JDBC/upgrade/16_14/schedule @@ -642,6 +642,7 @@ BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_binary diff --git a/test/JDBC/upgrade/16_15/schedule b/test/JDBC/upgrade/16_15/schedule index 99cdfb1a76f..9abc313dbc6 100644 --- a/test/JDBC/upgrade/16_15/schedule +++ b/test/JDBC/upgrade/16_15/schedule @@ -644,6 +644,7 @@ BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_binary diff --git a/test/JDBC/upgrade/16_2/schedule b/test/JDBC/upgrade/16_2/schedule index 4552cba38f8..e0431135f93 100644 --- a/test/JDBC/upgrade/16_2/schedule +++ b/test/JDBC/upgrade/16_2/schedule @@ -608,6 +608,7 @@ babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style-before-14_12-or-16_3 diff --git a/test/JDBC/upgrade/16_3/schedule b/test/JDBC/upgrade/16_3/schedule index 20aa6f9b5b5..7433c57941d 100644 --- a/test/JDBC/upgrade/16_3/schedule +++ b/test/JDBC/upgrade/16_3/schedule @@ -614,6 +614,7 @@ babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style diff --git a/test/JDBC/upgrade/16_4/schedule b/test/JDBC/upgrade/16_4/schedule index cfd99e108e0..2b4940cfbe1 100644 --- a/test/JDBC/upgrade/16_4/schedule +++ b/test/JDBC/upgrade/16_4/schedule @@ -629,6 +629,7 @@ babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style diff --git a/test/JDBC/upgrade/16_6/schedule b/test/JDBC/upgrade/16_6/schedule index acadcb7342e..30a44ae203d 100644 --- a/test/JDBC/upgrade/16_6/schedule +++ b/test/JDBC/upgrade/16_6/schedule @@ -635,6 +635,7 @@ babel_timezoneinfo_before_17_7 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style diff --git a/test/JDBC/upgrade/16_8/schedule b/test/JDBC/upgrade/16_8/schedule index d667d4acd8c..d8fbffc30e3 100644 --- a/test/JDBC/upgrade/16_8/schedule +++ b/test/JDBC/upgrade/16_8/schedule @@ -642,6 +642,7 @@ test_convert_to_binary-before-17_7-16_11 comparison_op_index_scan-before-17_8-or-16_12 babel_string_to_money BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_string_to_money_reg babel_convert_with_style diff --git a/test/JDBC/upgrade/16_9/schedule b/test/JDBC/upgrade/16_9/schedule index 05a4dca8064..7ee30ea4d85 100644 --- a/test/JDBC/upgrade/16_9/schedule +++ b/test/JDBC/upgrade/16_9/schedule @@ -646,6 +646,7 @@ cast_datetime_to_binary-before-17_7-16_11 BABEL-4271 comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664-before-16_10-or-17_6 babel_convert_with_style forxml-raw-elements-before-17_9-or-18_3 diff --git a/test/JDBC/upgrade/17_10/schedule b/test/JDBC/upgrade/17_10/schedule index 4e78c4e3f49..c9b52a84176 100644 --- a/test/JDBC/upgrade/17_10/schedule +++ b/test/JDBC/upgrade/17_10/schedule @@ -674,6 +674,7 @@ Test-Linestring Test-Polygon Test-Multipoint BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_string_to_money_reg diff --git a/test/JDBC/upgrade/17_4/schedule b/test/JDBC/upgrade/17_4/schedule index 9b0943212be..ba33168dac1 100644 --- a/test/JDBC/upgrade/17_4/schedule +++ b/test/JDBC/upgrade/17_4/schedule @@ -603,6 +603,7 @@ sp_xml_removedocument openxml_with_clause-before-17_7 fixeddecimal_modulo BABEL-NUMERIC_EXPR +BABEL-6814 test_conv_float_to_varchar_char test_constraint_like-17-4-or-16-8 round_return_type_test-before-16_9-or-17_5 diff --git a/test/JDBC/upgrade/17_5/schedule b/test/JDBC/upgrade/17_5/schedule index 77af40e3f06..e250f334856 100644 --- a/test/JDBC/upgrade/17_5/schedule +++ b/test/JDBC/upgrade/17_5/schedule @@ -608,6 +608,7 @@ sp_xml_removedocument openxml_with_clause-before-17_7 fixeddecimal_modulo BABEL-NUMERIC_EXPR +BABEL-6814 test_conv_float_to_varchar_char BABEL-5467 sys_credentials diff --git a/test/JDBC/upgrade/17_6/schedule b/test/JDBC/upgrade/17_6/schedule index 0a6ac02c22b..98ba20cc8ca 100644 --- a/test/JDBC/upgrade/17_6/schedule +++ b/test/JDBC/upgrade/17_6/schedule @@ -663,6 +663,7 @@ babel_string_to_money 0_temp_oid_buffer_start comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664 string_aggregate babel_string_to_money_reg diff --git a/test/JDBC/upgrade/17_7/schedule b/test/JDBC/upgrade/17_7/schedule index 0df7b8b566e..6d3bc42fcf6 100644 --- a/test/JDBC/upgrade/17_7/schedule +++ b/test/JDBC/upgrade/17_7/schedule @@ -665,6 +665,7 @@ BABEL-4271 0_temp_oid_buffer_start comparison_op_index_scan-before-17_8-or-16_12 BABEL-5788 +BABEL-6814 BABEL-1664 string_aggregate babel_convert_with_style diff --git a/test/JDBC/upgrade/17_9/schedule b/test/JDBC/upgrade/17_9/schedule index 17d94a6954e..d4abd0f275f 100644 --- a/test/JDBC/upgrade/17_9/schedule +++ b/test/JDBC/upgrade/17_9/schedule @@ -670,6 +670,7 @@ comparison_op_index_scan Test-Linestring Test-Polygon-before-17_9-or-18_3 BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_string_to_money_reg diff --git a/test/JDBC/upgrade/latest/schedule b/test/JDBC/upgrade/latest/schedule index 67fac6f1350..90c356fc536 100644 --- a/test/JDBC/upgrade/latest/schedule +++ b/test/JDBC/upgrade/latest/schedule @@ -676,6 +676,7 @@ Test-Polygon Test-Multipoint Test-Multilinestring BABEL-5788 +BABEL-6814 BABEL-1664 sys-fn_varbintohexstr babel_string_to_money_reg From 1824e7ca89b53cb8fa26974d2300c7a2f4afe43c Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni Date: Sun, 21 Jun 2026 05:10:45 +0000 Subject: [PATCH 2/5] Empty Commit Signed-off-by: Rucha Kulkarni From 3d0921df01861dbb77c072aa96ed14dff3654256 Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni Date: Sun, 21 Jun 2026 06:18:59 +0000 Subject: [PATCH 3/5] Empty Commit Signed-off-by: Rucha Kulkarni From 2598b0807ab96b593801dc1a24a38d69f9443cc3 Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni Date: Sun, 21 Jun 2026 07:40:15 +0000 Subject: [PATCH 4/5] Empty Commit Signed-off-by: Rucha Kulkarni From 77f691167cb10f85af58a9e6e7cb805060a7ea0d Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni Date: Sun, 21 Jun 2026 12:01:57 +0000 Subject: [PATCH 5/5] Adding analyze in grant schema test Signed-off-by: Rucha Kulkarni --- test/JDBC/expected/1_GRANT_SCHEMA-vu-verify.out | 10 ++++++++++ test/JDBC/input/1_GRANT_SCHEMA-vu-verify.mix | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/test/JDBC/expected/1_GRANT_SCHEMA-vu-verify.out b/test/JDBC/expected/1_GRANT_SCHEMA-vu-verify.out index 7b231e04b21..037853c6bcf 100644 --- a/test/JDBC/expected/1_GRANT_SCHEMA-vu-verify.out +++ b/test/JDBC/expected/1_GRANT_SCHEMA-vu-verify.out @@ -1,3 +1,13 @@ +-- psql +ANALYZE pg_catalog.pg_class; +ANALYZE pg_catalog.pg_namespace; +ANALYZE pg_catalog.pg_proc; +ANALYZE pg_catalog.pg_type; +ANALYZE pg_catalog.pg_attribute; +ANALYZE sys.babelfish_namespace_ext; +ANALYZE sys.babelfish_sysdatabases; +GO + -- tsql -- check for inconsistent metadata after upgrade select COUNT(*) FROM sys.babelfish_inconsistent_metadata(); diff --git a/test/JDBC/input/1_GRANT_SCHEMA-vu-verify.mix b/test/JDBC/input/1_GRANT_SCHEMA-vu-verify.mix index eaf8db08c34..d6c4d942930 100644 --- a/test/JDBC/input/1_GRANT_SCHEMA-vu-verify.mix +++ b/test/JDBC/input/1_GRANT_SCHEMA-vu-verify.mix @@ -1,3 +1,13 @@ +-- psql +ANALYZE pg_catalog.pg_class; +ANALYZE pg_catalog.pg_namespace; +ANALYZE pg_catalog.pg_proc; +ANALYZE pg_catalog.pg_type; +ANALYZE pg_catalog.pg_attribute; +ANALYZE sys.babelfish_namespace_ext; +ANALYZE sys.babelfish_sysdatabases; +GO + -- tsql -- check for inconsistent metadata after upgrade select COUNT(*) FROM sys.babelfish_inconsistent_metadata();