[
https://issues.apache.org/jira/browse/CALCITE-5660?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17714236#comment-17714236
]
Tanner Clary commented on CALCITE-5660:
---------------------------------------
[~julianhyde] No I don't believe so either. My initial approach has been to
just assign each operator an offset and flag denoting whether they are "SAFE"
or not (since these are the two differences between all the operators).
> Implement BigQuery Array Subscript Operators
> --------------------------------------------
>
> Key: CALCITE-5660
> URL: https://issues.apache.org/jira/browse/CALCITE-5660
> Project: Calcite
> Issue Type: Task
> Reporter: Tanner Clary
> Assignee: Tanner Clary
> Priority: Major
>
> When indexing an array in BigQuery, you are required to wrap the index in one
> of four position keywords: {{OFFSET}}, {{ORDINAL}}, {{SAFE_OFFSET}}, and
> {{SAFE_ORDINAL}}.
> {{OFFSET(index)}}: The index starts at zero. Produces an error if the index
> is out of range.
> {{SAFE_OFFSET(index)}}: The index starts at zero. Returns NULL if the index
> is out of range.
> {{ORDINAL(index)}}: The index starts at one. Produces an error if the index
> is out of range.
> {{SAFE_ORDINAL(index)}}: The index starts at one. Returns NULL if the index
> is out of range.
> These operators are very similar to the existing {{ITEM}} operator currently
> used to index an array in Calcite. I believe the offset and out of bounds
> behavior for the existing implementation could be parameterized to support
> the above operators.
> [Link to BigQuery
> docs|https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#array_subscript_operator]
> I will have a PR open for this in the next day or two, in the meantime any
> comments, questions, or suggestions are welcome as always.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)