summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian1998-03-18 15:49:08 +0000
committerBruce Momjian1998-03-18 15:49:08 +0000
commitc530fbfb2fa4177103a44147315a3217c6527dd6 (patch)
tree708adca73b428d3fa16b9b57f266e86898a08da4
parent94abcc16653a2ac82f2bf52c8669aa675dbebffe (diff)
Add checks for UNION target fields, and add optional TABLE to LOCK
and SELECT manual pages and psql help.
-rw-r--r--src/backend/parser/parse_clause.c19
-rw-r--r--src/bin/psql/psqlHelp.h6
-rw-r--r--src/man/lock.l6
-rw-r--r--src/man/select.l4
4 files changed, 25 insertions, 10 deletions
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index ad38817a0b..9bd664c4ee 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.13 1998/02/26 04:33:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.14 1998/03/18 15:47:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -382,11 +382,26 @@ transformUnionClause(List *unionClause, List *targetlist)
if (unionClause)
{
+ /* recursion */
qlist = parse_analyze(unionClause, NULL);
for (i = 0; i < qlist->len; i++)
+ {
+ List *prev_target = targetlist;
+ List *next_target;
+
+ if (length(targetlist) != length(qlist->qtrees[i]->targetList))
+ elog(ERROR,"Each UNION query must have the same number of columns.");
+
+ foreach(next_target, qlist->qtrees[i]->targetList)
+ {
+ if (((TargetEntry *)lfirst(prev_target))->resdom->restype !=
+ ((TargetEntry *)lfirst(next_target))->resdom->restype)
+ elog(ERROR,"Each UNION query must have identical target types.");
+ prev_target = lnext(prev_target);
+ }
union_list = lappend(union_list, qlist->qtrees[i]);
- /* we need to check return types are consistent here */
+ }
return union_list;
}
else
diff --git a/src/bin/psql/psqlHelp.h b/src/bin/psql/psqlHelp.h
index 4990a24150..9c444f490c 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.40 1998/02/03 19:27:00 momjian Exp $
+ * $Id: psqlHelp.h,v 1.41 1998/03/18 15:48:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -252,7 +252,7 @@ static struct _helpStruct QL_HELP[] = {
"load <filename>;"},
{"lock",
"exclusive lock a table inside a transaction",
- "lock <class_name>;"},
+ "lock [table] <class_name>;"},
{"move",
"move an cursor position",
"move [forward|backward] [<number>|all] [in <cursorname>];"},
@@ -273,7 +273,7 @@ static struct _helpStruct QL_HELP[] = {
{"select",
"retrieve tuples",
"select [distinct on <attr>] <expr1> [as <attr1>], ... <exprN> [as <attrN>]\n\
-\t[into table <class_name>]\n\
+\t[into [table] <class_name>]\n\
\t[from <from_list>]\n\
\t[where <qual>]\n\
\t[group by <group_list>]\n\
diff --git a/src/man/lock.l b/src/man/lock.l
index 0572923e85..b0b053377b 100644
--- a/src/man/lock.l
+++ b/src/man/lock.l
@@ -1,12 +1,12 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.3 1998/01/28 20:44:42 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/lock.l,v 1.4 1998/03/18 15:48:57 momjian Exp $
.TH FETCH SQL 01/23/93 PostgreSQL PostgreSQL
.SH NAME
lock - exclusive lock a table
.SH SYNOPSIS
.nf
-\fBlock\fR classname
+\fBlock\fR [\fBtable\fR] classname
.fi
.SH DESCRIPTION
.BR lock
@@ -31,7 +31,7 @@ aquisitions and requests to not form a deadlock.
-- Proper locking to prevent deadlock
--
begin work;
-lock mytable;
+lock table mytable;
select * from mytable;
update mytable set (x = 100);
end work;
diff --git a/src/man/select.l b/src/man/select.l
index d2b54d3638..739e23c13d 100644
--- a/src/man/select.l
+++ b/src/man/select.l
@@ -1,6 +1,6 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.4 1998/01/11 22:17:58 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.5 1998/03/18 15:49:08 momjian Exp $
.TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL
.SH NAME
select - retrieve instances from a class
@@ -9,7 +9,7 @@ select - retrieve instances from a class
\fBselect\fR [distinct]
expression1 [\fBas\fR attr_name-1]
{, expression-1 [\fBas\fR attr_name-i]}
- [\fBinto\fR \fBtable\fR classname]
+ [\fBinto\fR [\fBtable\fR] classname]
[\fBfrom\fR from-list]
[\fBwhere\fR where-clause]
[\fBgroup by\fR attr_name1 {, attr_name-i....}]