From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Fix up JOIN .. USING with domains |
Date: | 2003-06-25 04:32:34 |
Message-ID: | 200306250432.h5P4WYj26842@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Fix up JOIN .. USING with domains
------------------------------------------------------------------------
* *From*: *Rod Taylor <rbt(at)rbt(dot)ca <mailto:rbt%40rbt.ca>>*
* *To*: *PostgreSQL Patches <pgsql-patches(at)postgresql(dot)org
<mailto:pgsql-patches%40postgresql.org>>*
* *Subject*: *Fix up JOIN .. USING with domains*
* Date: 08 Jun 2003 09:57:57 -0400
------------------------------------------------------------------------
The attached fixes select_common_type() to support the below case:
create table t1( c1 int);
create domain dom_c1 int;
create table t2(c1 dom_c1);
select * from t1 join t2 using( c1 );
I didn't see a need for maintaining the domain as the preferred type. A
simple getBaseType() call on all elements of the list seems to be
enough.
--
Rod Taylor <rbt(at)rbt(dot)ca>
PGP Key: http://www.rbt.ca/rbtpub.asc
Index: src/backend/parser/parse_coerce.c
===================================================================
RCS file: /home/rbt/work/postgresql/cvs/pgsql-server/src/backend/parser/parse_coerce.c,v
retrieving revision 2.97
diff -c -r2.97 parse_coerce.c
*** src/backend/parser/parse_coerce.c 26 May 2003 00:11:27 -0000 2.97
--- src/backend/parser/parse_coerce.c 8 Jun 2003 13:54:06 -0000
***************
*** 599,609 ****
List *l;
Assert(typeids != NIL);
! ptype = lfirsto(typeids);
pcategory = TypeCategory(ptype);
foreach(l, lnext(typeids))
{
! Oid ntype = lfirsto(l);
/* move on to next one if no new information... */
if ((ntype != InvalidOid) && (ntype != UNKNOWNOID) && (ntype != ptype))
--- 599,609 ----
List *l;
Assert(typeids != NIL);
! ptype = getBaseType(lfirsto(typeids));
pcategory = TypeCategory(ptype);
foreach(l, lnext(typeids))
{
! Oid ntype = getBaseType(lfirsto(l));
/* move on to next one if no new information... */
if ((ntype != InvalidOid) && (ntype != UNKNOWNOID) && (ntype != ptype))
*Attachment: signature.asc <pgp00615.pgp>*
/Description:/ This is a digitally signed message part
------------------------------------------------------------------------
* Prev by Date: *Re: [BUGS] Detecting proper bison version before
make <msg00101.php>*
* Next by Date: *Re: [BUGS] Detecting proper bison version before
make <msg00105.php>*
* Previous by thread: *Re: pg_dump with conbin <msg00091.php>*
* Next by thread: *[GENERAL] use of Ececute commande with PSQL
<msg00124.php>*
* Index(es):
o *Date* <mail2.php#00100>
o *Thread* <threads.php#00100>
* Home <http://www.postgresql.org/mhonarc/> | Main Index <mail2.php> |
Thread Index <threads.php> *
Hub.Org Networking Services <http://www.hub.org> Area902 Commercial
Directory <http://www.area902.com>
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Joe Conway | 2003-06-25 05:25:21 | Re: bytea char escaping |
Previous Message | Bruce Momjian | 2003-06-25 04:19:37 | Re: UPDATE ... SET <col> = DEFAULT |