Hello,
I added a patch to fix table_to_xmlschema, could you point me how to add a unit test to that?
From 24768b689638fc35edcdb378735ae2505315a151 Mon Sep 17 00:00:00 2001 From: Renan Lopes <[email protected]> Date: Fri, 18 Feb 2022 14:36:30 -0300 Subject: [PATCH] fix: table_to_xmlschema regex for timestamp with time zone
---
src/backend/utils/adt/xml.c | 4 ++--
src/test/regress/sql/xmlmap.sql | 7 +++++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 51773db..801ad8f 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -3659,7 +3659,7 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
case TIMEOID:
case TIMETZOID:
{
- const char *tz = (typeoid == TIMETZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
+ const char *tz = (typeoid == TIMETZOID ? "(\\+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
if (typmod == -1)
appendStringInfo(&result,
@@ -3682,7 +3682,7 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
case TIMESTAMPOID:
case TIMESTAMPTZOID:
{
- const char *tz = (typeoid == TIMESTAMPTZOID ? "(+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
+ const char *tz = (typeoid == TIMESTAMPTZOID ? "(\\+|-)\\p{Nd}{2}:\\p{Nd}{2}" : "");
if (typmod == -1)
appendStringInfo(&result,
diff --git a/src/test/regress/sql/xmlmap.sql b/src/test/regress/sql/xmlmap.sql
index fde1b9e..13407ee 100644
--- a/src/test/regress/sql/xmlmap.sql
+++ b/src/test/regress/sql/xmlmap.sql
@@ -55,3 +55,10 @@ CREATE TABLE testxmlschema.test3
SELECT xmlforest(c1, c2, c3, c4) FROM testxmlschema.test3;
SELECT table_to_xml('testxmlschema.test3', true, true, '');
+
+
+-- test datetime with time zone
+
+CREATE TABLE testxmlschema.test4 (a timestamp with time zone default current_timestamp);
+SELECT table_to_xmlschema('testxmlschema.test4', true, true, '');
+
--
2.35.1
