Re: mensajes de excepccion en esañol

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
Cc: blackbeer <dblackbeer(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: mensajes de excepccion en esañol
Date: 2005-09-02 20:01:12
Message-ID: 20050902200112.GH29066@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Sep 02, 2005 at 12:47:38PM -0500, Manuel Sugawara wrote:
> Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:
>
> > En resumen, si uno configura todo correctamente, las cosas funcionan
> > como se espera. Lamentablemente es bastante facil equivocarse en la
> > configuracion :-(
>
> Bueeeno, creo que nunca lo había pensado, simplemente me había
> acostumbrado a vivir con el error pero ahora todo es claro. El
> problema viene de que tengo mi base de datos en latin1 (sobre todo
> para el manejo de collations y algunas coasas de regex) y mi ambiente
> en utf8. Cuando abro psql todo funciona bien, ie se da cuenta que
> estoy en utf8 y hace el recoding como debería, por ejemplo, el mensje
> de bienvenida se ve bien:

Humm, yo puedo reproducir variados problemas si echo a perder mi
ambiente. Pero al final, si defino las variables correctamente todo se
ve bien. ¿Qué tienes en las variables LC_*? Mi ambiente latin1 no
tiene ninguna de esas variables, y si lo dejo así para el UTF8 hay
problemas de varios tipos; pero en cuanto defino LC_ALL=es_CL.utf8 todo
funciona.

Por ejemplo, tuve un problema con \d porque creé una tabla cuyo nombre
llevaba tilde antes de definir el LC_ALL (este es el terminal utf8);
pero definiéndolo se acaba el problema:

alvherre=# create table decoración (a text);
CREATE TABLE
alvherre=# \d
ERROR: could not convert UTF8 character 0x00ed to ISO8859-1

alvherre=# \q
03:47 drizzt ~ 0$ LC_ALL=es_CL.utf8 psql
Bienvenido a psql 8.1devel, el terminal interactivo de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para obtener ayuda sobre comandos SQL
\? para obtener ayuda sobre comandos internos
\g o punto y coma (;) para ejecutar consulta
\q para salir

alvherre=# set client_encoding to utf8;
SET
alvherre=# select * from pg_class where relname like 'dec%';
relname | relnamespace | reltype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | reltoastrelid | reltoastidxid | relhasindex | relisshared | relkind | relnatts | relchecks | reltriggers | relukeys | relfkeys | relrefs | relhasoids | relhaspkey | relhasrules | relhassubclass | relacl
------------+--------------+---------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+---------+----------+-----------+-------------+----------+----------+---------+------------+------------+-------------+----------------+--------
decoración | 2200 | 24670 | 10 | 0 | 24669 | 0 | 0 | 0 | 24671 | 0 | f | f | r | 1 | 0 | 0 | 0 | 0 | 0 | f | f | f | f |
(1 fila)

alvherre=# \d
Listado de relaciones
Schema | Nombre | Tipo | Dueño
--------+--------------------------------+-----------+----------
public | a | tabla | alvherre
public | b | tabla | alvherre
public | decoración | tabla | alvherre
public | foo | tabla | alvherre
public | test | tabla | alvherre
public | trabajadores | tabla | alvherre
public | trabajadores_pk_trabajador_seq | secuencia | alvherre
(7 filas)

Y los mensajes de error se despliegan OK también:

alvherre=# insert into decoración values ('a');
ERROR: llave duplicada viola restricción unique «decoración_a_key»

> Ahora, la parte de psql se resolvería si se le enseña a hacer de forma
> explícita un SET client_encoding TO 'utf8' si se da cuenta que el
> ambiente es UTF-8 y la base de datos no, esto es nada más que SMOP.

Ah, eso sería bueno, indudablemente.

--
Alvaro Herrera -- Valdivia, Chile Architect, www.EnterpriseDB.com
"Un poeta es un mundo encerrado en un hombre" (Victor Hugo)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Valenzuela 2005-09-02 21:04:10 EnterpriseDB Vs Postgresql
Previous Message Manuel Sugawara 2005-09-02 17:47:38 Re: mensajes de excepccion en esañol