#72: Support arrays with start index != 1
 Reporter:  cito         |      Owner:
     Type:  enhancement  |     Status:  new
 Priority:  major        |  Milestone:  5.1
Component:  DB API 2     |    Version:  5.0
 Keywords:  array cast   |
 The current implementation of the `cast_array` function in the C module
 ignores the start index of PostgreSQL arrays. They are assumed to always
 be 1. As discussed on the mailing list in September 2016, this should be

 The idea is that the `cast_array` function should take an additonal,
 optional `cls` parameter which will then be used as the base class for the
 array. If that parameter is `None` or `list`, then the method works as
 before, returning a list or a list of lists for multidimensional arrays.
 If it is any other class, then this will be considered as a subclass of
 list that will be used instead of the builtin list for building the return
 values. In addition, the instances of this list subclass will have a
 `lower` attribute set to the start index of the corresponding PostgreSQL
 (sub)arrays by the `cast_array` function.

 It should then be possible to change the default value for `cls` passed
 into the `cast_array` function to a custom list subclass. That subclass
 could consider the start index when getting items, and return `None` it
 the index points to outside the array. This would emulate the behavior of
 PostgreSQL arrays more closely.

Ticket URL: <http://trac.pygresql.org:8000/pgtracker/ticket/72>
PyGreSQL <http://www.pygresql.org/>
PyGreSQL Tracker
PyGreSQL mailing list

Reply via email to