[
https://issues.apache.org/jira/browse/FLINK-34923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-34923:
-----------------------------------
Labels: pull-request-available (was: )
> Behavioral discrepancy between `TableEnvironment.execute_sql()` and
> `TableEnvironment.sql_query()`
> --------------------------------------------------------------------------------------------------
>
> Key: FLINK-34923
> URL: https://issues.apache.org/jira/browse/FLINK-34923
> Project: Flink
> Issue Type: Bug
> Components: API / Python
> Affects Versions: 1.19.0
> Reporter: Chloe He
> Priority: Major
> Labels: pull-request-available
>
> I found that there is some behavioral discrepancy between
> `TableEnvironment.execute_sql()` and `TableEnvironment.sql_query()`.
> A minimal reproducible example:
> {code:java}
> SELECT `value` FROM (VALUES (CAST(ARRAY[ROW(1, 2), ROW(2, 2)] AS
> ARRAY<ROW<`a` INT, `b` INT>>))) AS `t`(`value`) {code}
> This throws
> {code:java}
> File
> ~/anaconda3/envs/ibis-dev-flink/lib/python3.10/site-packages/pyflink/table/table.py:943,
> in Table.to_pandas(self)
> 939 import pytz
> 940 timezone = pytz.timezone(
> 941
> self._j_table.getTableEnvironment().getConfig().getLocalTimeZone().getId())
> 942 serializer = ArrowSerializer(
> --> 943 create_arrow_schema(self.get_schema().get_field_names(),
> 944 self.get_schema().get_field_data_types()),
> 945 self.get_schema().to_row_data_type(),
> 946 timezone)
> 947 import pyarrow as pa
> 948 table =
> pa.Table.from_batches(serializer.load_from_iterator(batches_iterator))
> File
> ~/anaconda3/envs/ibis-dev-flink/lib/python3.10/site-packages/pyflink/table/types.py:2194,
> in create_arrow_schema(field_names, field_types)
> 2190 """
> 2191 Create an Arrow schema with the specified filed names and types.
> 2192 """
> 2193 import pyarrow as pa
> -> 2194 fields = [pa.field(field_name, to_arrow_type(field_type),
> field_type._nullable)
> 2195 for field_name, field_type in zip(field_names, field_types)]
> 2196 return pa.schema(fields)
> File
> ~/anaconda3/envs/ibis-dev-flink/lib/python3.10/site-packages/pyflink/table/types.py:2194,
> in <listcomp>(.0)
> 2190 """
> 2191 Create an Arrow schema with the specified filed names and types.
> 2192 """
> 2193 import pyarrow as pa
> -> 2194 fields = [pa.field(field_name, to_arrow_type(field_type),
> field_type._nullable)
> 2195 for field_name, field_type in zip(field_names, field_types)]
> 2196 return pa.schema(fields)
> File
> ~/anaconda3/envs/ibis-dev-flink/lib/python3.10/site-packages/pyflink/table/types.py:2316,
> in to_arrow_type(data_type)
> 2314 elif isinstance(data_type, ArrayType):
> 2315 if type(data_type.element_type) in [LocalZonedTimestampType,
> RowType]:
> -> 2316 raise ValueError("%s is not supported to be used as the
> element type of ArrayType." %
> 2317 data_type.element_type)
> 2318 return pa.list_(to_arrow_type(data_type.element_type))
> 2319 elif isinstance(data_type, RowType):
> ValueError: ROW is not supported to be used as the element type of ArrayType.
> {code}
> when I tried to execute it with `TableEnvironment.sql_query()`, but works
> when I tried it with `TableEnvironment.execute_sql()`:
> {code:java}
> +----+--------------------------------+
> | op | value |
> +----+--------------------------------+
> | +I | [(1, 2), (2, 2)] |
> +----+--------------------------------+ {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)