pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: Bruno Wolff III <bruno@wolff.to>
Cc: pgsql-hackers@postgreSQL.org
Subject: Re: Mislabeled timestamp functions (was Re: [SQL] [NOVICE] date_trunc'd timestamp index possible?)
Date: Sat, 02 Oct 2004 14:22:50 -0400
Message-ID: <22070.1096741370@sss.pgh.pa.us> (raw)
In-Reply-To: <200410021941.30084.peter_e@gmx.net>
References: <web-1583353@davinci.ethosmedia.com>
	<13492.1096656574@sss.pgh.pa.us>
	<15677.1096671183@sss.pgh.pa.us>
	<200410021941.30084.peter_e@gmx.net>

Peter Eisentraut <peter_e@gmx.net> writes:
> Tom Lane wrote:
>> What I'm inclined to do with these is change pg_proc.h but not force
>> an initdb.  Does anyone want to argue for an initdb to force it to be
>> fixed in 8.0?  We've lived with the wrong labelings for some time now
>> without noticing, so it doesn't seem like a serious enough bug to
>> force a post-beta initdb ... to me anyway.

> I'd prefer if all users of 8.0 were guaranteed to have the same catalog.  

Well, there's something to be said for that viewpoint too.  Anyone else
feel the same?

If we do go for an initdb, I'd like at the same time to do something
I had intended to do but forgotten, which is to yank the functions
and operators for basic arithmetic on type "char", and instead put in
(explicit) conversions between "char" and integer.  See for instance
http://archives.postgresql.org/pgsql-sql/2002-11/msg00116.php
http://archives.postgresql.org/pgsql-general/2004-08/msg01562.php
http://archives.postgresql.org/pgsql-general/2004-09/msg01209.php

Specifically I want to remove these operators:

 oid |        oid        | oprresult 
-----+-------------------+-----------
 635 | +("char","char")  | "char"
 636 | -("char","char")  | "char"
 637 | *("char","char")  | "char"
 638 | /("char","char")  | "char"

and their underlying functions:

 oid  |           oid            | prorettype |   prosrc    
------+--------------------------+------------+-------------
 1248 | charpl("char","char")    | "char"     | charpl
 1250 | charmi("char","char")    | "char"     | charmi
   77 | charmul("char","char")   | "char"     | charmul
   78 | chardiv("char","char")   | "char"     | chardiv

The following operators on "char" will remain:

 oid |        oid        | oprresult 
-----+-------------------+-----------
  92 | =("char","char")  | boolean
 630 | <>("char","char") | boolean
 631 | <("char","char")  | boolean
 632 | <=("char","char") | boolean
 633 | >("char","char")  | boolean
 634 | >=("char","char") | boolean

These are not as dangerous as the arithmetic operators, because in a
situation where the parser is having difficulty resolving types, it
will prefer the "text" comparison operators over these.  The reason
the "char" arithmetic operators are dangerous is that they are the only
ones of those names in the STRING type category.

			regards, tom lane



view thread (11+ messages)  latest in thread

Message-ID: <22070.1096741370@sss.pgh.pa.us>
Permalink:  ../22070.1096741370@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/22070.1096741370@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-sql@postgresql.org
  Cc: tgl@sss.pgh.pa.us, peter_e@gmx.net, bruno@wolff.to, pgsql-hackers@postgreSQL.org
  Subject: Re: Mislabeled timestamp functions (was Re: [SQL] [NOVICE] date_trunc'd timestamp index possible?)
  In-Reply-To: <22070.1096741370@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