Thread: Extracting single coordinate from a box
I'm wondering if anyone knows how to extract a single co-ordinate from the data type "box". I know that I can access a single co-ordinate from a "point" using the array notation: p[0] or p[1] where p is of type "point". I can extract a single "point" from a "box" with b[0] or b[1] where b is of type "box". But when I try something like b[0][0] the passer ignores the second array subscript parameter and returns only a "point". Many thanks in advance, Donald Fraser.
"Donald Fraser" <demolish@cwgsy.net> writes: > But when I try something like b[0][0] the passer ignores the second array > subscript parameter and returns only a "point". Try this: regression=# select f1, (f1[1])[0] from box_tbl; f1 | f1 ---------------------+----- (2,2),(0,0) | 0 (3,3),(1,1) | 1 (2.5,3.5),(2.5,2.5) | 2.5 (3,3),(3,3) | 3 (4 rows) You need the extra parentheses because the two subscript operations need to work on fundamentally different datatypes --- if you write f1[1][0] you are asking to subscript a 2-D array which this isn't. [ experiments further ... ] Drat, seems that syntax works in 7.4 but not 7.3. Dunno if that will help you. regards, tom lane
Thanks for the quick response. ----- Original Message ----- > "Donald Fraser" <demolish@cwgsy.net> writes: > > But when I try something like b[0][0] the passer ignores the second array > > subscript parameter and returns only a "point". > You need the extra parentheses because the two subscript operations need > to work on fundamentally different datatypes --- if you write f1[1][0] > you are asking to subscript a 2-D array which this isn't. > > [ experiments further ... ] Drat, seems that syntax works in 7.4 but > not 7.3. Dunno if that will help you. I'm using 7.3.4 at the moment and I tried the scenario of using parentheses, which didn't work. I wrote a function in the end to extract it, but it would have been more elegant without it :-( Thanks again Donald
I think you are forgetting that a box is an array of one dimension with two points. So, the first point is B[0] and the second is B[1]. Donald Fraser wrote: > > Thanks for the quick response. > > ----- Original Message ----- > > "Donald Fraser" <demolish@cwgsy.net> writes: > > > But when I try something like b[0][0] the passer ignores the second array > > > subscript parameter and returns only a "point". > > > You need the extra parentheses because the two subscript operations need > > to work on fundamentally different datatypes --- if you write f1[1][0] > > you are asking to subscript a 2-D array which this isn't. > > > > [ experiments further ... ] Drat, seems that syntax works in 7.4 but > > not 7.3. Dunno if that will help you. > > I'm using 7.3.4 at the moment and I tried the scenario of using parentheses, > which didn't work. > I wrote a function in the end to extract it, but it would have been more > elegant without it :-( > > Thanks again > Donald > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)