diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index bb7f742f69fbdaf9c94188b7203b1ec8f6c68fe8..91d1849d529bf8ff6df20859a3e70d6ee8a4fa55 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.53 2002/07/18 04:47:17 momjian Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.54 2002/07/30 16:20:03 momjian Exp $ --> <chapter id="xfunc"> @@ -1556,6 +1556,14 @@ HeapTuple BuildTupleFromCStrings(AttInMetadata *attinmeta, char **values) should be set to NULL. </para> + <para> + In order to get an attribute "in" function and typelem value given the + typeid, use +<programlisting> +void get_type_metadata(Oid typeid, Oid *attinfuncid, Oid *attelem) +</programlisting> + </para> + <para> Finally, in order to return a tuple using the SRF portion of the API (described below), the tuple must be converted into a Datum. Use diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index c90c52e8ccfd5a9f7dc9ac53903d2ec60e447bb1..4a03c95277b6d356f484de5098a461a1ce09de6d 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -5,7 +5,7 @@ * command, configuration file, and command line options. * See src/backend/utils/misc/README for more information. * - * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.75 2002/07/20 15:12:55 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.76 2002/07/30 16:20:03 momjian Exp $ * * Copyright 2000 by PostgreSQL Global Development Group * Written by Peter Eisentraut <peter_e@gmx.net>. @@ -2347,13 +2347,21 @@ GetConfigOptionByName(const char *name, const char **varname) * form of name. Return value is palloc'd. */ char * -GetConfigOptionByNum(int varnum, const char **varname) +GetConfigOptionByNum(int varnum, const char **varname, bool *noshow) { - struct config_generic *conf = guc_variables[varnum]; + struct config_generic *conf; + + /* check requested variable number valid */ + Assert((varnum >= 0) && (varnum < num_guc_variables)); + + conf = guc_variables[varnum]; if (varname) *varname = conf->name; + if (noshow) + *noshow = (conf->flags & GUC_NO_SHOW_ALL) ? true : false; + return _ShowOption(conf); } diff --git a/src/include/funcapi.h b/src/include/funcapi.h index f00b93b865b518d9f0cc9cccd72f7dc77b9ae51e..294147538206bc2aa2f8e7c08f825f6d6766209d 100644 --- a/src/include/funcapi.h +++ b/src/include/funcapi.h @@ -139,6 +139,8 @@ typedef struct * HeapTuple BuildTupleFromCStrings(AttInMetadata *attinmeta, char **values) - * build a HeapTuple given user data in C string form. values is an array * of C strings, one for each attribute of the return tuple. + * void get_type_metadata(Oid typeid, Oid *attinfuncid, Oid *attelem) - Get + * an attribute "in" function and typelem value given the typeid. * * Macro declarations: * TupleGetDatum(TupleTableSlot *slot, HeapTuple tuple) - get a Datum diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 17e4f3d652f848b8acc90fa0cbe5049f2a4d84e7..b6d1421ec49a48cf4eb935433b78146544c8016d 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -4,7 +4,7 @@ * External declarations pertaining to backend/utils/misc/guc.c and * backend/utils/misc/guc-file.l * - * $Id: guc.h,v 1.19 2002/07/20 15:12:56 tgl Exp $ + * $Id: guc.h,v 1.20 2002/07/30 16:20:03 momjian Exp $ */ #ifndef GUC_H #define GUC_H @@ -87,7 +87,7 @@ extern bool set_config_option(const char *name, const char *value, extern void ShowGUCConfigOption(const char *name); extern void ShowAllGUCConfig(void); extern char *GetConfigOptionByName(const char *name, const char **varname); -extern char *GetConfigOptionByNum(int varnum, const char **varname); +extern char *GetConfigOptionByNum(int varnum, const char **varname, bool *noshow); extern int GetNumConfigOptions(void); extern void SetPGVariable(const char *name, List *args, bool is_local);