Vous n'êtes pas identifié(e).

#1 08/08/2011 11:12:21

cbois
Membre

[insert/update] Cast implicite de int vers varchar (et vice versa)

Bonjour,

Mes instances de postgres font un cast implicite de int vers varchar (et vice versa) lors des requêtes (Au lieu de mettre la requête SQL en erreur).

Exemples :
# create table test_insert (a varchar(10));
CREATE TABLE
# insert into test_insert (a) values (100);
INSERT 0 1

# create table test_insert2 (a int);
CREATE TABLE
# insert into test_insert2 values ('12');
INSERT 0 1
# select * from test_insert2 where a = '12';
a
----
12
(1 ligne)

Dans le fichier postgresql.conf, je n'ai trouvé aucun paramètre qui demande ce comportement.
J'ai d'ailleurs repris la conf sur une autre machine qui n'a pas ce comportement, mais cela persiste !
Sur ma machine, j'ai le problème avec mes deux instances Postgres (8.4 et 9.0).

Merci d'avance.

Hors ligne

#2 08/08/2011 11:53:23

gleu
Administrateur

Re : [insert/update] Cast implicite de int vers varchar (et vice versa)

J'ai le même résultat en 9.0 mais j'avoue que je ne vois pas quel est votre problème ?


Guillaume.

Hors ligne

#3 08/08/2011 15:06:07

cbois
Membre

Re : [insert/update] Cast implicite de int vers varchar (et vice versa)

Je n'ai pas le même comportement entre mon environnement de dev (cast implicite) et mon environnement de production (Requête en erreur) alors que les fichiers postgresql.conf sont identiques (hormis la taille des caches etc.).
Ces différences de comportement induisent des bugs en production qui ne sont pas détectés lors de la phase de développement.

J'aimerai donc que ces requêtes plantent sur mon environnement de dev (Avec une erreur du type : Problème de typage)

Merci d'avance.

Hors ligne

#4 08/08/2011 15:25:04

gleu
Administrateur

Re : [insert/update] Cast implicite de int vers varchar (et vice versa)

Quelle version de PostgreSQL sur la machine de production ? et quelle erreur (exacte) ?


Guillaume.

Hors ligne

#5 08/08/2011 17:19:54

cbois
Membre

Re : [insert/update] Cast implicite de int vers varchar (et vice versa)

Oups, je suis vraiment désolé mais il semble que le comportement soit identique.
Une erreur de communication inter-services est la cause de ce malentendu ...

Encore désolé pour cette perte de temps. Bonne journée.

Hors ligne

Pied de page des forums