From: | cdecarlo <cdecarlo(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Setting variables equal to elements from an Array |
Date: | 2008-01-09 14:14:10 |
Message-ID: | 548909bf-91af-4fcb-9fd0-44e4dbd6ac97@k2g2000hse.googlegroups.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Jan 8, 11:35 am, t(dot)(dot)(dot)(at)sss(dot)pgh(dot)pa(dot)us (Tom Lane) wrote:
> cdecarlo <cdeca(dot)(dot)(dot)(at)gmail(dot)com> writes:
> > I'm new to pl/pgsql and postgres and I need some help with a part of
> > my function. In the function I loop through a multidemensional array
> > ( [n][3] ), once, while inside the loop, I find the index I want to
> > work with I would like to set a separate variableequalto the element
> > in the array at that index ( newVar = array[i] ).
>
> The rest of your message suggests that what you want is not that at all,
> but to set the other variable to an array that consists of one or moreelementsfrom the original array. You need to be clearer in your own
> mind about which it is you're doing --- an array of one element is
> completely different from the element itself.
>
> If you use subscripts that include a colon (:), then the result is a
> sub-array and has to be assigned to a variable that's of the array
> type. If you don't use a colon then the subscripting operation produces
> a single value that's of the array element type, and has to be assigned
> to a variable of that type. You have to use the correct number of
> subscripts in either case, else you get a NULL, as you found out.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match
Tom,
Maybe it's the combination of it being early in the day and that I'm
not much of a morning person lately, but your reply really pissed me
off. It came across as though you were 'helping' me from your
sanctimonious, holier-than-thou high horse, which, and I hope this
comes across as being clear in your mind, doesn't help.
Maybe, an example will help you understand what I want to do:
Let myArray be {{1,2,3},{4,5,6},{7,8,9}} and suppose the element I'm
looking for has, in it's first index, an even number. I would loop
through myArray looking at the first index of each element and when I
got to index 2 of myArray I would have found an element which meets
that criteria. How would I set myVar equal to the second element of
myArray?
When i is 2, does myVar := myArray[i] set myVar equal to {4,5,6}?
OR
When i is 2, does myVar := myArray[i][3:3] set myVar equal to {4,5,6}?
OR
Are both incorrect?
-Colin
From | Date | Subject | |
---|---|---|---|
Next Message | Clodoaldo | 2008-01-09 14:21:12 | Re: Experiences with extensibility |
Previous Message | A. Kretschmer | 2008-01-09 14:12:11 | Re: quick question abt pg_dump and restore |