On 30 January 2011 21:33, Jeff Davis <pg...@j-davis.com> wrote: > [ trying a third time to send this message, apparently there were > infrastructure problems before ] > > On Sun, 2011-01-30 at 02:55 +0000, Thom Brown wrote: >> postgres=# select '[18,20]'::numrange @> 19; >> ERROR: operator does not exist: numrange @> integer >> LINE 1: select '[18,20]'::numrange @> 19; >> ^ >> HINT: No operator matches the given name and argument type(s). You >> might need to add explicit type casts. > > It's because it doesn't know the type on the right side, and assumes > it's an int4. > > select '[18,20]'::numrange @> 19.0; > > works.
My misapprehension stems from the assumption that the anyrange,anynonarray entry for the @> operator, and the contains(anyrange, anynonarray) function would resolve since numrange is a subset of anyrange and int4 is a subset of anynonarray. Obviously it shouldn't work as the underlying type of the range isn't an integer, but just trying to understand how the error message came about. -- Thom Brown Twitter: @darkixion IRC (freenode): dark_ixion Registered Linux user: #516935 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers