Skip to content

Commit 2ea370a

Browse files
committed
New warning code about auto-created range table entries.
1 parent 5878575 commit 2ea370a

File tree

4 files changed

+33
-18
lines changed

4 files changed

+33
-18
lines changed

src/backend/parser/parse_func.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.81 2000/05/30 00:49:50 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.82 2000/06/03 04:41:32 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -307,11 +307,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
307307
rte = addRangeTableEntry(pstate, refname,
308308
makeAttr(refname, NULL),
309309
FALSE, FALSE, TRUE);
310-
#ifdef WARN_FROM
311-
elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
312-
pstate->parentParseState != NULL ? " in subquery" : "",
313-
refname);
314-
#endif
310+
warnAutoRange(pstate, refname);
315311
}
316312

317313
relname = rte->relname;
@@ -525,11 +521,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
525521
rte = addRangeTableEntry(pstate, refname,
526522
makeAttr(refname, NULL),
527523
FALSE, FALSE, TRUE);
528-
#ifdef WARN_FROM
529-
elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
530-
pstate->parentParseState != NULL ? " in subquery" : "",
531-
refname);
532-
#endif
524+
warnAutoRange(pstate, refname);
533525
}
534526

535527
relname = rte->relname;

src/backend/parser/parse_relation.c

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.40 2000/04/12 17:15:27 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.41 2000/06/03 04:41:32 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -373,11 +373,7 @@ expandAll(ParseState *pstate, char *relname, Attr *ref, int *this_resno)
373373
{
374374
rte = addRangeTableEntry(pstate, relname, ref,
375375
FALSE, FALSE, TRUE);
376-
#ifdef WARN_FROM
377-
elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
378-
pstate->parentParseState != NULL ? " in subquery" : "",
379-
refname);
380-
#endif
376+
warnAutoRange(pstate, ref->relname);
381377
}
382378

383379
rel = heap_open(rte->relid, AccessShareLock);
@@ -526,3 +522,26 @@ attnumTypeId(Relation rd, int attid)
526522
*/
527523
return rd->rd_att->attrs[attid - 1]->atttypid;
528524
}
525+
526+
void
527+
warnAutoRange(ParseState *pstate, char *refname)
528+
{
529+
List *temp;
530+
bool foundInFromCl = false;
531+
532+
foreach(temp, pstate->p_rtable)
533+
{
534+
RangeTblEntry *rte = lfirst(temp);
535+
536+
if (rte->inFromCl)
537+
{
538+
foundInFromCl = true;
539+
break;
540+
}
541+
}
542+
if (foundInFromCl)
543+
elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
544+
pstate->parentParseState != NULL ? " in subquery" : "",
545+
refname);
546+
}
547+

src/include/parser/parse_relation.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: parse_relation.h,v 1.16 2000/04/12 17:16:45 momjian Exp $
10+
* $Id: parse_relation.h,v 1.17 2000/06/03 04:41:33 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -35,5 +35,6 @@ extern int specialAttNum(char *a);
3535
extern bool attnameIsSet(Relation rd, char *name);
3636
extern int attnumAttNelems(Relation rd, int attid);
3737
extern Oid attnumTypeId(Relation rd, int attid);
38+
extern void warnAutoRange(ParseState *pstate, char *refname);
3839

3940
#endif /* PARSE_RELATION_H */

src/test/regress/expected/select_into.out

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ SELECT *
55
INTO TABLE tmp1
66
FROM tmp
77
WHERE onek.unique1 < 2;
8+
NOTICE: Adding missing FROM-clause entry for table onek
89
DROP TABLE tmp1;
910
SELECT *
1011
INTO TABLE tmp1
1112
FROM tmp
1213
WHERE onek2.unique1 < 2;
1314
DROP TABLE tmp1;
15+
NOTICE: Adding missing FROM-clause entry for table onek
16+

0 commit comments

Comments
 (0)