Re: Fix for tablename in targetlist - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: Fix for tablename in targetlist |
Date | |
Msg-id | 200105191720.f4JHKQU26711@candle.pha.pa.us Whole thread Raw |
In response to | Re: Fix for tablename in targetlist (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Fix for tablename in targetlist
|
List | pgsql-hackers |
> No; the auto-star would only happen if the thing is marked isRel. > So it would just cover the case of "select tab from tab". It seems > reasonable to me --- what other possible interpretation of the meaning > is there? > > I tend to agree that we should not change the code to make "select tab" > work, on the grounds of error-proneness. OK, here is another patch that does this: test=> select test from test; test ------ 1 (1 row) It is small to I am attaching it here. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 Index: src/backend/parser/parse_target.c =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/parser/parse_target.c,v retrieving revision 1.66 diff -c -r1.66 parse_target.c *** src/backend/parser/parse_target.c 2001/03/22 03:59:41 1.66 --- src/backend/parser/parse_target.c 2001/05/19 17:18:11 *************** *** 154,166 **** } else { ! /* Everything else but Attr */ ! p_target = lappend(p_target, ! transformTargetEntry(pstate, ! res->val, ! NULL, ! res->name, ! false)); } targetlist = lnext(targetlist); --- 154,183 ---- } else { ! Node *rteorjoin; ! int sublevels_up; ! ! if (IsA(res->val, Ident) && ! (rteorjoin = refnameRangeOrJoinEntry(pstate, ! ((Ident *) res->val)->name, ! &sublevels_up)) != NULL && ! IsA(rteorjoin, RangeTblEntry)) ! { ! /* Expand SELECT tab FROM tab; to SELECT tab.* FROM tab; */ ! p_target = nconc(p_target, ! expandRelAttrs(pstate, ! (RangeTblEntry *) rteorjoin)); ! } ! else ! { ! /* Everything else */ ! p_target = lappend(p_target, ! transformTargetEntry(pstate, ! res->val, ! NULL, ! res->name, ! false)); ! } } targetlist = lnext(targetlist);
pgsql-hackers by date: