Commit c530fbfb authored by Bruce Momjian's avatar Bruce Momjian

Add checks for UNION target fields, and add optional TABLE to LOCK

and SELECT manual pages and psql help.
parent 94abcc16
......@@ -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
......
......@@ -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\
......
.\" 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;
......
.\" 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....}]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment