Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-fr-generale by date

Next:From: Jean-Paul ArgudoDate: 2009-01-13 13:26:12
Subject: Re: Espaces à droite dans des colonnes de type CHAR
Previous:From: philippe.beaudoinDate: 2009-01-13 07:52:19
Subject: Espaces à droite dans des colonnes de type CHAR

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group