53 (
errcode(ERRCODE_INVALID_TRANSACTION_STATE),
54 errmsg(
"cannot set parameters during a parallel operation")));
77 if (strcmp(
stmt->name,
"TRANSACTION") == 0)
83 foreach(head,
stmt->args)
87 if (strcmp(item->
defname,
"transaction_isolation") == 0)
90 else if (strcmp(item->
defname,
"transaction_read_only") == 0)
93 else if (strcmp(item->
defname,
"transaction_deferrable") == 0)
97 elog(
ERROR,
"unexpected SET TRANSACTION element: %s",
101 else if (strcmp(
stmt->name,
"SESSION CHARACTERISTICS") == 0)
105 foreach(head,
stmt->args)
109 if (strcmp(item->
defname,
"transaction_isolation") == 0)
112 else if (strcmp(item->
defname,
"transaction_read_only") == 0)
115 else if (strcmp(item->
defname,
"transaction_deferrable") == 0)
119 elog(
ERROR,
"unexpected SET SESSION element: %s",
123 else if (strcmp(
stmt->name,
"TRANSACTION SNAPSHOT") == 0)
129 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
130 errmsg(
"SET LOCAL TRANSACTION SNAPSHOT is not implemented")));
136 elog(
ERROR,
"unexpected SET MULTI element: %s",
217 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
218 errmsg(
"SET %s takes only one argument",
name)));
260 if (typeName != NULL)
273 Assert(typoid == INTERVALOID);
299 elog(
ERROR,
"unrecognized node type: %d",
341 (
errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED),
342 errmsg(
"SET requires parameter name")));
463 bool isnull[3] = {
false,
false,
false};
480 for (
int i = 0;
i < num_vars;
i++)
544#define MAX_GUC_FLAGS 6
656 snprintf(buffer,
sizeof(buffer),
"%d", lconf->
min);
660 snprintf(buffer,
sizeof(buffer),
"%d", lconf->
max);
681 snprintf(buffer,
sizeof(buffer),
"%g", lconf->
min);
685 snprintf(buffer,
sizeof(buffer),
"%g", lconf->
max);
745 "{\"",
"\"}",
"\",\"");
846#define NUM_PG_SETTINGS_ATTS 17
899 TEXTARRAYOID, -1, 0);
938 while (call_cntr < max_calls)
986#define NUM_PG_FILE_SETTINGS_ATTS 7
998 for (seqno = 1; conf != NULL; conf = conf->next, seqno++)
1004 memset(nulls, 0,
sizeof(nulls));
bool has_privs_of_role(Oid member, Oid role)
#define PG_RETURN_ARRAYTYPE_P(x)
ArrayType * construct_array_builtin(Datum *elems, int nelems, Oid elmtype)
Datum interval_out(PG_FUNCTION_ARGS)
Datum interval_in(PG_FUNCTION_ARGS)
static Datum values[MAXATTR]
#define CStringGetTextDatum(s)
#define TextDatumGetCString(d)
#define Assert(condition)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
HeapTuple BuildTupleFromCStrings(AttInMetadata *attinmeta, char **values)
void do_tup_output(TupOutputState *tstate, const Datum *values, const bool *isnull)
const TupleTableSlotOps TTSOpsVirtual
void end_tup_output(TupOutputState *tstate)
TupOutputState * begin_tup_output_tupdesc(DestReceiver *dest, TupleDesc tupdesc, const TupleTableSlotOps *tts_ops)
AttInMetadata * TupleDescGetAttInMetadata(TupleDesc tupdesc)
#define do_text_output_oneline(tstate, str_to_emit)
#define DirectFunctionCall1(func, arg1)
#define PG_GETARG_DATUM(n)
#define PG_RETURN_TEXT_P(x)
#define PG_GETARG_BOOL(n)
#define DirectFunctionCall3(func, arg1, arg2, arg3)
void InitMaterializedSRF(FunctionCallInfo fcinfo, bits32 flags)
#define SRF_IS_FIRSTCALL()
#define SRF_PERCALL_SETUP()
#define SRF_RETURN_NEXT(_funcctx, _result)
#define SRF_FIRSTCALL_INIT()
static Datum HeapTupleGetDatum(const HeapTupleData *tuple)
#define SRF_RETURN_DONE(_funcctx)
const char * get_config_unit_name(int flags)
char * GetConfigOptionByName(const char *name, const char **varname, bool missing_ok)
struct config_generic ** get_guc_variables(int *num_vars)
struct config_generic * find_option(const char *name, bool create_placeholders, bool skip_errors, int elevel)
char * config_enum_get_options(struct config_enum *record, const char *prefix, const char *suffix, const char *separator)
void ResetAllOptions(void)
const char * config_enum_lookup_by_value(struct config_enum *record, int val)
char * ShowGUCOption(struct config_generic *record, bool use_units)
ConfigVariable * ProcessConfigFileInternal(GucContext context, bool applySettings, int elevel)
int guc_name_compare(const char *namea, const char *nameb)
int set_config_option(const char *name, const char *value, GucContext context, GucSource source, GucAction action, bool changeVal, int elevel, bool is_reload)
#define GUC_SUPERUSER_ONLY
#define GUC_RUNTIME_COMPUTED
#define GUC_NOT_IN_SAMPLE
void GetPGVariable(const char *name, DestReceiver *dest)
static void ShowGUCConfigOption(const char *name, DestReceiver *dest)
Datum set_config_by_name(PG_FUNCTION_ARGS)
static char * flatten_set_variable_args(const char *name, List *args)
Datum show_config_by_name(PG_FUNCTION_ARGS)
#define NUM_PG_SETTINGS_ATTS
char * ExtractSetVariableArgs(VariableSetStmt *stmt)
TupleDesc GetPGVariableResultDesc(const char *name)
#define NUM_PG_FILE_SETTINGS_ATTS
void SetPGVariable(const char *name, List *args, bool is_local)
bool ConfigOptionIsVisible(struct config_generic *conf)
Datum show_all_file_settings(PG_FUNCTION_ARGS)
void ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel)
Datum show_config_by_name_missing_ok(PG_FUNCTION_ARGS)
Datum pg_settings_get_flags(PG_FUNCTION_ARGS)
static void GetConfigOptionValues(struct config_generic *conf, const char **values)
Datum show_all_settings(PG_FUNCTION_ARGS)
static void ShowAllGUCConfig(DestReceiver *dest)
const char *const GucContext_Names[]
const char *const GucSource_Names[]
const char *const config_type_names[]
const char *const config_group_names[]
#define GUC_PENDING_RESTART
char * pstrdup(const char *in)
void pfree(void *pointer)
#define IsA(nodeptr, _type_)
#define castNode(_type_, nodeptr)
#define InvokeObjectPostAlterHookArgStr(classId, objectName, subId, auxiliaryId, is_internal)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
void typenameTypeIdAndMod(ParseState *pstate, const TypeName *typeName, Oid *typeid_p, int32 *typmod_p)
static int list_length(const List *l)
#define linitial_node(type, l)
static ListCell * list_head(const List *l)
static Datum PointerGetDatum(const void *X)
static Datum BoolGetDatum(bool X)
static Datum ObjectIdGetDatum(Oid X)
static char * DatumGetCString(Datum X)
static Pointer DatumGetPointer(Datum X)
static Datum CStringGetDatum(const char *X)
static Datum Int32GetDatum(int32 X)
const char * quote_identifier(const char *ident)
void ImportSnapshot(const char *idstr)
void appendStringInfo(StringInfo str, const char *fmt,...)
void appendStringInfoString(StringInfo str, const char *s)
void initStringInfo(StringInfo str)
AttInMetadata * attinmeta
MemoryContext multi_call_memory_ctx
Tuplestorestate * setResult
TupleDesc CreateTemplateTupleDesc(int natts)
void TupleDescInitBuiltinEntry(TupleDesc desc, AttrNumber attributeNumber, const char *attributeName, Oid oidtypeid, int32 typmod, int attdim)
void TupleDescInitEntry(TupleDesc desc, AttrNumber attributeNumber, const char *attributeName, Oid oidtypeid, int32 typmod, int attdim)
void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc, const Datum *values, const bool *isnull)
text * cstring_to_text(const char *s)
void WarnNoTransactionBlock(bool isTopLevel, const char *stmtType)
bool IsInParallelMode(void)