From 7e1a8a90f8673c4e1d323728777eb6ce46f837a3 Mon Sep 17 00:00:00 2001
From: "Thomas G. Lockhart" <lockhart@fourpalms.org>
Date: Fri, 7 Nov 1997 06:27:55 +0000
Subject: [PATCH] Support "delimited identifiers" for \d tablename command. 
 This allows mixed-case identifiers if surrounded by double quotes. Add
 mention of "with location" clause for "create database" in help.

---
 src/bin/psql/psql.c     | 18 ++++++++++++++----
 src/bin/psql/psqlHelp.h |  8 ++++----
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c
index 9529cd1c5d..db17874388 100644
--- a/src/bin/psql/psql.c
+++ b/src/bin/psql/psql.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.100 1997/11/03 04:21:41 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.101 1997/11/07 06:27:52 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -545,9 +545,19 @@ tableDesc(PsqlSettings *pset, char *table, FILE *fout)
 	
 	/* Build the query */
 
-	for (i = strlen(table); i >= 0; i--)
-		if (isupper(table[i]))
-			table[i] = tolower(table[i]);
+	/* if the table name is surrounded by double-quotes, then don't convert case */
+	if (*table == '"')
+	{
+		table++;
+		if (*(table+strlen(table)-1) == '"')
+			*(table+strlen(table)-1) = '\0';
+	}
+	else
+	{
+		for (i = strlen(table); i >= 0; i--)
+			if (isupper(table[i]))
+				table[i] = tolower(table[i]);
+	}
 
 	descbuf[0] = '\0';
 	strcat(descbuf, "SELECT a.attnum, a.attname, t.typname, a.attlen, a.attnotnull");
diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h
index e303e7a78c..952757bb07 100644
--- a/src/bin/psql/psqlHelp.h
+++ b/src/bin/psql/psqlHelp.h
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: psqlHelp.h,v 1.31 1997/10/16 06:59:23 vadim Exp $
+ * $Id: psqlHelp.h,v 1.32 1997/11/07 06:27:55 thomas Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,14 +52,14 @@ static struct _helpStruct QL_HELP[] = {
 		"copy data to and from a table",
 	"copy [binary] <class_name> [with oids]\n\t{to|from} {<filename>|stdin|stdout} [using delimiters <delim>];"},
 	{"create",
-		"Please more be specific:",
+		"Please be more specific:",
 	"\tcreate aggregate\n\tcreate database\n\tcreate function\n\tcreate index\n\tcreate operator\n\tcreate rule\n\tcreate sequence\n\tcreate table\n\tcreate trigger\n\tcreate type\n\tcreate view"},
 	{"create aggregate",
 		"define an aggregate function",
 	"create aggregate <agg_name> [as] (basetype = <data_type>, \n\t[sfunc1 = <sfunc_1>, stype1 = <sfunc1_return_type>]\n\t[sfunc2 = <sfunc_2>, stype2 = <sfunc2_return_type>]\n\t[,finalfunc = <final-function>]\n\t[,initcond1 = <initial-cond1>][,initcond2 = <initial-cond2>]);"},
 	{"create database",
 		"create a database",
-	"create database <dbname>"},
+	"create database <dbname> [with location = '<dbpath>']"},
 	{"create function",
 		"create a user-defined function",
 	"create function <function_name> ([<type1>,...<typeN>]) returns <return_type>\n\tas '<object_filename>'|'<sql-queries>'\n\tlanguage 'c'|'sql'|'internal';"},
@@ -94,7 +94,7 @@ static struct _helpStruct QL_HELP[] = {
 		"delete tuples",
 	"delete from <class_name> [where <qual>];"},
 	{"drop",
-		"Please more be specific:",
+		"Please be more specific:",
 	"\tdrop aggregate\n\tdrop database\n\tdrop function\n\tdrop index\n\tdrop operator\n\tdrop rule\n\tdrop sequence\n\tdrop table\n\tdrop trigger\n\tdrop type\n\tdrop view"},
 	{"drop aggregate",
 		"remove an aggregate function",
-- 
2.40.0