Skip site navigation (1) Skip section navigation (2)

Re: Cleaning up the INET/CIDR mess

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Cleaning up the INET/CIDR mess
Date: 2006-02-01 16:07:44
Message-ID: 200602011607.k11G7il15887@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
Peter Eisentraut wrote:
> Bruce Momjian wrote:
> > I agree.  Let's do the zeroing and see if people complain about it.
> 
> I'm complaining.  Losing data on a cast is not common behavior.

[ Sorry for the delay.]

OK, that's clear.  :-)

I looked around to see if I could find any places where we implicitly
cast and lose data.  I tried factorial(3.2), and that cast failed.

However, if I do this explicit cast:

	test=> SELECT '3.4'::float8::integer;
	 int4
	------
	    3
	(1 row)

it works.  Can't we consider this:

	test=> SELECT '1.2.3.4/24'::inet::cidr;
	    cidr
	------------
	 1.2.3.0/24
	(1 row)

a similar situation?  inet is like float8 (bits beyond the masklen),
while cidr is like int4.

Is it only implicit casts you are worried about?  Do we have any of
those left?  All functions that take cidr also have an inet version, so
I don't see how an implicit cast to cidr could happen.

-- 
  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

In response to

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2006-02-01 16:08:58
Subject: Re: Failed install - libgen.so doesn't exist
Previous:From: Bruce MomjianDate: 2006-02-01 15:59:39
Subject: Re: A note about testing EXEC_BACKEND on recent Linuxen

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group