Skip to content

Commit fa47eb4

Browse files
authored
Fix ambiguous operator calls during restore (#44) (#2389)
The JSONB operators like `->` and `->>` become ambiguous under `dump_restore` GUC so fixed this by adding proper casts in `sys.syslanguages` view. Task: BABEL-3826 Signed-off-by: Rishabh Tanwar <ritanwar@amazon.com>
1 parent ba14e3d commit fa47eb4

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

contrib/babelfishpg_tsql/sql/sys_views.sql

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2359,14 +2359,14 @@ CREATE OR REPLACE VIEW sys.syslanguages
23592359
AS
23602360
SELECT
23612361
lang_id AS langid,
2362-
CAST(lower(lang_data_jsonb ->> 'date_format') AS SYS.NCHAR(3)) AS dateformat,
2363-
CAST(lang_data_jsonb -> 'date_first' AS SYS.TINYINT) AS datefirst,
2362+
CAST(lower(lang_data_jsonb ->> 'date_format'::TEXT) AS SYS.NCHAR(3)) AS dateformat,
2363+
CAST(lang_data_jsonb -> 'date_first'::TEXT AS SYS.TINYINT) AS datefirst,
23642364
CAST(NULL AS INT) AS upgrade,
23652365
CAST(coalesce(lang_name_mssql, lang_name_pg) AS SYS.SYSNAME) AS name,
23662366
CAST(coalesce(lang_alias_mssql, lang_alias_pg) AS SYS.SYSNAME) AS alias,
2367-
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_names')), ',') AS SYS.NVARCHAR(372)) AS months,
2368-
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_shortnames')),',') AS SYS.NVARCHAR(132)) AS shortmonths,
2369-
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'days_shortnames')),',') AS SYS.NVARCHAR(217)) AS days,
2367+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_names'::TEXT)), ',') AS SYS.NVARCHAR(372)) AS months,
2368+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_shortnames'::TEXT)),',') AS SYS.NVARCHAR(132)) AS shortmonths,
2369+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'days_shortnames'::TEXT)),',') AS SYS.NVARCHAR(217)) AS days,
23702370
CAST(NULL AS INT) AS lcid,
23712371
CAST(NULL AS SMALLINT) AS msglangid
23722372
FROM sys.babelfish_syslanguages;

contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--2.7.0--2.8.0.sql

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,6 +1268,23 @@ and has_table_privilege(t.oid, 'SELECT,INSERT,UPDATE,DELETE,TRUNCATE,TRIGGER')
12681268
order by object_id, type_desc;
12691269
GRANT SELECT ON sys.indexes TO PUBLIC;
12701270

1271+
CREATE OR REPLACE VIEW sys.syslanguages
1272+
AS
1273+
SELECT
1274+
lang_id AS langid,
1275+
CAST(lower(lang_data_jsonb ->> 'date_format'::TEXT) AS SYS.NCHAR(3)) AS dateformat,
1276+
CAST(lang_data_jsonb -> 'date_first'::TEXT AS SYS.TINYINT) AS datefirst,
1277+
CAST(NULL AS INT) AS upgrade,
1278+
CAST(coalesce(lang_name_mssql, lang_name_pg) AS SYS.SYSNAME) AS name,
1279+
CAST(coalesce(lang_alias_mssql, lang_alias_pg) AS SYS.SYSNAME) AS alias,
1280+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_names'::TEXT)), ',') AS SYS.NVARCHAR(372)) AS months,
1281+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'months_shortnames'::TEXT)),',') AS SYS.NVARCHAR(132)) AS shortmonths,
1282+
CAST(array_to_string(ARRAY(SELECT jsonb_array_elements_text(lang_data_jsonb -> 'days_shortnames'::TEXT)),',') AS SYS.NVARCHAR(217)) AS days,
1283+
CAST(NULL AS INT) AS lcid,
1284+
CAST(NULL AS SMALLINT) AS msglangid
1285+
FROM sys.babelfish_syslanguages;
1286+
GRANT SELECT ON sys.syslanguages TO PUBLIC;
1287+
12711288
-- Drops the temporary procedure used by the upgrade script.
12721289
-- Please have this be one of the last statements executed in this upgrade script.
12731290
DROP PROCEDURE sys.babelfish_drop_deprecated_object(varchar, varchar, varchar);

0 commit comments

Comments
 (0)