pgsql: Allow to omit boundaries in array subscript

Lists: pgsql-committers
From: Teodor Sigaev <teodor(at)sigaev(dot)ru>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Allow to omit boundaries in array subscript
Date: 2015-12-18 12:21:27
Message-ID: E1a9u2J-00054Q-Qk@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-committers

Allow to omit boundaries in array subscript

Allow to omiy lower or upper or both boundaries in array subscript
for selecting slice of array.

Author: YUriy Zhuravlev

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/9246af6799819847faa33baf441251003acbb8fe

Modified Files
--------------
doc/src/sgml/array.sgml | 20 ++++++++++++++
src/backend/executor/execQual.c | 44 +++++++++++++++++++++++-------
src/backend/nodes/copyfuncs.c | 2 ++
src/backend/nodes/equalfuncs.c | 2 ++
src/backend/nodes/outfuncs.c | 2 ++
src/backend/parser/gram.y | 31 +++++++++++++++++++++
src/backend/parser/parse_node.c | 49 ++++++++++++++++++++++------------
src/backend/parser/parse_target.c | 2 +-
src/include/nodes/parsenodes.h | 2 ++
src/test/regress/expected/arrays.out | 40 +++++++++++++++++++++++++++
src/test/regress/output/misc.source | 3 ++-
src/test/regress/sql/arrays.sql | 15 +++++++++++
12 files changed, 184 insertions(+), 28 deletions(-)


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Teodor Sigaev <teodor(at)sigaev(dot)ru>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Allow to omit boundaries in array subscript
Date: 2015-12-18 16:54:53
Message-ID: 19144.1450457693@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-committers

Teodor Sigaev <teodor(at)sigaev(dot)ru> writes:
> Allow to omit boundaries in array subscript

For the record, this patch wasn't nearly ready to commit.

* User-facing documentation is very poor; at the least it needs
copy-editing by someone with better command of English.

* Comments are next to nonexistent. I note for example that the
description of struct A_Indices wasn't updated, much less that of
ArrayRef.

* Some error messages aren't meeting the style guidelines.

* I'm dubious that the parsetree representation is well-chosen.
Probably a single is_slice flag would have been better.

* Dumps core on fixed-length arrays, eg

regression=# select f1[1:] from point_tbl;
server closed the connection unexpectedly

I think it should be reverted and sent back for another round of
review. If not, I'll probably spend tomorrow cleaning it up,
but I really have other things I should be doing.

regards, tom lane


From: Teodor Sigaev <teodor(at)sigaev(dot)ru>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Allow to omit boundaries in array subscript
Date: 2015-12-18 18:28:10
Message-ID: 5674503A.1050301@sigaev.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Lists: pgsql-committers

I will work on it.

Tom Lane wrote:
> Teodor Sigaev <teodor(at)sigaev(dot)ru> writes:
>> Allow to omit boundaries in array subscript
>
> For the record, this patch wasn't nearly ready to commit.
>
> * User-facing documentation is very poor; at the least it needs
> copy-editing by someone with better command of English.
>
> * Comments are next to nonexistent. I note for example that the
> description of struct A_Indices wasn't updated, much less that of
> ArrayRef.
>
> * Some error messages aren't meeting the style guidelines.
>
> * I'm dubious that the parsetree representation is well-chosen.
> Probably a single is_slice flag would have been better.
>
> * Dumps core on fixed-length arrays, eg
>
> regression=# select f1[1:] from point_tbl;
> server closed the connection unexpectedly
>
> I think it should be reverted and sent back for another round of
> review. If not, I'll probably spend tomorrow cleaning it up,
> but I really have other things I should be doing.
>
> regards, tom lane
>
>

--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/