Re: BUG #5748: Invalid oidvector data during binary recv - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #5748: Invalid oidvector data during binary recv
Date
Msg-id 16032.1289839906@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #5748: Invalid oidvector data during binary recv  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #5748: Invalid oidvector data during binary recv
List pgsql-bugs
I wrote:
> Yeb Havinga <yebhavinga@gmail.com> writes:
>> Binary send and recv of the value at hand would change it into a 0-D vector.

> The reason for that is that in general we don't make a distinction
> between zero-size arrays of different dimensions.

Actually, after consuming a bit more caffeine, I see what Yeb is on about.
Even though the system in general doesn't make much of a distinction
between zero-element arrays of different dimensionalities, there *are*
functions that can distinguish --- array_ndims() being the most obvious
one.  Shouldn't we ensure that binary dump and reload of an array value
doesn't change the value in any SQL-observable way?  If so, I think his
patch is correct, even though it's changing more than just the
originally-complained-of behavior.

While I'm looking at this ... why is it that array_ndims returns NULL
and not 0 for a zero-dimensional array?  0-D arrays might have been
unsupported at one time, but they're certainly considered valid now.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #5748: Invalid oidvector data during binary recv
Next
From: Greg Stark
Date:
Subject: Re: BUG #5748: Invalid oidvector data during binary recv