Index: doc/src/sgml/catalogs.sgml =================================================================== RCS file: /home/gsmith/cvsrepo/pgsql/doc/src/sgml/catalogs.sgml,v retrieving revision 2.174 diff -c -r2.174 catalogs.sgml *** doc/src/sgml/catalogs.sgml 15 Sep 2008 18:43:41 -0000 2.174 --- doc/src/sgml/catalogs.sgml 16 Sep 2008 03:18:42 -0000 *************** *** 6422,6427 **** --- 6422,6433 ---- values) + default_val + text + Default value assumed at server startup if the parameter is not + otherwise set + + sourcefile text Input file the current value was set from (NULL for values set in Index: src/backend/utils/misc/guc.c =================================================================== RCS file: /home/gsmith/cvsrepo/pgsql/src/backend/utils/misc/guc.c,v retrieving revision 1.472 diff -c -r1.472 guc.c *** src/backend/utils/misc/guc.c 10 Sep 2008 19:16:22 -0000 1.472 --- src/backend/utils/misc/guc.c 16 Sep 2008 03:44:09 -0000 *************** *** 6087,6092 **** --- 6087,6094 ---- { case PGC_BOOL: { + struct config_bool *lconf = (struct config_bool *) conf; + /* min_val */ values[9] = NULL; *************** *** 6095,6100 **** --- 6097,6106 ---- /* enumvals */ values[11] = NULL; + + /* default_val */ + snprintf(buffer, sizeof(buffer), "%s", lconf->boot_val ? "on" : "off"); + values[12] = pstrdup(buffer); } break; *************** *** 6112,6117 **** --- 6118,6127 ---- /* enumvals */ values[11] = NULL; + + /* default_val */ + snprintf(buffer, sizeof(buffer), "%d", lconf->boot_val); + values[12] = pstrdup(buffer); } break; *************** *** 6129,6139 **** --- 6139,6155 ---- /* enumvals */ values[11] = NULL; + + /* default_val */ + snprintf(buffer, sizeof(buffer), "%g", lconf->boot_val); + values[12] = pstrdup(buffer); } break; case PGC_STRING: { + struct config_string *lconf = (struct config_string *) conf; + /* min_val */ values[9] = NULL; *************** *** 6142,6152 **** --- 6158,6180 ---- /* enumvals */ values[11] = NULL; + + /* default_val */ + if (lconf->boot_val == NULL) + { + values[12] = NULL; + } else + { + snprintf(buffer, sizeof(buffer), "%s", lconf->boot_val); + values[12] = pstrdup(buffer); + } } break; case PGC_ENUM: { + struct config_enum *lconf = (struct config_enum *) conf; + /* min_val */ values[9] = NULL; *************** *** 6155,6160 **** --- 6183,6193 ---- /* enumvals */ values[11] = config_enum_get_options((struct config_enum *) conf, "", ""); + + /* default_val */ + snprintf(buffer, sizeof(buffer), "%s", + config_enum_lookup_by_value(lconf, lconf->boot_val)); + values[12] = pstrdup(buffer); } break; *************** *** 6172,6177 **** --- 6205,6213 ---- /* enumvals */ values[11] = NULL; + + /* default_val */ + values[12] = NULL; } break; } *************** *** 6179,6192 **** /* If the setting came from a config file, set the source location */ if (conf->source == PGC_S_FILE) { ! values[12] = conf->sourcefile; snprintf(buffer, sizeof(buffer), "%d", conf->sourceline); ! values[13] = pstrdup(buffer); } else { - values[12] = NULL; values[13] = NULL; } } --- 6215,6228 ---- /* If the setting came from a config file, set the source location */ if (conf->source == PGC_S_FILE) { ! values[13] = conf->sourcefile; snprintf(buffer, sizeof(buffer), "%d", conf->sourceline); ! values[14] = pstrdup(buffer); } else { values[13] = NULL; + values[14] = NULL; } } *************** *** 6223,6229 **** * show_all_settings - equiv to SHOW ALL command but implemented as * a Table Function. */ ! #define NUM_PG_SETTINGS_ATTS 14 Datum show_all_settings(PG_FUNCTION_ARGS) --- 6259,6265 ---- * show_all_settings - equiv to SHOW ALL command but implemented as * a Table Function. */ ! #define NUM_PG_SETTINGS_ATTS 15 Datum show_all_settings(PG_FUNCTION_ARGS) *************** *** 6275,6283 **** TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) 12, "enumvals", TEXTOID, -1, 0); ! TupleDescInitEntry(tupdesc, (AttrNumber) 13, "sourcefile", TEXTOID, -1, 0); ! TupleDescInitEntry(tupdesc, (AttrNumber) 14, "sourceline", INT4OID, -1, 0); /* --- 6311,6321 ---- TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) 12, "enumvals", TEXTOID, -1, 0); ! TupleDescInitEntry(tupdesc, (AttrNumber) 13, "default_val", ! TEXTOID, -1, 0); ! TupleDescInitEntry(tupdesc, (AttrNumber) 14, "sourcefile", TEXTOID, -1, 0); ! TupleDescInitEntry(tupdesc, (AttrNumber) 15, "sourceline", INT4OID, -1, 0); /* Index: src/include/catalog/pg_proc.h =================================================================== RCS file: /home/gsmith/cvsrepo/pgsql/src/include/catalog/pg_proc.h,v retrieving revision 1.514 diff -c -r1.514 pg_proc.h *** src/include/catalog/pg_proc.h 10 Sep 2008 18:09:20 -0000 1.514 --- src/include/catalog/pg_proc.h 16 Sep 2008 03:31:53 -0000 *************** *** 3159,3165 **** DESCR("SHOW X as a function"); DATA(insert OID = 2078 ( set_config PGNSP PGUID 12 1 0 0 f f f f v 3 25 "25 25 16" _null_ _null_ _null_ set_config_by_name _null_ _null_ _null_ )); DESCR("SET X as a function"); ! DATA(insert OID = 2084 ( pg_show_all_settings PGNSP PGUID 12 1 1000 0 f f t t s 0 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,25,25,23}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,sourcefile,sourceline}" show_all_settings _null_ _null_ _null_ )); DESCR("SHOW ALL as a function"); DATA(insert OID = 1371 ( pg_lock_status PGNSP PGUID 12 1 1000 0 f f t t v 0 2249 "" "{25,26,26,23,21,25,28,26,26,21,25,23,25,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted}" pg_lock_status _null_ _null_ _null_ )); DESCR("view system lock information"); --- 3159,3165 ---- DESCR("SHOW X as a function"); DATA(insert OID = 2078 ( set_config PGNSP PGUID 12 1 0 0 f f f f v 3 25 "25 25 16" _null_ _null_ _null_ set_config_by_name _null_ _null_ _null_ )); DESCR("SET X as a function"); ! DATA(insert OID = 2084 ( pg_show_all_settings PGNSP PGUID 12 1 1000 0 f f t t s 0 2249 "" "{25,25,25,25,25,25,25,25,25,25,25,25,25,25,23}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,default_val,sourcefile,sourceline}" show_all_settings _null_ _null_ _null_ )); DESCR("SHOW ALL as a function"); DATA(insert OID = 1371 ( pg_lock_status PGNSP PGUID 12 1 1000 0 f f t t v 0 2249 "" "{25,26,26,23,21,25,28,26,26,21,25,23,25,16}" "{o,o,o,o,o,o,o,o,o,o,o,o,o,o}" "{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted}" pg_lock_status _null_ _null_ _null_ )); DESCR("view system lock information"); Index: src/test/regress/expected/rules.out =================================================================== RCS file: /home/gsmith/cvsrepo/pgsql/src/test/regress/expected/rules.out,v retrieving revision 1.142 diff -c -r1.142 rules.out *** src/test/regress/expected/rules.out 10 Sep 2008 18:09:20 -0000 1.142 --- src/test/regress/expected/rules.out 16 Sep 2008 03:33:11 -0000 *************** *** 1287,1293 **** pg_prepared_xacts | SELECT p.transaction, p.gid, p.prepared, u.rolname AS owner, d.datname AS database FROM ((pg_prepared_xact() p(transaction, gid, prepared, ownerid, dbid) LEFT JOIN pg_authid u ON ((p.ownerid = u.oid))) LEFT JOIN pg_database d ON ((p.dbid = d.oid))); pg_roles | SELECT pg_authid.rolname, pg_authid.rolsuper, pg_authid.rolinherit, pg_authid.rolcreaterole, pg_authid.rolcreatedb, pg_authid.rolcatupdate, pg_authid.rolcanlogin, pg_authid.rolconnlimit, '********'::text AS rolpassword, pg_authid.rolvaliduntil, pg_authid.rolconfig, pg_authid.oid FROM pg_authid; pg_rules | SELECT n.nspname AS schemaname, c.relname AS tablename, r.rulename, pg_get_ruledef(r.oid) AS definition FROM ((pg_rewrite r JOIN pg_class c ON ((c.oid = r.ev_class))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (r.rulename <> '_RETURN'::name); ! pg_settings | SELECT a.name, a.setting, a.unit, a.category, a.short_desc, a.extra_desc, a.context, a.vartype, a.source, a.min_val, a.max_val, a.enumvals, a.sourcefile, a.sourceline FROM pg_show_all_settings() a(name, setting, unit, category, short_desc, extra_desc, context, vartype, source, min_val, max_val, enumvals, sourcefile, sourceline); pg_shadow | SELECT pg_authid.rolname AS usename, pg_authid.oid AS usesysid, pg_authid.rolcreatedb AS usecreatedb, pg_authid.rolsuper AS usesuper, pg_authid.rolcatupdate AS usecatupd, pg_authid.rolpassword AS passwd, (pg_authid.rolvaliduntil)::abstime AS valuntil, pg_authid.rolconfig AS useconfig FROM pg_authid WHERE pg_authid.rolcanlogin; pg_stat_activity | SELECT s.datid, d.datname, s.procpid, s.usesysid, u.rolname AS usename, s.current_query, s.waiting, s.xact_start, s.query_start, s.backend_start, s.client_addr, s.client_port FROM pg_database d, pg_stat_get_activity(NULL::integer) s(datid, procpid, usesysid, current_query, waiting, xact_start, query_start, backend_start, client_addr, client_port), pg_authid u WHERE ((s.datid = d.oid) AND (s.usesysid = u.oid)); pg_stat_all_indexes | SELECT c.oid AS relid, i.oid AS indexrelid, n.nspname AS schemaname, c.relname, i.relname AS indexrelname, pg_stat_get_numscans(i.oid) AS idx_scan, pg_stat_get_tuples_returned(i.oid) AS idx_tup_read, pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch FROM (((pg_class c JOIN pg_index x ON ((c.oid = x.indrelid))) JOIN pg_class i ON ((i.oid = x.indexrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char"])); --- 1287,1293 ---- pg_prepared_xacts | SELECT p.transaction, p.gid, p.prepared, u.rolname AS owner, d.datname AS database FROM ((pg_prepared_xact() p(transaction, gid, prepared, ownerid, dbid) LEFT JOIN pg_authid u ON ((p.ownerid = u.oid))) LEFT JOIN pg_database d ON ((p.dbid = d.oid))); pg_roles | SELECT pg_authid.rolname, pg_authid.rolsuper, pg_authid.rolinherit, pg_authid.rolcreaterole, pg_authid.rolcreatedb, pg_authid.rolcatupdate, pg_authid.rolcanlogin, pg_authid.rolconnlimit, '********'::text AS rolpassword, pg_authid.rolvaliduntil, pg_authid.rolconfig, pg_authid.oid FROM pg_authid; pg_rules | SELECT n.nspname AS schemaname, c.relname AS tablename, r.rulename, pg_get_ruledef(r.oid) AS definition FROM ((pg_rewrite r JOIN pg_class c ON ((c.oid = r.ev_class))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (r.rulename <> '_RETURN'::name); ! pg_settings | SELECT a.name, a.setting, a.unit, a.category, a.short_desc, a.extra_desc, a.context, a.vartype, a.source, a.min_val, a.max_val, a.enumvals, a.default_val, a.sourcefile, a.sourceline FROM pg_show_all_settings() a(name, setting, unit, category, short_desc, extra_desc, context, vartype, source, min_val, max_val, enumvals, default_val, sourcefile, sourceline); pg_shadow | SELECT pg_authid.rolname AS usename, pg_authid.oid AS usesysid, pg_authid.rolcreatedb AS usecreatedb, pg_authid.rolsuper AS usesuper, pg_authid.rolcatupdate AS usecatupd, pg_authid.rolpassword AS passwd, (pg_authid.rolvaliduntil)::abstime AS valuntil, pg_authid.rolconfig AS useconfig FROM pg_authid WHERE pg_authid.rolcanlogin; pg_stat_activity | SELECT s.datid, d.datname, s.procpid, s.usesysid, u.rolname AS usename, s.current_query, s.waiting, s.xact_start, s.query_start, s.backend_start, s.client_addr, s.client_port FROM pg_database d, pg_stat_get_activity(NULL::integer) s(datid, procpid, usesysid, current_query, waiting, xact_start, query_start, backend_start, client_addr, client_port), pg_authid u WHERE ((s.datid = d.oid) AND (s.usesysid = u.oid)); pg_stat_all_indexes | SELECT c.oid AS relid, i.oid AS indexrelid, n.nspname AS schemaname, c.relname, i.relname AS indexrelname, pg_stat_get_numscans(i.oid) AS idx_scan, pg_stat_get_tuples_returned(i.oid) AS idx_tup_read, pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch FROM (((pg_class c JOIN pg_index x ON ((c.oid = x.indrelid))) JOIN pg_class i ON ((i.oid = x.indexrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char"]));