no implicit cast error in 9.2?
Hi,
I am using
PostgreSQL 9.2.3 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6
20120305 (Red Hat 4.4.6-4), 64-bit.
I got a bit confused after installing this version. So far I used to know
that from Postgresql 8.3 implicit casting has been removed and the
following should not work at 8.3 :
create table testtab ( id varchar, id1 int)
insert into testtab values (1,1);
Where it was good to work at 8.1
http://osdir.com/ml/pgsql-general/2011-02/msg00055.html
I also faced the problem earlier.
But in 9.2 it is working perfectly.
Am I missing any release notes?
Please share your opinion. It will be appreciated.
Thanks.
On 02/08/2013 12:23 PM, AI Rumman wrote:
Hi,
I am using
PostgreSQL 9.2.3 on x86_64-unknown-linux-gnu, compiled by gcc (GCC)
4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit.I got a bit confused after installing this version. So far I used to
know that from Postgresql 8.3 implicit casting has been removed and the
following should not work at 8.3 :
create table testtab ( id varchar, id1 int)
insert into testtab values (1,1);Where it was good to work at 8.1
http://osdir.com/ml/pgsql-general/2011-02/msg00055.html
I also faced the problem earlier.
But in 9.2 it is working perfectly.
Am I missing any release notes?Please share your opinion. It will be appreciated.
As I remember implicit casting was not entirely removed and the
text <--> int combination was kept.
To extend your example, you can see it works both ways::
test=# create table testtab ( id varchar, id1 int);
CREATE TABLE
test=# insert into testtab values (1,1);
INSERT 0 1
test=# insert into testtab values (1,'1');
INSERT 0 1
test=# SELECT * from testtab ;
id | id1
----+-----
1 | 1
1 | 1
(2 rows)
Unless of course you use a non-integer string:
test=# insert into testtab values (1,'one');
ERROR: invalid input syntax for integer: "one"
LINE 1: insert into testtab values (1,'one');
Thanks.
--
Adrian Klaver
adrian.klaver@gmail.com
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Adrian Klaver <adrian.klaver@gmail.com> wrote:
On 02/08/2013 12:23 PM, AI Rumman wrote:
I got a bit confused after installing this version. So far I used to
know that from Postgresql 8.3 implicit casting has been removed and the
following should not work at 8.3 :
create table testtab ( id varchar, id1 int)
insert into testtab values (1,1);Where it was good to work at 8.1
http://osdir.com/ml/pgsql-general/2011-02/msg00055.html
I also faced the problem earlier.
But in 9.2 it is working perfectly.
Am I missing any release notes?Please share your opinion. It will be appreciated.
As I remember implicit casting was not entirely removed and the
text <--> int combination was kept.
I think it has more to do with retaining (or adding back, I don't
recall) *assignment* casts which aren't supported as *implicit*
casts.
test=# select '1'::int = '1'::text;
ERROR: operator does not exist: integer = text
LINE 1: select '1'::int = '1'::text;
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
-Kevin
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
AI Rumman <rummandba@gmail.com> writes:
I got a bit confused after installing this version. So far I used to know
that from Postgresql 8.3 implicit casting has been removed and the
following should not work at 8.3 :
create table testtab ( id varchar, id1 int)
insert into testtab values (1,1);
No, that will work fine in any version, because you're calling upon an
assignment cast not an implicit cast. What once worked and no longer
does is cases like
SELECT length(1);
where the integer argument used to be implicitly cast to text.
regards, tom lane
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
On 02/08/2013 01:50 PM, Kevin Grittner wrote:
Adrian Klaver <adrian.klaver@gmail.com> wrote:
On 02/08/2013 12:23 PM, AI Rumman wrote:
I got a bit confused after installing this version. So far I used to
know that from Postgresql 8.3 implicit casting has been removed and the
following should not work at 8.3 :
create table testtab ( id varchar, id1 int)
insert into testtab values (1,1);Where it was good to work at 8.1
http://osdir.com/ml/pgsql-general/2011-02/msg00055.html
I also faced the problem earlier.
But in 9.2 it is working perfectly.
Am I missing any release notes?Please share your opinion. It will be appreciated.
As I remember implicit casting was not entirely removed and the
text <--> int combination was kept.I think it has more to do with retaining (or adding back, I don't
recall) *assignment* casts which aren't supported as *implicit*
casts.
Ah, so that is the reason. A distinction I missed:(
--
Adrian Klaver
adrian.klaver@gmail.com
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general