diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 198b227..dd55b30 100644
*** a/src/backend/utils/misc/guc.c
--- /bsrc/backend/utils/misc/guc.c
*************** static char *config_enum_get_options(str
*** 173,262 ****
   * Options for enum values defined in this module.
   */
  static const struct config_enum_entry message_level_options[] = {
! 	{"debug", DEBUG2},
! 	{"debug5", DEBUG5},
! 	{"debug4", DEBUG4},
! 	{"debug3", DEBUG3},
! 	{"debug2", DEBUG2},
! 	{"debug1", DEBUG1},
! 	{"log", LOG},
! 	{"info", INFO},
! 	{"notice", NOTICE},
! 	{"warning", WARNING},
! 	{"error", ERROR},
! 	{"fatal", FATAL},
! 	{"panic", PANIC},
! 	{NULL, 0}
  };
  
  static const struct config_enum_entry log_error_verbosity_options[] = {
! 	{"default", PGERROR_DEFAULT},
! 	{"terse", PGERROR_TERSE},
! 	{"verbose", PGERROR_VERBOSE},
! 	{NULL, 0}
  };
  
  static const struct config_enum_entry log_statement_options[] = {
! 	{"none", LOGSTMT_NONE},
! 	{"ddl", LOGSTMT_DDL},
! 	{"mod", LOGSTMT_MOD},
! 	{"all", LOGSTMT_ALL},
! 	{NULL, 0}
  };
  
  static const struct config_enum_entry regex_flavor_options[] = {
!     {"advanced", REG_ADVANCED},
!     {"extended", REG_EXTENDED},
!     {"basic", REG_BASIC},
!     {NULL, 0}
  };
  
  static const struct config_enum_entry isolation_level_options[] = {
! 	{"serializable", XACT_SERIALIZABLE},
! 	{"repeatable read", XACT_REPEATABLE_READ},
! 	{"read committed", XACT_READ_COMMITTED},
! 	{"read uncommitted", XACT_READ_UNCOMMITTED},
  	{NULL, 0}
  };
  
  static const struct config_enum_entry session_replication_role_options[] = {
! 	{"origin", SESSION_REPLICATION_ROLE_ORIGIN},
! 	{"replica", SESSION_REPLICATION_ROLE_REPLICA},
! 	{"local", SESSION_REPLICATION_ROLE_LOCAL},
! 	{NULL, 0}
  };
  
  #ifdef HAVE_SYSLOG
  static const struct config_enum_entry syslog_facility_options[] = {
! 	{"local0", LOG_LOCAL0},
! 	{"local1", LOG_LOCAL1},
! 	{"local2", LOG_LOCAL2},
! 	{"local3", LOG_LOCAL3},
! 	{"local4", LOG_LOCAL4},
! 	{"local5", LOG_LOCAL5},
! 	{"local6", LOG_LOCAL6},
! 	{"local7", LOG_LOCAL7},
  	{NULL, 0}
  };
  #endif
  
  static const struct config_enum_entry track_function_options[] = {
! 	{"none", TRACK_FUNC_OFF},
! 	{"pl", TRACK_FUNC_PL},
! 	{"all", TRACK_FUNC_ALL},
! 	{NULL, 0}
  };
  
  static const struct config_enum_entry xmlbinary_options[] = {
! 	{"base64", XMLBINARY_BASE64},
! 	{"hex", XMLBINARY_HEX},
! 	{NULL, 0}
  };
  
  static const struct config_enum_entry xmloption_options[] = {
! 	{"content", XMLOPTION_CONTENT},
! 	{"document", XMLOPTION_DOCUMENT},
! 	{NULL, 0}
  };
  
  /*
--- 173,262 ----
   * Options for enum values defined in this module.
   */
  static const struct config_enum_entry message_level_options[] = {
! 	{"debug", DEBUG2, false},
! 	{"debug5", DEBUG5, false},
! 	{"debug4", DEBUG4, false},
! 	{"debug3", DEBUG3, false},
! 	{"debug2", DEBUG2, false},
! 	{"debug1", DEBUG1, false},
! 	{"log", LOG, false},
! 	{"info", INFO, false},
! 	{"notice", NOTICE, false},
! 	{"warning", WARNING, false},
! 	{"error", ERROR, false},
! 	{"fatal", FATAL, false},
! 	{"panic", PANIC, false},
! 	{NULL, 0, false}
  };
  
  static const struct config_enum_entry log_error_verbosity_options[] = {
! 	{"default", PGERROR_DEFAULT, false},
! 	{"terse", PGERROR_TERSE, false},
! 	{"verbose", PGERROR_VERBOSE, false},
! 	{NULL, 0, false}
  };
  
  static const struct config_enum_entry log_statement_options[] = {
! 	{"none", LOGSTMT_NONE, false},
! 	{"ddl", LOGSTMT_DDL, false},
! 	{"mod", LOGSTMT_MOD, false},
! 	{"all", LOGSTMT_ALL, false},
! 	{NULL, 0, false}
  };
  
  static const struct config_enum_entry regex_flavor_options[] = {
!     {"advanced", REG_ADVANCED, false},
!     {"extended", REG_EXTENDED, false},
!     {"basic", REG_BASIC, false},
!     {NULL, 0, false}
  };
  
  static const struct config_enum_entry isolation_level_options[] = {
! 	{"serializable", XACT_SERIALIZABLE, false},
! 	{"repeatable read", XACT_REPEATABLE_READ, false},
! 	{"read committed", XACT_READ_COMMITTED, false},
! 	{"read uncommitted", XACT_READ_UNCOMMITTED, false},
  	{NULL, 0}
  };
  
  static const struct config_enum_entry session_replication_role_options[] = {
! 	{"origin", SESSION_REPLICATION_ROLE_ORIGIN, false},
! 	{"replica", SESSION_REPLICATION_ROLE_REPLICA, false},
! 	{"local", SESSION_REPLICATION_ROLE_LOCAL, false},
! 	{NULL, 0, false}
  };
  
  #ifdef HAVE_SYSLOG
  static const struct config_enum_entry syslog_facility_options[] = {
! 	{"local0", LOG_LOCAL0, false},
! 	{"local1", LOG_LOCAL1, false},
! 	{"local2", LOG_LOCAL2, false},
! 	{"local3", LOG_LOCAL3, false},
! 	{"local4", LOG_LOCAL4, false},
! 	{"local5", LOG_LOCAL5, false},
! 	{"local6", LOG_LOCAL6, false},
! 	{"local7", LOG_LOCAL7, false},
  	{NULL, 0}
  };
  #endif
  
  static const struct config_enum_entry track_function_options[] = {
! 	{"none", TRACK_FUNC_OFF, false},
! 	{"pl", TRACK_FUNC_PL, false},
! 	{"all", TRACK_FUNC_ALL, false},
! 	{NULL, 0, false}
  };
  
  static const struct config_enum_entry xmlbinary_options[] = {
! 	{"base64", XMLBINARY_BASE64, false},
! 	{"hex", XMLBINARY_HEX, false},
! 	{NULL, 0, false}
  };
  
  static const struct config_enum_entry xmloption_options[] = {
! 	{"content", XMLOPTION_CONTENT, false},
! 	{"document", XMLOPTION_DOCUMENT, false},
! 	{NULL, 0, false}
  };
  
  /*
*************** static const struct config_enum_entry xm
*** 264,279 ****
   * accept all the likely variants of "on" and "off".
   */
  static const struct config_enum_entry backslash_quote_options[] = {
! 	{"safe_encoding", BACKSLASH_QUOTE_SAFE_ENCODING},
! 	{"on", BACKSLASH_QUOTE_ON},
! 	{"off", BACKSLASH_QUOTE_OFF},
! 	{"true", BACKSLASH_QUOTE_ON},
! 	{"false", BACKSLASH_QUOTE_OFF},
! 	{"yes", BACKSLASH_QUOTE_ON},
! 	{"no", BACKSLASH_QUOTE_OFF},
! 	{"1", BACKSLASH_QUOTE_ON},
! 	{"0", BACKSLASH_QUOTE_OFF},
! 	{NULL, 0}
  };
  
  /*
--- 264,279 ----
   * accept all the likely variants of "on" and "off".
   */
  static const struct config_enum_entry backslash_quote_options[] = {
! 	{"safe_encoding", BACKSLASH_QUOTE_SAFE_ENCODING, false},
! 	{"on", BACKSLASH_QUOTE_ON, false},
! 	{"off", BACKSLASH_QUOTE_OFF, false},
! 	{"true", BACKSLASH_QUOTE_ON, true},
! 	{"false", BACKSLASH_QUOTE_OFF, true},
! 	{"yes", BACKSLASH_QUOTE_ON, true},
! 	{"no", BACKSLASH_QUOTE_OFF, true},
! 	{"1", BACKSLASH_QUOTE_ON, true},
! 	{"0", BACKSLASH_QUOTE_OFF, true},
! 	{NULL, 0, false}
  };
  
  /*
*************** config_enum_get_options(struct config_en
*** 4353,4362 ****
  
  	if (!entry || !entry->name)
  		return NULL;					/* Should not happen */
! 	
  	while (entry && entry->name)
  	{
! 		len += strlen(entry->name) + 2; /* string and ", " */
  		entry++;
  	}
  
--- 4353,4365 ----
  
  	if (!entry || !entry->name)
  		return NULL;					/* Should not happen */
! 
  	while (entry && entry->name)
  	{
! 		/* dont show hidden values */
! 		if (!entry->hidden)
! 			len += strlen(entry->name) + 2; /* string and ", " */
! 
  		entry++;
  	}
  
*************** config_enum_get_options(struct config_en
*** 4367,4379 ****
  	entry = record->options;
  	while (entry && entry->name)
  	{
! 		strcat(hintmsg, entry->name);
! 		strcat(hintmsg, ", ");
  		entry++;
  	}
  
! 	/* Replace final comma/space */
! 	hintmsg[strlen(hintmsg)-2] = '\0';
  	strcat(hintmsg, suffix);
  
  	return hintmsg;
--- 4370,4394 ----
  	entry = record->options;
  	while (entry && entry->name)
  	{
! 		/* dont show hidden values */
! 		if (!entry->hidden)
! 		{
! 			strcat(hintmsg, entry->name);
! 			strcat(hintmsg, ", ");
! 		}
! 
  		entry++;
  	}
  
! 	len = strlen(hintmsg);
! 
! 	/* All the entries might have been hidden... */
! 	if (len && len > 1)
! 		/* Replace final comma/space */
! 		hintmsg[len-2] = '\0';
! 	else
! 		hintmsg[0] = '\0';
! 
  	strcat(hintmsg, suffix);
  
  	return hintmsg;
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 3f58297..7649ffc 100644
*** a/src/include/utils/guc.h
--- /bsrc/include/utils/guc.h
*************** struct config_enum_entry
*** 100,105 ****
--- 100,106 ----
  {
  	const char *name;
  	int         val;
+ 	bool		hidden;
  };
  
  