summaryrefslogtreecommitdiff
path: root/src/backend/commands/variable.c
diff options
context:
space:
mode:
authorBruce Momjian2003-12-20 15:32:55 +0000
committerBruce Momjian2003-12-20 15:32:55 +0000
commitb90daf44ef24639d264e4fe0404ba1eeb5df90be (patch)
treeee8a260a3bc9071cf530978d29ac6ef94e649d98 /src/backend/commands/variable.c
parent42427a56ba7c713759a37478554c9872832fe062 (diff)
In my mind there were two categories of open issues
a) ones that are 100% backward (such as the comment about outputting this format) and b) ones that aren't (such as deprecating the current postgresql shorthand of '1Y1M'::interval = 1 year 1 minute in favor of the ISO-8601 'P1Y1M'::interval = 1 year 1 month. Attached is a patch that addressed all the discussed issues that did not break backward compatability, including the ability to output ISO-8601 compliant intervals by setting datestyle to iso8601basic. Interval values can now be written as ISO 8601 time intervals, using the "Format with time-unit designators". This format always starts with the character 'P', followed by a string of values followed by single character time-unit designators. A 'T' separates the date and time parts of the interval. Ron Mayer
Diffstat (limited to 'src/backend/commands/variable.c')
-rw-r--r--src/backend/commands/variable.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c
index 90d2b074b2..453b2e4f20 100644
--- a/src/backend/commands/variable.c
+++ b/src/backend/commands/variable.c
@@ -82,7 +82,12 @@ assign_datestyle(const char *value, bool doit, bool interactive)
/* Ugh. Somebody ought to write a table driven version -- mjl */
- if (strcasecmp(tok, "ISO") == 0)
+ if (strcasecmp(tok, "ISO8601BASIC") == 0)
+ {
+ newDateStyle = USE_ISO8601BASIC_DATES;
+ scnt++;
+ }
+ else if (strcasecmp(tok, "ISO") == 0)
{
newDateStyle = USE_ISO_DATES;
scnt++;
@@ -198,6 +203,9 @@ assign_datestyle(const char *value, bool doit, bool interactive)
case USE_ISO_DATES:
strcpy(result, "ISO");
break;
+ case USE_ISO8601BASIC_DATES:
+ strcpy(result, "ISO8601BASIC");
+ break;
case USE_SQL_DATES:
strcpy(result, "SQL");
break;