Attached is a new patch which addresses this problem. (oids in
authorBruce Momjian
Sun, 2 Jul 2000 22:01:27 +0000 (22:01 +0000)
committerBruce Momjian
Sun, 2 Jul 2000 22:01:27 +0000 (22:01 +0000)
regression tests).

Chris Bitmead

12 files changed:
doc/src/sgml/inherit.sgml
src/backend/access/common/heaptuple.c
src/backend/access/heap/heapam.c
src/backend/catalog/heap.c
src/backend/parser/parse_relation.c
src/backend/utils/cache/lsyscache.c
src/include/access/heapam.h
src/include/access/htup.h
src/include/catalog/pg_attribute.h
src/test/regress/expected/inherit.out
src/test/regress/sql/inherit.sql
src/tools/make_mkid

index 774795f94d93154f61bb3c13096f6ce5a3138c98..bb0a4d9c7a60b47c33b2f35fa6492a42e3881549 100644 (file)
@@ -1,5 +1,5 @@
 
 
  
@@ -96,6 +96,57 @@ CREATE TABLE capitals UNDER cities (
    UPDATE and DELETE --
    support this ONLY notation.
   
+
+  
+  In some cases you may wish to know which table a particular tuple
+  originated from. There is a system attribute called
+  TABLEOID in each table which can tell you the
+  originating table:
+
+   
+    SELECT c.tableoid, c.name, c.altitude
+    FROM cities c
+    WHERE c.altitude > 500;
+   
+
+   which returns:
+
+   
++---------+----------+----------+
+|tableoid |name      | altitude |
++---------+----------+----------+
+|37292    |Las Vegas | 2174     |
++---------+----------+----------+
+|37280    |Mariposa  | 1953     |
++---------+----------+----------+
+|37280    |Madison   | 845      |
++---------+----------+----------+
+   
+
+   If you do a join with pg_class you can see the actual table name:
+
+   
+    SELECT p.relname, c.name, c.altitude
+    FROM cities c, pg_class p
+    WHERE c.altitude > 500 and c.tableoid = p.oid;
+   
+
+   which returns:
+
+   
++---------+----------+----------+
+|relname  |name      | altitude |
++---------+----------+----------+
+|capitals |Las Vegas | 2174     |
++---------+----------+----------+
+|cities   |Mariposa  | 1953     |
++---------+----------+----------+
+|cities   |Madison   | 845      |
++---------+----------+----------+
+   
+   
+  
+
   
    Deprecated 
    
index d30e4c7fe64e350bbee4ffed062a74e7d679e1ab..f93bf34db90aa8a8ed85b3a32e63433feb8c97d9 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.62 2000/04/12 17:14:36 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.63 2000/07/02 22:00:24 momjian Exp $
  *
  * NOTES
  *   The old interface functions have been converted to macros
@@ -169,6 +169,7 @@ heap_attisnull(HeapTuple tup, int attnum)
    else
        switch (attnum)
        {
+           case TableOidAttributeNumber:
            case SelfItemPointerAttributeNumber:
            case ObjectIdAttributeNumber:
            case MinTransactionIdAttributeNumber:
@@ -205,6 +206,8 @@ heap_sysattrlen(AttrNumber attno)
 
    switch (attno)
    {
+       case TableOidAttributeNumber:
+           return sizeof f->t_oid;
        case SelfItemPointerAttributeNumber:
            return sizeof f->t_ctid;
        case ObjectIdAttributeNumber:
@@ -237,6 +240,9 @@ heap_sysattrbyval(AttrNumber attno)
 
    switch (attno)
    {
+       case TableOidAttributeNumber:
+           byval = true;
+           break;
        case SelfItemPointerAttributeNumber:
            byval = false;
            break;
@@ -275,7 +281,9 @@ heap_getsysattr(HeapTuple tup, Buffer b, int attnum)
 {
    switch (attnum)
    {
-           case SelfItemPointerAttributeNumber:
+       case TableOidAttributeNumber:
+           return (Datum) &tup->t_tableoid;
+       case SelfItemPointerAttributeNumber:
            return (Datum) &tup->t_ctid;
        case ObjectIdAttributeNumber:
            return (Datum) (long) tup->t_oid;
index 150005f8fbe5fc457d2dbc37e9d7fc1de0f1940a..d671036f0499158aedae528de4d0c58799fa29c8 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.73 2000/06/30 16:10:40 petere Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.74 2000/07/02 22:00:27 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -235,6 +235,8 @@ heapgettup(Relation relation,
    int         linesleft;
    ItemPointer tid = (tuple->t_data == NULL) ?
    (ItemPointer) NULL : &(tuple->t_self);
+    
+   tuple->tableOid = relation->rd_id;
 
    /* ----------------
     *  increment access statistics
@@ -621,6 +623,7 @@ heap_openr(const char *relationName, LOCKMODE lockmode)
 
    Assert(lockmode >= NoLock && lockmode < MAX_LOCKMODES);
 
+
    /* ----------------
     *  increment access statistics
     * ----------------
@@ -1084,6 +1087,7 @@ heap_fetch(Relation relation,
    ItemPointer tid = &(tuple->t_self);
    OffsetNumber offnum;
 
+   tuple->tableOid = relation->rd_id;
    /* ----------------
     *  increment access statistics
     * ----------------
@@ -1178,6 +1182,7 @@ heap_get_latest_tid(Relation relation,
    bool        invalidBlock,
                linkend;
 
+   tp.tableOid = relation->rd_id;
    /* ----------------
     *  get the buffer from the relation descriptor
     *  Note that this does a buffer pin.
@@ -1270,6 +1275,7 @@ heap_insert(Relation relation, HeapTuple tup)
     *  increment access statistics
     * ----------------
     */
+   tup->tableOid = relation->rd_id;
    IncrHeapAccessStat(local_insert);
    IncrHeapAccessStat(global_insert);
 
@@ -1335,6 +1341,7 @@ heap_delete(Relation relation, ItemPointer tid, ItemPointer ctid)
    Buffer      buffer;
    int         result;
 
+   tp.tableOid = relation->rd_id;
    /* increment access statistics */
    IncrHeapAccessStat(local_delete);
    IncrHeapAccessStat(global_delete);
@@ -1447,6 +1454,7 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup,
    Buffer      buffer;
    int         result;
 
+   newtup->tableOid = relation->rd_id;
    /* increment access statistics */
    IncrHeapAccessStat(local_replace);
    IncrHeapAccessStat(global_replace);
@@ -1575,6 +1583,7 @@ heap_mark4update(Relation relation, HeapTuple tuple, Buffer *buffer)
    PageHeader  dp;
    int         result;
 
+   tuple->tableOid = relation->rd_id;
    /* increment access statistics */
    IncrHeapAccessStat(local_mark4update);
    IncrHeapAccessStat(global_mark4update);
index dceab60c8e0ec5beb11a0defa9b226e999bae557..721297680edabd2289c8d84318736606a1d72e2c 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.135 2000/07/02 04:46:09 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.136 2000/07/02 22:00:34 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -131,12 +131,22 @@ static FormData_pg_attribute a6 = {
    MaxCommandIdAttributeNumber, 0, -1, -1, '\001', 'p', '\0', 'i', '\0', '\0'
 };
 
-static Form_pg_attribute HeapAtt[] = {&a1, &a2, &a3, &a4, &a5, &a6};
+/* 
+   We decide to call this attribute "tableoid" rather than say
+"classoid" on the basis that in the future there may be more than one
+table of a particular class/type. In any case table is still the word
+used in SQL. 
+*/
+static FormData_pg_attribute a7 = {
+   0xffffffff, {"tableoid"}, OIDOID, 0, sizeof(Oid),
+   TableOidAttributeNumber, 0, -1, -1, '\001', 'p', '\0', 'i', '\0', '\0'
+};
+
+static Form_pg_attribute HeapAtt[] = {&a1, &a2, &a3, &a4, &a5, &a6, &a7};
 
 /* ----------------------------------------------------------------
  *             XXX END OF UGLY HARD CODED BADNESS XXX
- * ----------------------------------------------------------------
- */
+ * ---------------------------------------------------------------- */
 
 
 /* ----------------------------------------------------------------
index cbb5f07fefaa00ab34da3dc8730701c370c03765..7a3e3c2d6ad0435d196a73626290185044c4dd17 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.44 2000/06/20 01:41:21 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.45 2000/07/02 22:00:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -57,6 +57,9 @@ static struct
    {
        "cmax", MaxCommandIdAttributeNumber, CIDOID
    },
+   {
+       "tableoid", TableOidAttributeNumber, OIDOID
+   }
 };
 
 #define SPECIALS ((int) (sizeof(special_attr)/sizeof(special_attr[0])))
index 19556fce66fd91cbde28a40ffe1b4e696d5d6eea..580486222229093ecd24de741f2666848864337b 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.42 2000/06/08 22:37:30 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v 1.43 2000/07/02 22:00:48 momjian Exp $
  *
  * NOTES
  *   Eventually, the index information should go through here, too.
@@ -249,6 +249,8 @@ get_attdisbursion(Oid relid, AttrNumber attnum, double min_estimate)
    if (attnum == ObjectIdAttributeNumber ||
        attnum == SelfItemPointerAttributeNumber)
        return 1.0 / (double) ntuples;
+   if (attnum == TableOidAttributeNumber)
+       return 1.0;
 
    /*
     * VACUUM ANALYZE has not been run for this table. Produce an estimate
index ab30f09b3080ea43e4fc4da88941a8539781f08f..c716ab239265b3c1e1d44e974b6550f39d65bfb4 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: heapam.h,v 1.54 2000/06/30 16:10:49 petere Exp $
+ * $Id: heapam.h,v 1.55 2000/07/02 22:01:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -165,36 +165,41 @@ fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
  *
  * ----------------
  */
-#define heap_getattr(tup, attnum, tupleDesc, isnull)                       \
-(                                                                          \
-   AssertMacro((tup) != NULL &&                                            \
-       (attnum) > FirstLowInvalidHeapAttributeNumber &&                    \
-       (attnum) != 0),                                                     \
-   ((attnum) > (int) (tup)->t_data->t_natts) ?                             \
-   (                                                                       \
-       ((isnull) ? (*(isnull) = true) : (dummyret)NULL),                   \
-       (Datum)NULL                                                         \
-   )                                                                       \
-   :                                                                       \
-   (                                                                       \
-       ((attnum) > 0) ?                                                    \
-       (                                                                   \
-           fastgetattr((tup), (attnum), (tupleDesc), (isnull))             \
-       )                                                                   \
-       :                                                                   \
-       (                                                                   \
-           ((isnull) ? (*(isnull) = false) : (dummyret)NULL),              \
-           ((attnum) == SelfItemPointerAttributeNumber) ?                  \
-           (                                                               \
-               (Datum)((char *)&((tup)->t_self))                           \
-           )                                                               \
-           :                                                               \
-           (                                                               \
-               (Datum)*(unsigned int *)                                    \
-                   ((char *)(tup)->t_data + heap_sysoffset[-(attnum)-1])   \
-           )                                                               \
-       )                                                                   \
-   )                                                                       \
+#define heap_getattr(tup, attnum, tupleDesc, isnull) \
+( \
+   AssertMacro((tup) != NULL && \
+       (attnum) > FirstLowInvalidHeapAttributeNumber && \
+       (attnum) != 0), \
+   ((attnum) > (int) (tup)->t_data->t_natts) ? \
+   ( \
+       ((isnull) ? (*(isnull) = true) : (dummyret)NULL), \
+       (Datum)NULL \
+   ) \
+   : \
+   ( \
+       ((attnum) > 0) ? \
+       ( \
+           fastgetattr((tup), (attnum), (tupleDesc), (isnull)) \
+       ) \
+       : \
+       ( \
+           ((isnull) ? (*(isnull) = false) : (dummyret)NULL), \
+           ((attnum) == SelfItemPointerAttributeNumber) ? \
+           ( \
+               (Datum)((char *)&((tup)->t_self)) \
+           ) \
+           : \
+           (((attnum) == TableOidAttributeNumber) ? \
+           ( \
+               (Datum)((tup)->tableOid) \
+           ) \
+            : \
+           ( \
+               (Datum)*(unsigned int *) \
+                   ((char *)(tup)->t_data + heap_sysoffset[-(attnum)-1]) \
+           )) \
+       ) \
+   ) \
 )
 
 extern HeapAccessStatistics heap_access_stats; /* in stats.c */
index ff51409216043bd3ca9405d5cea6ceb533130ac3..3370960e2fd64298c949b4e11cb4e9eca232ed3a 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: htup.h,v 1.30 2000/06/02 10:20:26 vadim Exp $
+ * $Id: htup.h,v 1.31 2000/07/02 22:01:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -133,7 +133,8 @@ typedef struct xl_heap_move
 #define MinCommandIdAttributeNumber                (-4)
 #define MaxTransactionIdAttributeNumber            (-5)
 #define MaxCommandIdAttributeNumber                (-6)
-#define FirstLowInvalidHeapAttributeNumber     (-7)
+#define TableOidAttributeNumber                    (-7)
+#define FirstLowInvalidHeapAttributeNumber     (-8)
 
 /* If you make any changes above, the order off offsets in this must change */
 extern long heap_sysoffset[];
@@ -156,6 +157,7 @@ typedef struct HeapTupleData
 {
    uint32      t_len;          /* length of *t_data */
    ItemPointerData t_self;     /* SelfItemPointer */
+   Oid tableOid;                    /* */
    MemoryContext t_datamcxt;   /* */
    HeapTupleHeader t_data;     /* */
 } HeapTupleData;
index a653c42a0709d2a4c07852d339b417f66ac0bde2..899b2496420617d2516523ab025e4606ca0aa0e7 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_attribute.h,v 1.59 2000/06/12 03:40:52 momjian Exp $
+ * $Id: pg_attribute.h,v 1.60 2000/07/02 22:01:08 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -267,6 +267,7 @@ DATA(insert OID = 0 ( 1247 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1247 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1247 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1247 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1247 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_database
@@ -282,6 +283,7 @@ DATA(insert OID = 0 ( 1262 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1262 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1262 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1262 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1262 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_proc
@@ -329,6 +331,7 @@ DATA(insert OID = 0 ( 1255 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1255 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1255 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1255 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1255 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_shadow
@@ -348,6 +351,7 @@ DATA(insert OID = 0 ( 1260 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1260 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1260 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1260 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1260 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_group
@@ -362,6 +366,7 @@ DATA(insert OID = 0 ( 1261 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1261 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1261 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1261 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1261 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_attribute
@@ -405,6 +410,7 @@ DATA(insert OID = 0 ( 1249 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1249 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1249 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1249 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1249 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_class
@@ -458,6 +464,7 @@ DATA(insert OID = 0 ( 1259 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1259 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1259 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1259 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1259 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_attrdef
@@ -473,6 +480,7 @@ DATA(insert OID = 0 ( 1215 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1215 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1215 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1215 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1215 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_relcheck
@@ -488,6 +496,7 @@ DATA(insert OID = 0 ( 1216 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1216 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1216 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1216 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1216 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_trigger
@@ -513,6 +522,7 @@ DATA(insert OID = 0 ( 1219 xmin             28 0  4  -3 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1219 cmin                29 0  4  -4 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1219 xmax                28 0  4  -5 0 -1 -1 t p f i f f));
 DATA(insert OID = 0 ( 1219 cmax                29 0  4  -6 0 -1 -1 t p f i f f));
+DATA(insert OID = 0 ( 1219 tableoid            26 0  4  -7 0 -1 -1 t p f i f f));
 
 /* ----------------
  *     pg_variable - this relation is modified by special purpose access
index 3c01ec33f03127e7080198f0cb7e84536dd0b15b..b0eed9a09e99ba6f5ae898add7c1f47574877bf3 100644 (file)
@@ -29,122 +29,122 @@ INSERT INTO d(aa) VALUES('ddddd');
 INSERT INTO d(aa) VALUES('dddddd');
 INSERT INTO d(aa) VALUES('ddddddd');
 INSERT INTO d(aa) VALUES('dddddddd');
-SELECT * FROM a;
-    aa    
-----------
- aaa
- aaaa
- aaaaa
- aaaaaa
- aaaaaaa
- aaaaaaaa
- bbb
- bbbb
- bbbbb
- bbbbbb
- bbbbbbb
- bbbbbbbb
- ccc
- cccc
- ccccc
- cccccc
- ccccccc
- cccccccc
- ddd
- dddd
- ddddd
- dddddd
- ddddddd
- dddddddd
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
relname |    aa    
+---------+----------
+ a       | aaa
+ a       | aaaa
+ a       | aaaaa
+ a       | aaaaaa
+ a       | aaaaaaa
+ a       | aaaaaaaa
+ b       | bbb
+ b       | bbbb
+ b       | bbbbb
+ b       | bbbbbb
+ b       | bbbbbbb
+ b       | bbbbbbbb
+ c       | ccc
+ c       | cccc
+ c       | ccccc
+ c       | cccccc
+ c       | ccccccc
+ c       | cccccccc
+ d       | ddd
+ d       | dddd
+ d       | ddddd
+ d       | dddddd
+ d       | ddddddd
+ d       | dddddddd
 (24 rows)
 
-SELECT * FROM b;
-    aa    | bb 
-----------+----
- bbb      | 
- bbbb     | 
- bbbbb    | 
- bbbbbb   | 
- bbbbbbb  | 
- bbbbbbbb | 
- ddd      | 
- dddd     | 
- ddddd    | 
- dddddd   | 
- ddddddd  | 
- dddddddd | 
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
relname |    aa    | bb 
+---------+----------+----
+ b       | bbb      | 
+ b       | bbbb     | 
+ b       | bbbbb    | 
+ b       | bbbbbb   | 
+ b       | bbbbbbb  | 
+ b       | bbbbbbbb | 
+ d       | ddd      | 
+ d       | dddd     | 
+ d       | ddddd    | 
+ d       | dddddd   | 
+ d       | ddddddd  | 
+ d       | dddddddd | 
 (12 rows)
 
-SELECT * FROM c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
- ddd      | 
- dddd     | 
- ddddd    | 
- dddddd   | 
- ddddddd  | 
- dddddddd | 
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
+ d       | ddd      | 
+ d       | dddd     | 
+ d       | ddddd    | 
+ d       | dddddd   | 
+ d       | ddddddd  | 
+ d       | dddddddd | 
 (12 rows)
 
-SELECT * FROM d;
-    aa    | bb | cc | dd 
-----------+----+----+----
- ddd      |    |    | 
- dddd     |    |    | 
- ddddd    |    |    | 
- dddddd   |    |    | 
- ddddddd  |    |    | 
- dddddddd |    |    | 
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
relname |    aa    | bb | cc | dd 
+---------+----------+----+----+----
+ d       | ddd      |    |    | 
+ d       | dddd     |    |    | 
+ d       | ddddd    |    |    | 
+ d       | dddddd   |    |    | 
+ d       | ddddddd  |    |    | 
+ d       | dddddddd |    |    | 
 (6 rows)
 
-SELECT * FROM ONLY a;
-    aa    
-----------
- aaa
- aaaa
- aaaaa
- aaaaaa
- aaaaaaa
- aaaaaaaa
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
relname |    aa    
+---------+----------
+ a       | aaa
+ a       | aaaa
+ a       | aaaaa
+ a       | aaaaaa
+ a       | aaaaaaa
+ a       | aaaaaaaa
 (6 rows)
 
-SELECT * FROM ONLY b;
-    aa    | bb 
-----------+----
- bbb      | 
- bbbb     | 
- bbbbb    | 
- bbbbbb   | 
- bbbbbbb  | 
- bbbbbbbb | 
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
relname |    aa    | bb 
+---------+----------+----
+ b       | bbb      | 
+ b       | bbbb     | 
+ b       | bbbbb    | 
+ b       | bbbbbb   | 
+ b       | bbbbbbb  | 
+ b       | bbbbbbbb | 
 (6 rows)
 
-SELECT * FROM ONLY c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
 (6 rows)
 
-SELECT * FROM ONLY d;
-    aa    | bb | cc | dd 
-----------+----+----+----
- ddd      |    |    | 
- dddd     |    |    | 
- ddddd    |    |    | 
- dddddd   |    |    | 
- ddddddd  |    |    | 
- dddddddd |    |    | 
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
relname |    aa    | bb | cc | dd 
+---------+----------+----+----+----
+ d       | ddd      |    |    | 
+ d       | dddd     |    |    | 
+ d       | ddddd    |    |    | 
+ d       | dddddd   |    |    | 
+ d       | ddddddd  |    |    | 
+ d       | dddddddd |    |    | 
 (6 rows)
 
 UPDATE a SET aa='zzzz' WHERE aa='aaaa';
@@ -152,383 +152,383 @@ UPDATE ONLY a SET aa='zzzzz' WHERE aa='aaaaa';
 UPDATE b SET aa='zzz' WHERE aa='aaa';
 UPDATE ONLY b SET aa='zzz' WHERE aa='aaa';
 UPDATE a SET aa='zzzzzz' WHERE aa LIKE 'aaa%';
-SELECT * FROM a;
-    aa    
-----------
- zzzz
- zzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- bbb
- bbbb
- bbbbb
- bbbbbb
- bbbbbbb
- bbbbbbbb
- ccc
- cccc
- ccccc
- cccccc
- ccccccc
- cccccccc
- ddd
- dddd
- ddddd
- dddddd
- ddddddd
- dddddddd
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
relname |    aa    
+---------+----------
a       | zzzz
a       | zzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
+ b       | bbb
+ b       | bbbb
+ b       | bbbbb
+ b       | bbbbbb
+ b       | bbbbbbb
+ b       | bbbbbbbb
+ c       | ccc
+ c       | cccc
+ c       | ccccc
+ c       | cccccc
+ c       | ccccccc
+ c       | cccccccc
+ d       | ddd
+ d       | dddd
+ d       | ddddd
+ d       | dddddd
+ d       | ddddddd
+ d       | dddddddd
 (24 rows)
 
-SELECT * FROM b;
-    aa    | bb 
-----------+----
- bbb      | 
- bbbb     | 
- bbbbb    | 
- bbbbbb   | 
- bbbbbbb  | 
- bbbbbbbb | 
- ddd      | 
- dddd     | 
- ddddd    | 
- dddddd   | 
- ddddddd  | 
- dddddddd | 
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
relname |    aa    | bb 
+---------+----------+----
+ b       | bbb      | 
+ b       | bbbb     | 
+ b       | bbbbb    | 
+ b       | bbbbbb   | 
+ b       | bbbbbbb  | 
+ b       | bbbbbbbb | 
+ d       | ddd      | 
+ d       | dddd     | 
+ d       | ddddd    | 
+ d       | dddddd   | 
+ d       | ddddddd  | 
+ d       | dddddddd | 
 (12 rows)
 
-SELECT * FROM c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
- ddd      | 
- dddd     | 
- ddddd    | 
- dddddd   | 
- ddddddd  | 
- dddddddd | 
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
+ d       | ddd      | 
+ d       | dddd     | 
+ d       | ddddd    | 
+ d       | dddddd   | 
+ d       | ddddddd  | 
+ d       | dddddddd | 
 (12 rows)
 
-SELECT * FROM d;
-    aa    | bb | cc | dd 
-----------+----+----+----
- ddd      |    |    | 
- dddd     |    |    | 
- ddddd    |    |    | 
- dddddd   |    |    | 
- ddddddd  |    |    | 
- dddddddd |    |    | 
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
relname |    aa    | bb | cc | dd 
+---------+----------+----+----+----
+ d       | ddd      |    |    | 
+ d       | dddd     |    |    | 
+ d       | ddddd    |    |    | 
+ d       | dddddd   |    |    | 
+ d       | ddddddd  |    |    | 
+ d       | dddddddd |    |    | 
 (6 rows)
 
-SELECT * FROM ONLY a;
-   aa   
---------
- zzzz
- zzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- zzzzzz
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
relname |   aa   
+---------+--------
a       | zzzz
a       | zzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
 (6 rows)
 
-SELECT * FROM ONLY b;
-    aa    | bb 
-----------+----
- bbb      | 
- bbbb     | 
- bbbbb    | 
- bbbbbb   | 
- bbbbbbb  | 
- bbbbbbbb | 
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
relname |    aa    | bb 
+---------+----------+----
+ b       | bbb      | 
+ b       | bbbb     | 
+ b       | bbbbb    | 
+ b       | bbbbbb   | 
+ b       | bbbbbbb  | 
+ b       | bbbbbbbb | 
 (6 rows)
 
-SELECT * FROM ONLY c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
 (6 rows)
 
-SELECT * FROM ONLY d;
-    aa    | bb | cc | dd 
-----------+----+----+----
- ddd      |    |    | 
- dddd     |    |    | 
- ddddd    |    |    | 
- dddddd   |    |    | 
- ddddddd  |    |    | 
- dddddddd |    |    | 
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
relname |    aa    | bb | cc | dd 
+---------+----------+----+----+----
+ d       | ddd      |    |    | 
+ d       | dddd     |    |    | 
+ d       | ddddd    |    |    | 
+ d       | dddddd   |    |    | 
+ d       | ddddddd  |    |    | 
+ d       | dddddddd |    |    | 
 (6 rows)
 
 UPDATE b SET aa='new';
-SELECT * FROM a;
-    aa    
-----------
- zzzz
- zzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- new
- new
- new
- new
- new
- new
- ccc
- cccc
- ccccc
- cccccc
- ccccccc
- cccccccc
- new
- new
- new
- new
- new
- new
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
relname |    aa    
+---------+----------
a       | zzzz
a       | zzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
b       | new
b       | new
b       | new
b       | new
b       | new
b       | new
+ c       | ccc
+ c       | cccc
+ c       | ccccc
+ c       | cccccc
+ c       | ccccccc
+ c       | cccccccc
d       | new
d       | new
d       | new
d       | new
d       | new
d       | new
 (24 rows)
 
-SELECT * FROM b;
- aa  | bb 
------+----
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
relname | aa  | bb 
+---------+-----+----
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
 (12 rows)
 
-SELECT * FROM c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
- new      | 
- new      | 
- new      | 
- new      | 
- new      | 
- new      | 
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
d       | new      | 
d       | new      | 
d       | new      | 
d       | new      | 
d       | new      | 
d       | new      | 
 (12 rows)
 
-SELECT * FROM d;
- aa  | bb | cc | dd 
------+----+----+----
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
relname | aa  | bb | cc | dd 
+---------+-----+----+----+----
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
 (6 rows)
 
-SELECT * FROM ONLY a;
-   aa   
---------
- zzzz
- zzzzz
- zzzzzz
- zzzzzz
- zzzzzz
- zzzzzz
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
relname |   aa   
+---------+--------
a       | zzzz
a       | zzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
a       | zzzzzz
 (6 rows)
 
-SELECT * FROM ONLY b;
- aa  | bb 
------+----
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
relname | aa  | bb 
+---------+-----+----
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
 (6 rows)
 
-SELECT * FROM ONLY c;
-    aa    | cc 
-----------+----
- ccc      | 
- cccc     | 
- ccccc    | 
- cccccc   | 
- ccccccc  | 
- cccccccc | 
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
relname |    aa    | cc 
+---------+----------+----
+ c       | ccc      | 
+ c       | cccc     | 
+ c       | ccccc    | 
+ c       | cccccc   | 
+ c       | ccccccc  | 
+ c       | cccccccc | 
 (6 rows)
 
-SELECT * FROM ONLY d;
- aa  | bb | cc | dd 
------+----+----+----
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
relname | aa  | bb | cc | dd 
+---------+-----+----+----+----
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
 (6 rows)
 
 UPDATE a SET aa='new';
 DELETE FROM ONLY c WHERE aa='new';
-SELECT * FROM a;
- aa  
------
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
- new
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
relname | aa  
+---------+-----
a       | new
a       | new
a       | new
a       | new
a       | new
a       | new
b       | new
b       | new
b       | new
b       | new
b       | new
b       | new
d       | new
d       | new
d       | new
d       | new
d       | new
d       | new
 (18 rows)
 
-SELECT * FROM b;
- aa  | bb 
------+----
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
relname | aa  | bb 
+---------+-----+----
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
 (12 rows)
 
-SELECT * FROM c;
- aa  | cc 
------+----
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
relname | aa  | cc 
+---------+-----+----
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
d       | new | 
 (6 rows)
 
-SELECT * FROM d;
- aa  | bb | cc | dd 
------+----+----+----
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
relname | aa  | bb | cc | dd 
+---------+-----+----+----+----
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
 (6 rows)
 
-SELECT * FROM ONLY a;
- aa  
------
- new
- new
- new
- new
- new
- new
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
relname | aa  
+---------+-----
a       | new
a       | new
a       | new
a       | new
a       | new
a       | new
 (6 rows)
 
-SELECT * FROM ONLY b;
- aa  | bb 
------+----
- new | 
- new | 
- new | 
- new | 
- new | 
- new | 
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
relname | aa  | bb 
+---------+-----+----
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
b       | new | 
 (6 rows)
 
-SELECT * FROM ONLY c;
- aa | cc 
-----+----
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
relname | aa | cc 
+---------+----+----
 (0 rows)
 
-SELECT * FROM ONLY d;
- aa  | bb | cc | dd 
------+----+----+----
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
- new |    |    | 
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
relname | aa  | bb | cc | dd 
+---------+-----+----+----+----
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
d       | new |    |    | 
 (6 rows)
 
 DELETE FROM a;
-SELECT * FROM a;
- aa 
-----
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
relname | aa 
+---------+----
 (0 rows)
 
-SELECT * FROM b;
- aa | bb 
-----+----
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
relname | aa | bb 
+---------+----+----
 (0 rows)
 
-SELECT * FROM c;
- aa | cc 
-----+----
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
relname | aa | cc 
+---------+----+----
 (0 rows)
 
-SELECT * FROM d;
- aa | bb | cc | dd 
-----+----+----+----
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
relname | aa | bb | cc | dd 
+---------+----+----+----+----
 (0 rows)
 
-SELECT * FROM ONLY a;
- aa 
-----
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
relname | aa 
+---------+----
 (0 rows)
 
-SELECT * FROM ONLY b;
- aa | bb 
-----+----
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
relname | aa | bb 
+---------+----+----
 (0 rows)
 
-SELECT * FROM ONLY c;
- aa | cc 
-----+----
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
relname | aa | cc 
+---------+----+----
 (0 rows)
 
-SELECT * FROM ONLY d;
- aa | bb | cc | dd 
-----+----+----+----
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
relname | aa | bb | cc | dd 
+---------+----+----+----+----
 (0 rows)
 
index 57b4fde4df6463cd9e7e8d227ca081d0161e5427..e1fde48222a581897f72bb28e564c2694a9b9d14 100644 (file)
@@ -34,14 +34,14 @@ INSERT INTO d(aa) VALUES('dddddd');
 INSERT INTO d(aa) VALUES('ddddddd');
 INSERT INTO d(aa) VALUES('dddddddd');
 
-SELECT * FROM a;
-SELECT * FROM b;
-SELECT * FROM c;
-SELECT * FROM d;
-SELECT * FROM ONLY a;
-SELECT * FROM ONLY b;
-SELECT * FROM ONLY c;
-SELECT * FROM ONLY d;
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
 
 UPDATE a SET aa='zzzz' WHERE aa='aaaa';
 UPDATE ONLY a SET aa='zzzzz' WHERE aa='aaaaa';
@@ -49,46 +49,46 @@ UPDATE b SET aa='zzz' WHERE aa='aaa';
 UPDATE ONLY b SET aa='zzz' WHERE aa='aaa';
 UPDATE a SET aa='zzzzzz' WHERE aa LIKE 'aaa%';
 
-SELECT * FROM a;
-SELECT * FROM b;
-SELECT * FROM c;
-SELECT * FROM d;
-SELECT * FROM ONLY a;
-SELECT * FROM ONLY b;
-SELECT * FROM ONLY c;
-SELECT * FROM ONLY d;
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
 
 UPDATE b SET aa='new';
 
-SELECT * FROM a;
-SELECT * FROM b;
-SELECT * FROM c;
-SELECT * FROM d;
-SELECT * FROM ONLY a;
-SELECT * FROM ONLY b;
-SELECT * FROM ONLY c;
-SELECT * FROM ONLY d;
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
 
 UPDATE a SET aa='new';
 
 DELETE FROM ONLY c WHERE aa='new';
 
-SELECT * FROM a;
-SELECT * FROM b;
-SELECT * FROM c;
-SELECT * FROM d;
-SELECT * FROM ONLY a;
-SELECT * FROM ONLY b;
-SELECT * FROM ONLY c;
-SELECT * FROM ONLY d;
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
 
 DELETE FROM a;
 
-SELECT * FROM a;
-SELECT * FROM b;
-SELECT * FROM c;
-SELECT * FROM d;
-SELECT * FROM ONLY a;
-SELECT * FROM ONLY b;
-SELECT * FROM ONLY c;
-SELECT * FROM ONLY d;
+SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid;
+SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid;
+SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid;
+SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid;
+SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid;
index 42e249892838a630c9c5734778d3be9e811e50f6..6827e5710c56cb1921c3b0ca31ae442562d0501c 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 find `pwd`/ \( -name _deadcode -a -prune \) -o \
-   -type f -name '*.[chyl]' -print|sed 's;//;/;g' | mkid
+   -type f -name '*.[chyl]' -print|sed 's;//;/;g' | mkid -
 
 find . -name  'CVS' -prune -o -type d -print  |while read DIR
 do