[
https://issues.apache.org/jira/browse/CALCITE-4999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17492925#comment-17492925
]
Julian Hyde commented on CALCITE-4999:
--------------------------------------
[~rubenql], I had that concern too. But if the SQL standard says that ARRAY
sub-query should have 1 column and the result type is an ARRAY of that column's
type, then we should comply with that standard. We can go beyond the standard,
and support queries with 2 or more columns, and return an ARRAY of ROW objects,
or whatever, but when we are within the parameters of the standard, we should
comply with the standard.
Hence we need to check what the standard says.
> `least restrictive` type inference does not work when one operand is scalar
> and another is row with one field
> -------------------------------------------------------------------------------------------------------------
>
> Key: CALCITE-4999
> URL: https://issues.apache.org/jira/browse/CALCITE-4999
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Dmitry Sysolyatin
> Assignee: Dmitry Sysolyatin
> Priority: Major
> Labels: pull-request-available
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> I faced with a issue that the following query:
> {code:java}
> SELECT ARRAY_CONCAT(ARRAY['1', '2'], array(select 'toast.' || x from
> unnest(ARRAY['1','2']) x)) {code}
> didn't work, because of:
> {code:java}
> java.lang.IllegalArgumentException: Cannot infer return type for
> ARRAY_CONCAT; operand types: [CHAR(1) ARRAY, RecordType(CHAR(7) EXPR$0)
> ARRAY]{code}
> `least restrictive` type inference does not work when one operand is scalar
> and another is row with one field
--
This message was sent by Atlassian Jira
(v8.20.1#820001)