Re: [Pgsql-ayuda] psql no actualiza los elementos de un array?

From: Alvaro Herrera Munoz <alvherre(at)dcc(dot)uchile(dot)cl>
To: Carlos Ojea Castro <carlosojea(at)leveltelecom(dot)es>
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] psql no actualiza los elementos de un array?
Date: 2004-02-03 20:29:19
Message-ID: 20040203202919.GB4366@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, Feb 03, 2004 at 04:12:53PM +0100, Carlos Ojea Castro wrote:

> Tengo una duda a la hora de actualizar datos en el campo 'mediciones' de
> tipo 'int [145]'.
> En teoria todo va bien, pero al comprobar los datos, los valores no
> aparecen.

No, lamentablemente no puedes hacer eso. Un array no puede tener
elementos nulos; o bien el array completo es NULL, o bien todos los
elementos son valores definidos. Tienes que definir valores para
todos los elementos, y _entonces_ puedes actualizar uno cualquiera
de ellos. Me parece sorprendente que no arroje un error cuando trates
de actualizar un elemento en un array que es NULL, quizas es un bug.

En el ejemplo de abajo, mediciones era inicialmente NULL:
(esto es con 7.4beta5)

alvherre=> update foo set mediciones = '{500}';
UPDATE 1
alvherre=> update foo set mediciones[3]=500;
ERROR: los subndices de array no son vlidos
alvherre=> update foo set mediciones[2]=500;
UPDATE 1
alvherre=> select * from foo;
mediciones
------------
{500,500}
(1 fila)

alvherre=> update foo set mediciones[2]=100;
UPDATE 1
alvherre=> select * from foo;
mediciones
------------
{500,100}
(1 fila)

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Ciencias polticas es la ciencia de entender por qu
los polticos actan como lo hacen" (netfunny.com)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gunnar Wolf 2004-02-03 22:07:43 Re: Re: [Pgsql-ayuda] Manejo de excepciones
Previous Message Martin Marques 2004-02-03 20:05:21 Re: [Pgsql-ayuda] Sobre vacuum