Re: Espaces à droite dans des colonnes de type CHAR

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

In response to

Browse pgsql-fr-generale by date

  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