Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit66989aa

Browse files
committed
Added new group of read-only GUC variables to allow simple access
to certain compile-time options (FUNC_MAX_ARGS, INDEX_MAX_KEYS,NAMEDATALEN, BLCKSZ, HAVE_INT64_TIMESTAMP). Also added "category","short_desc", and "extra_desc" to the pg_settings view. Per recentdiscussion here:http://archives.postgresql.org/pgsql-patches/2003-11/msg00363.php
1 parent7f8f766 commit66989aa

File tree

4 files changed

+103
-27
lines changed

4 files changed

+103
-27
lines changed

‎src/backend/catalog/system_views.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Copyright 1996-2003, PostgreSQL Global Development Group
55
*
6-
* $PostgreSQL: pgsql/src/backend/catalog/system_views.sql,v 1.3 2003/11/29 22:39:40 pgsql Exp $
6+
* $PostgreSQL: pgsql/src/backend/catalog/system_views.sql,v 1.4 2003/12/03 18:52:00 joe Exp $
77
*/
88

99
CREATEVIEWpg_userAS
@@ -260,8 +260,8 @@ CREATE VIEW pg_locks AS
260260
CREATEVIEWpg_settingsAS
261261
SELECT*
262262
FROM pg_show_all_settings()AS A
263-
(nametext, settingtext,contexttext,vartypetext,
264-
sourcetext, min_valtext, max_valtext);
263+
(nametext, settingtext,categorytext,short_desctext,extra_desctext,
264+
contexttext, vartypetext,sourcetext, min_valtext, max_valtext);
265265

266266
CREATERULEpg_settings_uAS
267267
ONUPDATE TO pg_settings

‎src/backend/utils/misc/guc.c

Lines changed: 96 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* Written by Peter Eisentraut <peter_e@gmx.net>.
1111
*
1212
* IDENTIFICATION
13-
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.174 2003/12/01 22:08:00momjian Exp $
13+
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.175 2003/12/03 18:52:00joe Exp $
1414
*
1515
*--------------------------------------------------------------------
1616
*/
@@ -158,7 +158,11 @@ static char *server_version_string;
158158
staticchar*session_authorization_string;
159159
staticchar*timezone_string;
160160
staticchar*XactIsoLevel_string;
161-
161+
staticintmax_function_args;
162+
staticintmax_index_keys;
163+
staticintmax_identifier_length;
164+
staticintblock_size;
165+
staticboolinteger_datetimes;
162166

163167
/* Macros for freeing malloc'd pointers only if appropriate to do so */
164168
/* Some of these tests are probably redundant, but be safe ... */
@@ -304,6 +308,8 @@ const char *const config_group_names[] =
304308
gettext_noop("Version and Platform Compatibility / Other Platforms and Clients"),
305309
/* DEVELOPER_OPTIONS */
306310
gettext_noop("Developer Options"),
311+
/* COMPILE_OPTIONS */
312+
gettext_noop("Compiled-in Options"),
307313
/* help_config wants this array to be null-terminated */
308314
NULL
309315
};
@@ -842,6 +848,20 @@ static struct config_bool ConfigureNamesBool[] =
842848
true,NULL,NULL
843849
},
844850

851+
{
852+
{"integer_datetimes",PGC_INTERNAL,COMPILE_OPTIONS,
853+
gettext_noop("Datetimes are integer based"),
854+
NULL,
855+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
856+
},
857+
&integer_datetimes,
858+
#ifdefHAVE_INT64_TIMESTAMP
859+
true,NULL,NULL
860+
#else
861+
false,NULL,NULL
862+
#endif
863+
},
864+
845865
/* End-of-list marker */
846866
{
847867
{NULL,0,0,NULL,NULL},NULL, false,NULL,NULL
@@ -1238,6 +1258,46 @@ static struct config_int ConfigureNamesInt[] =
12381258
100,1,1000,NULL,NULL
12391259
},
12401260

1261+
{
1262+
{"max_function_args",PGC_INTERNAL,COMPILE_OPTIONS,
1263+
gettext_noop("Shows the maximum number of function arguments"),
1264+
NULL,
1265+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
1266+
},
1267+
&max_function_args,
1268+
FUNC_MAX_ARGS,FUNC_MAX_ARGS,FUNC_MAX_ARGS,NULL,NULL
1269+
},
1270+
1271+
{
1272+
{"max_index_keys",PGC_INTERNAL,COMPILE_OPTIONS,
1273+
gettext_noop("Shows the maximum number of index keys"),
1274+
NULL,
1275+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
1276+
},
1277+
&max_index_keys,
1278+
INDEX_MAX_KEYS,INDEX_MAX_KEYS,INDEX_MAX_KEYS,NULL,NULL
1279+
},
1280+
1281+
{
1282+
{"max_identifier_length",PGC_INTERNAL,COMPILE_OPTIONS,
1283+
gettext_noop("Shows the maximum identifier length"),
1284+
NULL,
1285+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
1286+
},
1287+
&max_identifier_length,
1288+
NAMEDATALEN-1,NAMEDATALEN-1,NAMEDATALEN-1,NULL,NULL
1289+
},
1290+
1291+
{
1292+
{"block_size",PGC_INTERNAL,COMPILE_OPTIONS,
1293+
gettext_noop("Shows size of a disk block"),
1294+
NULL,
1295+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
1296+
},
1297+
&block_size,
1298+
BLCKSZ,BLCKSZ,BLCKSZ,NULL,NULL
1299+
},
1300+
12411301
/* End-of-list marker */
12421302
{
12431303
{NULL,0,0,NULL,NULL},NULL,0,0,0,NULL,NULL
@@ -3478,25 +3538,34 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
34783538
/* setting : use _ShowOption in order to avoid duplicating the logic */
34793539
values[1]=_ShowOption(conf);
34803540

3541+
/* group */
3542+
values[2]=config_group_names[conf->group];
3543+
3544+
/* short_desc */
3545+
values[3]=conf->short_desc;
3546+
3547+
/* extra_desc */
3548+
values[4]=conf->long_desc;
3549+
34813550
/* context */
3482-
values[2]=GucContext_Names[conf->context];
3551+
values[5]=GucContext_Names[conf->context];
34833552

34843553
/* vartype */
3485-
values[3]=config_type_names[conf->vartype];
3554+
values[6]=config_type_names[conf->vartype];
34863555

34873556
/* source */
3488-
values[4]=GucSource_Names[conf->source];
3557+
values[7]=GucSource_Names[conf->source];
34893558

34903559
/* now get the type specifc attributes */
34913560
switch (conf->vartype)
34923561
{
34933562
casePGC_BOOL:
34943563
{
34953564
/* min_val */
3496-
values[5]=NULL;
3565+
values[8]=NULL;
34973566

34983567
/* max_val */
3499-
values[6]=NULL;
3568+
values[9]=NULL;
35003569
}
35013570
break;
35023571

@@ -3506,11 +3575,11 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
35063575

35073576
/* min_val */
35083577
snprintf(buffer,sizeof(buffer),"%d",lconf->min);
3509-
values[5]=pstrdup(buffer);
3578+
values[8]=pstrdup(buffer);
35103579

35113580
/* max_val */
35123581
snprintf(buffer,sizeof(buffer),"%d",lconf->max);
3513-
values[6]=pstrdup(buffer);
3582+
values[9]=pstrdup(buffer);
35143583
}
35153584
break;
35163585

@@ -3520,21 +3589,21 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
35203589

35213590
/* min_val */
35223591
snprintf(buffer,sizeof(buffer),"%g",lconf->min);
3523-
values[5]=pstrdup(buffer);
3592+
values[8]=pstrdup(buffer);
35243593

35253594
/* max_val */
35263595
snprintf(buffer,sizeof(buffer),"%g",lconf->max);
3527-
values[6]=pstrdup(buffer);
3596+
values[9]=pstrdup(buffer);
35283597
}
35293598
break;
35303599

35313600
casePGC_STRING:
35323601
{
35333602
/* min_val */
3534-
values[5]=NULL;
3603+
values[8]=NULL;
35353604

35363605
/* max_val */
3537-
values[6]=NULL;
3606+
values[9]=NULL;
35383607
}
35393608
break;
35403609

@@ -3546,10 +3615,10 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
35463615
*/
35473616

35483617
/* min_val */
3549-
values[5]=NULL;
3618+
values[8]=NULL;
35503619

35513620
/* max_val */
3552-
values[6]=NULL;
3621+
values[9]=NULL;
35533622
}
35543623
break;
35553624
}
@@ -3592,7 +3661,7 @@ show_config_by_name(PG_FUNCTION_ARGS)
35923661
* show_all_settings - equiv to SHOW ALL command but implemented as
35933662
* a Table Function.
35943663
*/
3595-
#defineNUM_PG_SETTINGS_ATTS7
3664+
#defineNUM_PG_SETTINGS_ATTS10
35963665

35973666
Datum
35983667
show_all_settings(PG_FUNCTION_ARGS)
@@ -3626,15 +3695,21 @@ show_all_settings(PG_FUNCTION_ARGS)
36263695
TEXTOID,-1,0, false);
36273696
TupleDescInitEntry(tupdesc, (AttrNumber)2,"setting",
36283697
TEXTOID,-1,0, false);
3629-
TupleDescInitEntry(tupdesc, (AttrNumber)3,"context",
3698+
TupleDescInitEntry(tupdesc, (AttrNumber)3,"category",
3699+
TEXTOID,-1,0, false);
3700+
TupleDescInitEntry(tupdesc, (AttrNumber)4,"short_desc",
3701+
TEXTOID,-1,0, false);
3702+
TupleDescInitEntry(tupdesc, (AttrNumber)5,"extra_desc",
3703+
TEXTOID,-1,0, false);
3704+
TupleDescInitEntry(tupdesc, (AttrNumber)6,"context",
36303705
TEXTOID,-1,0, false);
3631-
TupleDescInitEntry(tupdesc, (AttrNumber)4,"vartype",
3706+
TupleDescInitEntry(tupdesc, (AttrNumber)7,"vartype",
36323707
TEXTOID,-1,0, false);
3633-
TupleDescInitEntry(tupdesc, (AttrNumber)5,"source",
3708+
TupleDescInitEntry(tupdesc, (AttrNumber)8,"source",
36343709
TEXTOID,-1,0, false);
3635-
TupleDescInitEntry(tupdesc, (AttrNumber)6,"min_val",
3710+
TupleDescInitEntry(tupdesc, (AttrNumber)9,"min_val",
36363711
TEXTOID,-1,0, false);
3637-
TupleDescInitEntry(tupdesc, (AttrNumber)7,"max_val",
3712+
TupleDescInitEntry(tupdesc, (AttrNumber)10,"max_val",
36383713
TEXTOID,-1,0, false);
36393714

36403715
/* allocate a slot for a tuple with this tupdesc */

‎src/include/utils/guc_tables.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
99
*
10-
* $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.7 2003/11/29 22:41:15 pgsql Exp $
10+
* $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.8 2003/12/03 18:52:00 joe Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -50,7 +50,8 @@ enum config_group
5050
COMPAT_OPTIONS,
5151
COMPAT_OPTIONS_PREVIOUS,
5252
COMPAT_OPTIONS_CLIENT,
53-
DEVELOPER_OPTIONS
53+
DEVELOPER_OPTIONS,
54+
COMPILE_OPTIONS
5455
};
5556

5657
/*

‎src/test/regress/expected/rules.out

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1278,7 +1278,7 @@ SELECT viewname, definition FROM pg_views WHERE schemaname <> 'information_schem
12781278
pg_indexes | SELECT n.nspname AS schemaname, c.relname AS tablename, i.relname AS indexname, pg_get_indexdef(i.oid) AS indexdef FROM (((pg_index x JOIN pg_class c 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 = 'r'::"char") AND (i.relkind = 'i'::"char"));
12791279
pg_locks | SELECT l.relation, l."database", l."transaction", l.pid, l."mode", l.granted FROM pg_lock_status() l(relation oid, "database" oid, "transaction" xid, pid integer, "mode" text, granted boolean);
12801280
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);
1281-
pg_settings | SELECT a.name, a.setting, a.context, a.vartype, a.source, a.min_val, a.max_val FROM pg_show_all_settings() a(name text, setting text, context text, vartype text, source text, min_val text, max_val text);
1281+
pg_settings | SELECT a.name, a.setting, a.category, a.short_desc, a.extra_desc, a.context, a.vartype, a.source, a.min_val, a.max_val FROM pg_show_all_settings() a(name text, setting text, category text, short_desc text, extra_desc text, context text, vartype text, source text, min_val text, max_val text);
12821282
pg_stat_activity | SELECT d.oid AS datid, d.datname, pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_userid(s.backendid) AS usesysid, u.usename, pg_stat_get_backend_activity(s.backendid) AS current_query, pg_stat_get_backend_activity_start(s.backendid) AS query_start FROM pg_database d, (SELECT pg_stat_get_backend_idset() AS backendid) s, pg_shadow u WHERE ((pg_stat_get_backend_dbid(s.backendid) = d.oid) AND (pg_stat_get_backend_userid(s.backendid) = u.usesysid));
12831283
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 = 'r'::"char");
12841284
pg_stat_all_tables | SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, pg_stat_get_numscans(c.oid) AS seq_scan, pg_stat_get_tuples_returned(c.oid) AS seq_tup_read, sum(pg_stat_get_numscans(i.indexrelid)) AS idx_scan, sum(pg_stat_get_tuples_fetched(i.indexrelid)) AS idx_tup_fetch, pg_stat_get_tuples_inserted(c.oid) AS n_tup_ins, pg_stat_get_tuples_updated(c.oid) AS n_tup_upd, pg_stat_get_tuples_deleted(c.oid) AS n_tup_del FROM ((pg_class c LEFT JOIN pg_index i ON ((c.oid = i.indrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char") GROUP BY c.oid, n.nspname, c.relname;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp