pg.ddx.io pgsql-hackers@postgresql.org mailing list archive
help / color / mirror / Atom feedDomains and Indexes
8+ messages / 3 participants
[nested] [flat]
* Domains and Indexes
@ 2002-08-11 21:15 Rod Taylor <rbt@zort.ca>
0 siblings, 4 replies; 8+ messages in thread
From: Rod Taylor @ 2002-08-11 21:15 UTC (permalink / raw)
To: pgsql-hackers
Appears there is a problem finding the opclass when indexing a domain.
CREATE DOMAIN newint as int4;
CREATE TABLE tab (col newint unique);
ERROR: data type newint has no default operator class for access method
"btree"
You must specify an operator class for the index or define a
default operator class for the data type
Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
compatible matches. Fetching getBaseType() of the attribute fixes the
problem for domains (see attachment).
However, I have to wonder why GetDefaultOpClass doesn't simply use the
first Binary Compatible opclass. When there is more than one usable it
doesn't do anything useful.
Attachments:
index.patch (text/x-patch, 698B) download
Index: src/backend/commands/indexcmds.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/indexcmds.c,v
retrieving revision 1.80
diff -c -r1.80 indexcmds.c
*** src/backend/commands/indexcmds.c 2002/08/02 18:15:06 1.80
--- src/backend/commands/indexcmds.c 2002/08/11 21:14:13
***************
*** 482,487 ****
--- 482,490 ----
Oid exactOid = InvalidOid;
Oid compatibleOid = InvalidOid;
+ /* It could be a domain */
+ attrType = getBaseType(attrType);
+
/*
* We scan through all the opclasses available for the access method,
* looking for one that is marked default and matches the target type
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-11 21:32 Tom Lane <tgl@sss.pgh.pa.us>
parent: Rod Taylor <rbt@zort.ca>
3 siblings, 0 replies; 8+ messages in thread
From: Tom Lane @ 2002-08-11 21:32 UTC (permalink / raw)
To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers
Rod Taylor <rbt@zort.ca> writes:
> However, I have to wonder why GetDefaultOpClass doesn't simply use the
> first Binary Compatible opclass.
Because that would completely destroy the point of having multiple
opclasses for a datatype: you'd only do so if they *act different*.
Therefore, having the system choose one at random is a Bad Idea(tm).
regards, tom lane
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-14 05:29 Bruce Momjian <pgman@candle.pha.pa.us>
parent: Rod Taylor <rbt@zort.ca>
3 siblings, 1 reply; 8+ messages in thread
From: Bruce Momjian @ 2002-08-14 05:29 UTC (permalink / raw)
To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers
Your patch has been added to the PostgreSQL unapplied patches list at:
http://candle.pha.pa.us/cgi-bin/pgpatches
I will try to apply it within the next 48 hours.
---------------------------------------------------------------------------
Rod Taylor wrote:
> Appears there is a problem finding the opclass when indexing a domain.
>
> CREATE DOMAIN newint as int4;
> CREATE TABLE tab (col newint unique);
> ERROR: data type newint has no default operator class for access method
> "btree"
> You must specify an operator class for the index or define a
> default operator class for the data type
>
>
> Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> compatible matches. Fetching getBaseType() of the attribute fixes the
> problem for domains (see attachment).
>
> However, I have to wonder why GetDefaultOpClass doesn't simply use the
> first Binary Compatible opclass. When there is more than one usable it
> doesn't do anything useful.
>
>
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-14 11:55 Rod Taylor <rbt@zort.ca>
parent: Bruce Momjian <pgman@candle.pha.pa.us>
0 siblings, 1 reply; 8+ messages in thread
From: Rod Taylor @ 2002-08-14 11:55 UTC (permalink / raw)
To: Bruce Momjian <pgman@candle.pha.pa.us>; +Cc: pgsql-hackers
Sorry Bruce, this was included as a part of the patch of the below
subject:
Re: [PATCHES] Dump serials as serial -- not a sequence
Patch may be smart enough to say 'already applied'.
On Wed, 2002-08-14 at 01:29, Bruce Momjian wrote:
>
> Your patch has been added to the PostgreSQL unapplied patches list at:
>
> http://candle.pha.pa.us/cgi-bin/pgpatches
>
> I will try to apply it within the next 48 hours.
>
> ---------------------------------------------------------------------------
>
>
> Rod Taylor wrote:
> > Appears there is a problem finding the opclass when indexing a domain.
> >
> > CREATE DOMAIN newint as int4;
> > CREATE TABLE tab (col newint unique);
> > ERROR: data type newint has no default operator class for access method
> > "btree"
> > You must specify an operator class for the index or define a
> > default operator class for the data type
> >
> >
> > Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> > compatible matches. Fetching getBaseType() of the attribute fixes the
> > problem for domains (see attachment).
> >
> > However, I have to wonder why GetDefaultOpClass doesn't simply use the
> > first Binary Compatible opclass. When there is more than one usable it
> > doesn't do anything useful.
> >
> >
>
> [ Attachment, skipping... ]
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
>
> --
> Bruce Momjian | http://candle.pha.pa.us
> pgman@candle.pha.pa.us | (610) 359-1001
> + If your life is a hard drive, | 13 Roberts Road
> + Christ can be your backup. | Newtown Square, Pennsylvania 19073
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-14 17:38 Bruce Momjian <pgman@candle.pha.pa.us>
parent: Rod Taylor <rbt@zort.ca>
0 siblings, 0 replies; 8+ messages in thread
From: Bruce Momjian @ 2002-08-14 17:38 UTC (permalink / raw)
To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers
Thanks. I will keep it in the queue for CVS commit message sake.
---------------------------------------------------------------------------
Rod Taylor wrote:
> Sorry Bruce, this was included as a part of the patch of the below
> subject:
>
> Re: [PATCHES] Dump serials as serial -- not a sequence
>
>
> Patch may be smart enough to say 'already applied'.
>
>
> On Wed, 2002-08-14 at 01:29, Bruce Momjian wrote:
> >
> > Your patch has been added to the PostgreSQL unapplied patches list at:
> >
> > http://candle.pha.pa.us/cgi-bin/pgpatches
> >
> > I will try to apply it within the next 48 hours.
> >
> > ---------------------------------------------------------------------------
> >
> >
> > Rod Taylor wrote:
> > > Appears there is a problem finding the opclass when indexing a domain.
> > >
> > > CREATE DOMAIN newint as int4;
> > > CREATE TABLE tab (col newint unique);
> > > ERROR: data type newint has no default operator class for access method
> > > "btree"
> > > You must specify an operator class for the index or define a
> > > default operator class for the data type
> > >
> > >
> > > Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> > > compatible matches. Fetching getBaseType() of the attribute fixes the
> > > problem for domains (see attachment).
> > >
> > > However, I have to wonder why GetDefaultOpClass doesn't simply use the
> > > first Binary Compatible opclass. When there is more than one usable it
> > > doesn't do anything useful.
> > >
> > >
> >
> > [ Attachment, skipping... ]
> >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 4: Don't 'kill -9' the postmaster
> >
> > --
> > Bruce Momjian | http://candle.pha.pa.us
> > pgman@candle.pha.pa.us | (610) 359-1001
> > + If your life is a hard drive, | 13 Roberts Road
> > + Christ can be your backup. | Newtown Square, Pennsylvania 19073
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
> >
>
>
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-15 02:53 Bruce Momjian <pgman@candle.pha.pa.us>
parent: Rod Taylor <rbt@zort.ca>
3 siblings, 0 replies; 8+ messages in thread
From: Bruce Momjian @ 2002-08-15 02:53 UTC (permalink / raw)
To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers
Your patch has been added to the PostgreSQL unapplied patches list at:
http://candle.pha.pa.us/cgi-bin/pgpatches
I will try to apply it within the next 48 hours.
---------------------------------------------------------------------------
Rod Taylor wrote:
> Appears there is a problem finding the opclass when indexing a domain.
>
> CREATE DOMAIN newint as int4;
> CREATE TABLE tab (col newint unique);
> ERROR: data type newint has no default operator class for access method
> "btree"
> You must specify an operator class for the index or define a
> default operator class for the data type
>
>
> Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> compatible matches. Fetching getBaseType() of the attribute fixes the
> problem for domains (see attachment).
>
> However, I have to wonder why GetDefaultOpClass doesn't simply use the
> first Binary Compatible opclass. When there is more than one usable it
> doesn't do anything useful.
>
>
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-15 02:54 Bruce Momjian <pgman@candle.pha.pa.us>
parent: Rod Taylor <rbt@zort.ca>
3 siblings, 1 reply; 8+ messages in thread
From: Bruce Momjian @ 2002-08-15 02:54 UTC (permalink / raw)
To: Rod Taylor <rbt@zort.ca>; +Cc: pgsql-hackers
[ Sorry for previous message saying it was added to queue.]
Patch applied. Thanks.
---------------------------------------------------------------------------
Rod Taylor wrote:
> Appears there is a problem finding the opclass when indexing a domain.
>
> CREATE DOMAIN newint as int4;
> CREATE TABLE tab (col newint unique);
> ERROR: data type newint has no default operator class for access method
> "btree"
> You must specify an operator class for the index or define a
> default operator class for the data type
>
>
> Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> compatible matches. Fetching getBaseType() of the attribute fixes the
> problem for domains (see attachment).
>
> However, I have to wonder why GetDefaultOpClass doesn't simply use the
> first Binary Compatible opclass. When there is more than one usable it
> doesn't do anything useful.
>
>
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Domains and Indexes
@ 2002-08-15 03:04 Bruce Momjian <pgman@candle.pha.pa.us>
parent: Bruce Momjian <pgman@candle.pha.pa.us>
0 siblings, 0 replies; 8+ messages in thread
From: Bruce Momjian @ 2002-08-15 03:04 UTC (permalink / raw)
To: Bruce Momjian <pgman@candle.pha.pa.us>; +Cc: Rod Taylor <rbt@zort.ca>; pgsql-hackers
I backed this out. It is part of a later patch still in the queue.
---------------------------------------------------------------------------
Bruce Momjian wrote:
>
> [ Sorry for previous message saying it was added to queue.]
>
> Patch applied. Thanks.
>
> ---------------------------------------------------------------------------
>
>
> Rod Taylor wrote:
> > Appears there is a problem finding the opclass when indexing a domain.
> >
> > CREATE DOMAIN newint as int4;
> > CREATE TABLE tab (col newint unique);
> > ERROR: data type newint has no default operator class for access method
> > "btree"
> > You must specify an operator class for the index or define a
> > default operator class for the data type
> >
> >
> > Specifically, GetDefaultOpClass() finds 0 exact matches and 3 binary
> > compatible matches. Fetching getBaseType() of the attribute fixes the
> > problem for domains (see attachment).
> >
> > However, I have to wonder why GetDefaultOpClass doesn't simply use the
> > first Binary Compatible opclass. When there is more than one usable it
> > doesn't do anything useful.
> >
> >
>
> [ Attachment, skipping... ]
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
>
> --
> Bruce Momjian | http://candle.pha.pa.us
> pgman@candle.pha.pa.us | (610) 359-1001
> + If your life is a hard drive, | 13 Roberts Road
> + Christ can be your backup. | Newtown Square, Pennsylvania 19073
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
^ permalink raw reply [nested|flat] 8+ messages in thread
end of thread, other threads:[~2002-08-15 03:04 UTC | newest]
Thread overview: 8+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2002-08-11 21:15 Domains and Indexes Rod Taylor <rbt@zort.ca>
2002-08-11 21:32 ` Tom Lane <tgl@sss.pgh.pa.us>
2002-08-14 05:29 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-14 11:55 ` Rod Taylor <rbt@zort.ca>
2002-08-14 17:38 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 02:53 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 02:54 ` Bruce Momjian <pgman@candle.pha.pa.us>
2002-08-15 03:04 ` Bruce Momjian <pgman@candle.pha.pa.us>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox