Обсуждение: function bit(integer)
whats the story of the function bit? was it out there some previous versions and got removed lately?? My 8.0.2 PG hasn't this function, if i found this function any where in previous code, shall i replace it with INT::bit(32) ??
On Sun, May 15, 2005 at 01:30:05PM +0200, Samer Abukhait wrote: > > whats the story of the function bit? > was it out there some previous versions and got removed lately?? > > My 8.0.2 PG hasn't this function, if i found this function any where > in previous code, shall i replace it with INT::bit(32) ?? I don't see the bit() function in the 8.0.3 documentation, so you might want to stick with documented functionality. In any case, it looks like the signature has changed. Here's what 8.0.3 has: test=> \df bit List of functions Schema | Name | Result data type | Argument data types ------------+------+------------------+----------------------- pg_catalog | bit | bit | bigint, integer pg_catalog | bit | bit | bit, integer, boolean pg_catalog | bit | bit | integer, integer (3 rows) Here's what 7.4.8 has: test=> \df bit List of functions Schema | Name | Result data type | Argument data types ------------+------+------------------+----------------------- pg_catalog | bit | bit | bigint pg_catalog | bit | bit | bit, integer, boolean pg_catalog | bit | bit | integer (3 rows) See also the 8.0 Release Notes to see how casting to bit(n) has changed. -- Michael Fuhr http://www.fuhr.org/~mfuhr/
Michael Fuhr <mike@fuhr.org> writes: > On Sun, May 15, 2005 at 01:30:05PM +0200, Samer Abukhait wrote: >> whats the story of the function bit? > I don't see the bit() function in the 8.0.3 documentation, so you > might want to stick with documented functionality. bit(n) is a type name, not a function call, and always has been AFAIR. The functions Michael lists are intended to be invoked via casts, not directly as functions. What is it you're trying to do exactly? regards, tom lane
I have some code that uses this "type name" and the 8.0.3 is not recognizing it -- Executing query: select "bit"(1); ERROR: function bit(integer) does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts.
Samer Abukhait <abukhait@gmail.com> writes: > select "bit"(1); > ERROR: function bit(integer) does not exist Try select 1::bit(32); or if you prefer select cast(1 as bit(32)); What you have above is essentially a direct invocation of the int-to-bit cast function; which you can do if you like, but it's deprecated for precisely the reason that we don't promise it'll remain stable. regards, tom lane