Thread: Buglet?

Buglet?

From
Christopher Sawtell
Date:
chris=# select *, array_element_count(pupils_on_leave) as 
number_awol_pupils from absence ;         date          | lesson_number | pupils_on_leave |  pupils_awol  
| number_awol_pupils
------------------------+---------------+-----------------+---------------+--------------------2001-03-08 00:00:00+13 |
          25 |                 | {4,29,3}      |2001-03-08 00:00:00+13 |            26 |                 |
{17,27,28,14}|2001-03-08 00:00:00+13 |            27 |                 | {5,24,13}     |2001-03-08 00:00:00+13 |
   12 | {12,34}         | {23}          
 
|                  22001-03-07 00:00:00+13 |            21 |                 | {4,5,28,15}   |
(5 rows)

As expected.

chris=# update absence set pupils_on_leave[1]=9 where lesson_number=21;
UPDATE 1

Now I tell pg to insert a value in the array, & he says he's done it.

chris=# select *, array_element_count(pupils_on_leave) as 
number_awol_pupils from absence ;         date          | lesson_number | pupils_on_leave |  pupils_awol  
| number_awol_pupils
------------------------+---------------+-----------------+---------------+--------------------2001-03-08 00:00:00+13 |
          25 |                 | {4,29,3}      |2001-03-08 00:00:00+13 |            26 |                 |
{17,27,28,14}|2001-03-08 00:00:00+13 |            27 |                 | {5,24,13}     |2001-03-08 00:00:00+13 |
   12 | {12,34}         | {23}          
 
|                  22001-03-07 00:00:00+13 |            21 |                 | {4,5,28,15}   
|   
(5 rows)
But he has told me a fat fib.

chris=# \d absence                   Table "absence"   Attribute    |           Type           | Modifier
-----------------+--------------------------+----------date            | timestamp with time zone |lesson_number   |
integer                 |pupils_on_leave | integer[]                |pupils_awol     | integer[]                |
 
It that a bug?

It would be very nice for me if that worked.
( you have to put '{}' in the array field before usisng the field[n]=x 
notation. )


-- 
Sincerely etc.,
NAME       Christopher SawtellCELL PHONE 021 257 4451ICQ UIN    45863470EMAIL      csawtell @ xtra . co . nzCNOTES
ftp://ftp.funet.fi/pub/languages/C/tutorials/sawtell_C.tar.gz
-->> Please refrain from using HTML or WORD attachments in e-mails to me 
<<--



Re: Buglet?

From
Tom Lane
Date:
Christopher Sawtell <csawtell@xtra.co.nz> writes:
> It that a bug?

You could argue that.  The handling of NULL arrays (not to mention NULLs
in arrays) is pretty brain-d^H^H^H^H^H^Hsimplistic; I don't think the
original designer thought about NULLs at all.

All of the array code could use an overhaul, actually, to move it out of
the student-project category and into the professional-tool category.
I've taken occasional swipes at it over the past couple of years, but
it still leaves a lot to be desired.  Any volunteers out there?
        regards, tom lane