Received: from localhost (maia-4.hub.org [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id AC0929FB919 for ; Thu, 15 Feb 2007 12:56:08 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-new, port 10024) with ESMTP id 27047-02-7 for ; Thu, 15 Feb 2007 12:55:59 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from talk.nabble.com (www.nabble.com [72.21.53.35]) by postgresql.org (Postfix) with ESMTP id 5B0E79FB856 for ; Thu, 15 Feb 2007 12:55:59 -0400 (AST) Received: from [72.21.53.38] (helo=jubjub.nabble.com) by talk.nabble.com with esmtp (Exim 4.50) id 1HHjtm-0001c6-DV for pgsql-sql@postgresql.org; Thu, 15 Feb 2007 08:55:58 -0800 Message-ID: <8989242.post@talk.nabble.com> Date: Thu, 15 Feb 2007 08:55:58 -0800 (PST) From: chrisj To: pgsql-sql@postgresql.org Subject: Re: can someone explain confusing array indexing nomenclature In-Reply-To: <200702151224.12455.achill@matrix.gatewaynet.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Nabble-From: chrisj.wood@sympatico.ca References: <8971770.post@talk.nabble.com> <200702151224.12455.achill@matrix.gatewaynet.com> X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200702/169 X-Sequence-Number: 27503 Thanks Achilleas, I see what you are saying, but if we consider just the index "[2]" for a moment, it means something different depending upon the context (in one case it means "2" and in the other case it means "1:2") and the context is determined by the format of indexes on other dimensions. I believe I understand....but incredibly confusing. - chris Achilleas Mantzios wrote: >=20 > =CE=A3=CF=84=CE=B9=CF=82 =CE=A4=CE=B5=CF=84=CE=AC=CF=81=CF=84=CE=B7 14 = =CE=A6=CE=B5=CE=B2=CF=81=CE=BF=CF=85=CE=AC=CF=81=CE=B9=CE=BF=CF=82 2007 21:= 31, =CE=BF/=CE=B7 chrisj =CE=AD=CE=B3=CF=81=CE=B1=CF=88=CE=B5: >> given the following table: >> >> protocal2=3D> select * from sal_emp ; >> name | pay_by_quarter | schedule >> -------+---------------------------+------------------------------------= --- >>---- Bill | {10000,10000,10000,10000} | >> {{meeting,lunch},{training,presentation}} >> Carol | {20000,25000,25000,25000} | >> {{breakfast,consulting},{meeting,lunch}} >> (2 rows) >> >> why do the following two queries yield different results?? >> >> protocal2=3D> SELECT schedule[1][2] FROM sal_emp WHERE name =3D 'Bill'; >> schedule >> ---------- >> lunch >> (1 row) >> >> protocal2=3D> SELECT schedule[1:1][2] FROM sal_emp WHERE name =3D 'Bill'= ; >> schedule >> ------------------- >> {{meeting,lunch}} >> (1 row) >=20 > The [n:m] notation denotes a slice of the array (not element). > So schedule[1][2] is the Array element on 2nd col of 1st row,=20 > while schedule[1:1][2] could mean > the second row of the subarray schedule[1:1][1:2]. > So these two are foundamentally different things. > In my 7.4 even if you gave=20 > SELECT schedule[1:1][888] FROM sal_emp WHERE name =3D 'Bill'; > you would still get {{meeting,lunch}} as a result. > (Right or wrong is another story). > Anyway the first time you query for a "text", > the second time you query for a "text[]", so you should expect > different results. > --=20 > Achilleas Mantzios >=20 > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? >=20 > http://www.postgresql.org/docs/faq >=20 >=20 --=20 View this message in context: http://www.nabble.com/can-someone-explain-con= fusing-array-indexing-nomenclature-tf3229165.html#a8989242 Sent from the PostgreSQL - sql mailing list archive at Nabble.com.