pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Frank Joerdens <frank@joerdens.de>
Cc: Thomas Lockhart <lockhart@alumni.caltech.edu>
Cc: pgsql-hackers@postgreSQL.org
Cc: pgsql-interfaces@postgreSQL.org
Subject: Re: [INTERFACES] DBD::Pg installation seems to fail with 7.1 libs
Date: Fri, 03 Nov 2000 16:55:48 -0500
Message-ID: <8277.973288548@sss.pgh.pa.us> (raw)
In-Reply-To: <20001103143435.A16341@rakete.joerdens.de>
References: <20001103143435.A16341@rakete.joerdens.de>

Frank Joerdens <frank@joerdens.de> writes:
> [ DBD::Pg fails against current sources with ]
> DBD::Pg::db table_info failed: ERROR:  Unable to identify an ordering
> operator '<' for type 'unknown'

Hmm.  It looks like this is caused by my reimplementation of UNION to
use CASE-style datatype resolution.  The DBD code is fetching table
data with a UNION that includes a couple of untyped literal constants.
Boiled down:

regression=# select 'foo' union select 'bar';
ERROR:  Unable to identify an ordering operator '<' for type 'unknown'
        Use an explicit ordering operator or modify the query

This is bad, since the same query used to work pre-7.1.

The reason it worked is that the old UNION code had an ugly hack to
force such constants to be treated as type text.  There is no such hack
in the datatype unification code right now.

Thomas, you've been muttering about altering the type resolution rules
so that "unknown" will be treated as "text" when all else fails.  Are
you planning to commit such a thing for 7.1?  If not, I'll probably have
to hack up parse_coerce.c's select_common_type(), along the lines of

  			}
  		}
  	}
+	/* if all inputs are UNKNOWN, treat as text */
+ 	if (ptype == UNKNOWNOID)
+		ptype = TEXTOID;
  	return ptype;
  }


This might be an appropriate change anyway.  Comments?

			regards, tom lane



view thread (6+ messages)  latest in thread

Message-ID: <8277.973288548@sss.pgh.pa.us>
Permalink:  ../8277.973288548@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/8277.973288548@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: tgl@sss.pgh.pa.us, frank@joerdens.de, lockhart@alumni.caltech.edu, pgsql-hackers@postgreSQL.org
  Subject: Re: [INTERFACES] DBD::Pg installation seems to fail with 7.1 libs
  In-Reply-To: <8277.973288548@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

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