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 <renan.lo...@datarisk.io>
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

Reply via email to