]> granicus.if.org Git - postgresql/commitdiff
New warning code about auto-created range table entries.
authorBruce Momjian <bruce@momjian.us>
Sat, 3 Jun 2000 04:41:34 +0000 (04:41 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 3 Jun 2000 04:41:34 +0000 (04:41 +0000)
src/backend/parser/parse_func.c
src/backend/parser/parse_relation.c
src/include/parser/parse_relation.h
src/test/regress/expected/select_into.out

index 6450d34aba9dac30c5933079f386cd8b91428a8d..878c5530054095db57b98892fde0c979819e4f61 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.81 2000/05/30 00:49:50 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.82 2000/06/03 04:41:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -307,11 +307,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
                                rte = addRangeTableEntry(pstate, refname,
                                                                                 makeAttr(refname, NULL),
                                                                                 FALSE, FALSE, TRUE);
-#ifdef WARN_FROM
-                               elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
-                                 pstate->parentParseState != NULL ? " in subquery" : "",
-                                        refname);
-#endif
+                               warnAutoRange(pstate, refname);
                        }
 
                        relname = rte->relname;
@@ -525,11 +521,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
                                rte = addRangeTableEntry(pstate, refname,
                                                                                 makeAttr(refname, NULL),
                                                                                 FALSE, FALSE, TRUE);
-#ifdef WARN_FROM
-                               elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
-                                 pstate->parentParseState != NULL ? " in subquery" : "",
-                                        refname);
-#endif
+                               warnAutoRange(pstate, refname);
                        }
 
                        relname = rte->relname;
index 4bb65cf27e808d98ecf01aceee2b1adf3e7bb66a..9360c1486c2eea509424db271af775973e93507d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.40 2000/04/12 17:15:27 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.41 2000/06/03 04:41:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -373,11 +373,7 @@ expandAll(ParseState *pstate, char *relname, Attr *ref, int *this_resno)
        {
                rte = addRangeTableEntry(pstate, relname, ref,
                                                                 FALSE, FALSE, TRUE);
-#ifdef WARN_FROM
-               elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
-                        pstate->parentParseState != NULL ? " in subquery" : "",
-                        refname);
-#endif
+               warnAutoRange(pstate, ref->relname);
        }
 
        rel = heap_open(rte->relid, AccessShareLock);
@@ -526,3 +522,26 @@ attnumTypeId(Relation rd, int attid)
         */
        return rd->rd_att->attrs[attid - 1]->atttypid;
 }
+
+void
+warnAutoRange(ParseState *pstate, char *refname)
+{
+       List       *temp;
+       bool            foundInFromCl = false;
+
+       foreach(temp, pstate->p_rtable)
+       {
+               RangeTblEntry *rte = lfirst(temp);
+
+               if (rte->inFromCl)
+               {
+                       foundInFromCl = true;
+                       break;
+               }
+       }
+       if (foundInFromCl)
+               elog(NOTICE, "Adding missing FROM-clause entry%s for table %s",
+                       pstate->parentParseState != NULL ? " in subquery" : "",
+                       refname);
+}
+
index 340afcc2f39a02a2aa389bdac68e753792c4e591..15945680bc724974d778488405b023e2b151fd5b 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_relation.h,v 1.16 2000/04/12 17:16:45 momjian Exp $
+ * $Id: parse_relation.h,v 1.17 2000/06/03 04:41:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -35,5 +35,6 @@ extern int    specialAttNum(char *a);
 extern bool attnameIsSet(Relation rd, char *name);
 extern int     attnumAttNelems(Relation rd, int attid);
 extern Oid     attnumTypeId(Relation rd, int attid);
+extern void warnAutoRange(ParseState *pstate, char *refname);
 
 #endif  /* PARSE_RELATION_H */
index aa157c9eeda522fa162c98907451100cd794fc67..5c550ced7a9b31917a28a023699f04429ff77801 100644 (file)
@@ -5,9 +5,12 @@ SELECT *
    INTO TABLE tmp1
    FROM tmp
    WHERE onek.unique1 < 2;
+NOTICE:  Adding missing FROM-clause entry for table onek
 DROP TABLE tmp1;
 SELECT *
    INTO TABLE tmp1
    FROM tmp
    WHERE onek2.unique1 < 2;
 DROP TABLE tmp1;
+NOTICE:  Adding missing FROM-clause entry for table onek
+