custom_format.diff
application/octet-stream
Filename: custom_format.diff
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: context
| File | + | − |
|---|---|---|
| src/backend/commands/variable.c | 10 | 0 |
| src/backend/utils/adt/date.c | 29 | 6 |
| src/backend/utils/adt/datetime.c | 1 | 0 |
| src/backend/utils/misc/guc.c | 10 | 0 |
| src/include/miscadmin.h | 1 | 0 |
*** ./src/backend/commands/variable.c.orig 2010-02-14 19:42:14.000000000 +0100
--- ./src/backend/commands/variable.c 2010-05-31 16:54:34.934729768 +0200
***************
*** 154,159 ****
--- 154,166 ----
/* when doit is true */
free((char *) subval);
}
+ else if (pg_strcasecmp(tok, "CUSTOM") == 0)
+ {
+ if (have_style && newDateStyle != USE_CUSTOM_DATES)
+ ok = false; /* conflicting styles */
+ newDateStyle = USE_CUSTOM_DATES;
+ have_style = true;
+ }
else
{
ereport(GUC_complaint_elevel(source),
***************
*** 200,205 ****
--- 207,215 ----
case USE_GERMAN_DATES:
strcpy(result, "German");
break;
+ case USE_CUSTOM_DATES:
+ strcpy(result, "Custom");
+ break;
default:
strcpy(result, "Postgres");
break;
*** ./src/backend/utils/adt/date.c.orig 2010-02-26 03:01:07.000000000 +0100
--- ./src/backend/utils/adt/date.c 2010-06-02 11:59:16.260024688 +0200
***************
*** 27,32 ****
--- 27,33 ----
#include "utils/array.h"
#include "utils/builtins.h"
#include "utils/date.h"
+ #include "utils/formatting.h"
#include "utils/nabstime.h"
/*
***************
*** 45,50 ****
--- 46,54 ----
static int tm2timetz(struct pg_tm * tm, fsec_t fsec, int tz, TimeTzADT *result);
static void AdjustTimeForTypmod(TimeADT *time, int32 typmod);
+ extern char *custom_datestyle_format;
+
+
/* common code for timetypmodin and timetztypmodin */
static int32
***************
*** 183,198 ****
*tm = &tt;
char buf[MAXDATELEN + 1];
! if (DATE_NOT_FINITE(date))
! EncodeSpecialDate(date, buf);
else
{
! j2date(date + POSTGRES_EPOCH_JDATE,
! &(tm->tm_year), &(tm->tm_mon), &(tm->tm_mday));
! EncodeDateOnly(tm, DateStyle, buf);
}
- result = pstrdup(buf);
PG_RETURN_CSTRING(result);
}
--- 187,221 ----
*tm = &tt;
char buf[MAXDATELEN + 1];
! if (DateStyle == USE_CUSTOM_DATES)
! {
! Timestamp dt;
! text *fmt;
!
! if (custom_datestyle_format == NULL || strcmp(custom_datestyle_format,"") == 0)
! elog(ERROR, "custom_datestyle_format is empty");
!
! dt = DirectFunctionCall1(date_timestamp, DateADTGetDatum(date));
! fmt = cstring_to_text(custom_datestyle_format);
! result = text_to_cstring(DatumGetTextP(DirectFunctionCall2(timestamp_to_char,
! TimestampGetDatum(dt),
! PointerGetDatum(fmt))));
! }
else
{
! /* use predefined style */
! if (DATE_NOT_FINITE(date))
! EncodeSpecialDate(date, buf);
! else
! {
! j2date(date + POSTGRES_EPOCH_JDATE,
! &(tm->tm_year), &(tm->tm_mon), &(tm->tm_mday));
! EncodeDateOnly(tm, DateStyle, buf);
! }
!
! result = pstrdup(buf);
}
PG_RETURN_CSTRING(result);
}
*** ./src/backend/utils/adt/datetime.c.orig 2010-05-09 04:15:59.000000000 +0200
--- ./src/backend/utils/adt/datetime.c 2010-05-31 17:42:42.384729881 +0200
***************
*** 52,57 ****
--- 52,58 ----
static void AdjustFractDays(double frac, struct pg_tm * tm, fsec_t *fsec,
int scale);
+ char *custom_datestyle_format = NULL;
const int day_tab[2][13] =
{
*** ./src/backend/utils/misc/guc.c.orig 2010-05-02 04:10:33.000000000 +0200
--- ./src/backend/utils/misc/guc.c 2010-05-31 17:42:37.016854897 +0200
***************
*** 118,123 ****
--- 118,124 ----
extern bool fullPageWrites;
extern int vacuum_defer_cleanup_age;
extern int ssl_renegotiation_limit;
+ extern char *custom_datestyle_format;
int trace_recovery_messages = LOG;
***************
*** 2539,2544 ****
--- 2540,2554 ----
},
{
+ {"custom_datestyle_format", PGC_USERSET, CLIENT_CONN_STATEMENT,
+ gettext_noop("Sets custom format for date "),
+ NULL
+ },
+ &custom_datestyle_format,
+ "", NULL, NULL
+ },
+
+ {
{"custom_variable_classes", PGC_SIGHUP, CUSTOM_OPTIONS,
gettext_noop("Sets the list of known custom variable classes."),
NULL,
*** ./src/include/miscadmin.h.orig 2010-02-26 03:01:20.000000000 +0100
--- ./src/include/miscadmin.h 2010-05-31 16:45:54.299855276 +0200
***************
*** 184,189 ****
--- 184,190 ----
#define USE_SQL_DATES 2
#define USE_GERMAN_DATES 3
#define USE_XSD_DATES 4
+ #define USE_CUSTOM_DATES 5
/* valid DateOrder values */
#define DATEORDER_YMD 0