47 bool have_style =
false;
48 bool have_order =
false;
71 char *tok = (
char *)
lfirst(l);
140 void *subextra =
NULL;
154 myextra = (
int *) subextra;
156 newDateStyle = myextra[0];
158 newDateOrder = myextra[1];
183 result = (
char *)
malloc(32);
187 switch (newDateStyle)
190 strcpy(result,
"ISO");
193 strcpy(result,
"SQL");
196 strcpy(result,
"German");
199 strcpy(result,
"Postgres");
202 switch (newDateOrder)
205 strcat(result,
", YMD");
208 strcat(result,
", DMY");
211 strcat(result,
", MDY");
221 myextra = (
int *)
malloc(2 *
sizeof(
int));
224 myextra[0] = newDateStyle;
225 myextra[1] = newDateOrder;
226 *extra = (
void *) myextra;
237 int *myextra = (
int *) extra;
265 const char *valueptr = *
newval;
270 while (isspace((
unsigned char) *valueptr))
272 if (*valueptr++ !=
'\'')
276 endptr = strchr(val,
'\'');
277 if (!endptr || endptr[1] !=
'\0')
296 if (interval->
month != 0)
302 if (interval->
day != 0)
310 #ifdef HAVE_INT64_TIMESTAMP
313 gmtoffset = -interval->
time;
324 hours = strtod(*newval, &endptr);
325 if (endptr != *newval && *endptr ==
'\0')
367 *((
pg_tz **) *extra) = new_tz;
440 *((
pg_tz **) *extra) = new_tz;
497 GUC_check_errmsg(
"cannot set transaction read-write mode inside a read-only transaction");
504 GUC_check_errmsg(
"transaction read-write mode must be set before any query");
532 if (strcmp(*newval,
"serializable") == 0)
536 else if (strcmp(*newval,
"repeatable read") == 0)
540 else if (strcmp(*newval,
"read committed") == 0)
544 else if (strcmp(*newval,
"read uncommitted") == 0)
548 else if (strcmp(*newval,
"default") == 0)
560 GUC_check_errmsg(
"SET TRANSACTION ISOLATION LEVEL must be called before any query");
567 GUC_check_errmsg(
"SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction");
580 *extra =
malloc(
sizeof(
int));
583 *((
int *) *extra) = newXactIsoLevel;
601 return "read uncommitted";
603 return "read committed";
605 return "repeatable read";
607 return "serializable";
623 GUC_check_errmsg(
"SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction");
629 GUC_check_errmsg(
"SET TRANSACTION [NOT] DEFERRABLE must be called before any query");
648 *extra =
malloc(
sizeof(
int));
661 if (*((
int *) extra))
663 *((
int *) extra) = 0;
669 return "unavailable";
681 const char *canonical_name;
733 if (strcmp(*newval, canonical_name) != 0 &&
734 strcmp(*newval,
"UNICODE") != 0)
737 *newval = strdup(canonical_name);
745 *extra =
malloc(
sizeof(
int));
778 (
errcode(ERRCODE_INVALID_TRANSACTION_STATE),
779 errmsg(
"cannot change client_encoding in a parallel worker")));
784 elog(
LOG,
"SetClientEncoding(%d) failed", encoding);
840 *extra = (
void *) myextra;
875 if (strcmp(*newval,
"none") == 0)
879 is_superuser =
false;
927 *extra = (
void *) myextra;
bool check_transaction_deferrable(bool *newval, void **extra, GucSource source)
void assign_timezone(const char *newval, void *extra)
void assign_client_encoding(const char *newval, void *extra)
#define DatumGetIntervalP(X)
int PrepareClientEncoding(int encoding)
bool check_random_seed(double *newval, void **extra, GucSource source)
#define GUC_check_errdetail
#define PointerGetDatum(X)
Datum interval_in(PG_FUNCTION_ARGS)
void assign_XactIsoLevel(const char *newval, void *extra)
char * pstrdup(const char *in)
#define XACT_REPEATABLE_READ
#define XACT_READ_UNCOMMITTED
int pg_valid_client_encoding(const char *name)
int errcode(int sqlerrcode)
void assign_datestyle(const char *newval, void *extra)
bool check_transaction_read_only(bool *newval, void **extra, GucSource source)
#define DirectFunctionCall1(func, arg1)
int pg_strcasecmp(const char *s1, const char *s2)
bool check_timezone(char **newval, void **extra, GucSource source)
bool RecoveryInProgress(void)
#define OidIsValid(objectId)
void GUC_check_errcode(int sqlerrcode)
Oid GetSessionUserId(void)
void assign_session_authorization(const char *newval, void *extra)
bool check_XactIsoLevel(char **newval, void **extra, GucSource source)
#define SearchSysCache1(cacheId, key1)
#define XACT_SERIALIZABLE
Datum Float8GetDatum(float8 X)
Oid GetCurrentRoleId(void)
pg_tz * pg_tzset(const char *tzname)
FormData_pg_authid * Form_pg_authid
int pg_strncasecmp(const char *s1, const char *s2, size_t n)
void pfree(void *pointer)
#define ObjectIdGetDatum(X)
void SetSessionAuthorization(Oid userid, bool is_superuser)
const char * show_XactIsoLevel(void)
Datum setseed(PG_FUNCTION_ARGS)
const char * pg_get_timezone_name(pg_tz *tz)
bool SplitIdentifierString(char *rawstring, char separator, List **namelist)
#define CStringGetDatum(X)
#define USE_POSTGRES_DATES
int SetClientEncoding(int encoding)
#define ereport(elevel, rest)
#define IsParallelWorker()
pg_tz * pg_tzset_offset(long gmtoffset)
#define DirectFunctionCall3(func, arg1, arg2, arg3)
const char * show_timezone(void)
void assign_log_timezone(const char *newval, void *extra)
const char * show_role(void)
bool pg_tz_acceptable(pg_tz *tz)
void ReleaseSysCache(HeapTuple tuple)
bool check_client_encoding(char **newval, void **extra, GucSource source)
bool check_session_authorization(char **newval, void **extra, GucSource source)
bool check_role(char **newval, void **extra, GucSource source)
bool check_datestyle(char **newval, void **extra, GucSource source)
bool is_member_of_role(Oid member, Oid role)
const char * pg_encoding_to_char(int encoding)
#define HeapTupleIsValid(tuple)
const char * GetDatabaseEncodingName(void)
#define XACT_READ_COMMITTED
bool IsTransactionState(void)
bool IsSubTransaction(void)
#define GUC_check_errhint
int errmsg(const char *fmt,...)
void SetCurrentRoleId(Oid roleid, bool is_superuser)
void list_free(List *list)
bool InitializingParallelWorker
void assign_role(const char *newval, void *extra)
void assign_random_seed(double newval, void *extra)
#define HeapTupleGetOid(tuple)
const char * GetConfigOptionResetString(const char *name)
const char * show_random_seed(void)
const char * show_log_timezone(void)
bool check_log_timezone(char **newval, void **extra, GucSource source)