From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Espaces à droite dans des colonnes de type CHAR |
Date: | 2009-01-13 11:36:19 |
Message-ID: | b4913f37-194f-40df-bbe6-63a4d9a584ea@mm |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Philippe Beaudoin wrote:
> CREATE TABLE test1 (a character(4));
> INSERT INTO test1 VALUES ('ok');
> SELECT a, char_length(a) FROM test1; -- (1)
> a | char_length
> ------+-------------
> ok | 2
> Puisque la colonne "a" fait 4 caractères, je m'attends à ce que la
longueur
> de ce qui est stocké, et surtout restitué, soit égale à 4 et non 2.
> A ce moment, je me dis que la suppression des blancs à droite peut
être
> très intéressant pour gagner de la place sur disque.
En fait c'est un peu le contraire. Les blancs à droite sont stockés,
mais ils sont "non-significatifs", donc lors de l'utilisation, ils sont
susceptibles d'être considérés comme inexistants, apparemment en
conformité avec le standard SQL.
Ca donne des résultats parfois contraires à l'intuition; ce serait la
sémantique du type, dictée par le standard, qui serait tordue, PG ne
faisant que s'y conformer.
D'autres SGBD ont choisi d'appliquer des règles différentes, par
exemple de considérer comme "significatifs" les blancs auto-ajoutés,
sauf pour les comparaisons.
Cordialement,
--
Daniel
PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org
From | Date | Subject | |
---|---|---|---|
Next Message | Jean-Paul Argudo | 2009-01-13 13:26:12 | Re: Espaces à droite dans des colonnes de type CHAR |
Previous Message | philippe.beaudoin | 2009-01-13 07:52:19 | Espaces à droite dans des colonnes de type CHAR |