[ 
https://issues.apache.org/jira/browse/IMPALA-15432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Noémi Pap-Takács resolved IMPALA-15432.
---------------------------------------
    Resolution: Fixed

> [DOCS] Fix and extend the EXPAND_COMPLEX_TYPES default-change documentation
> ---------------------------------------------------------------------------
>
>                 Key: IMPALA-15432
>                 URL: https://issues.apache.org/jira/browse/IMPALA-15432
>             Project: IMPALA
>          Issue Type: Documentation
>            Reporter: Zoltán Borók-Nagy
>            Assignee: Zoltán Borók-Nagy
>            Priority: Major
>              Labels: impala-iceberg
>             Fix For: Impala 5.0.0
>
>
> IMPALA-15054 changed the default of EXPAND_COMPLEX_TYPES from FALSE to TRUE 
> and documented it. Three problems remain.
>  (a) The incompatible-changes entry has a wrong example. 
> impala_incompatible_changes.xml, concept incompatible_changes_500x, says the 
> failure case is "a complex column whose type is not supported in the select 
> list (for example a STRUCT nested inside a collection)". Mixed complex types 
> in the select list have been supported since Impala
>  4.3 (IMPALA-9551), so that is not a failure case. The cases that really fail 
> under the new default:
>  - CREATE TABLE AS SELECT * and INSERT ... SELECT * from a table with complex 
> columns: "... because the column '<c>' has a complex type '<t>' and Impala 
> doesn't support inserting complex types" (InsertStmt)
>  - SELECT DISTINCT * and GROUP BY over an expanded collection: "SELECT 
> DISTINCT expression '<e>' with type '<t>' is not supported." 
> (Type.throwIfNotComparable)
>  - UNION, INTERSECT or EXCEPT without ALL: "UNION, EXCEPT and INTERSECT with 
> type '<t>' is not supported." (SetOperationStmt)
>  - SELECT * ... ORDER BY when a STRUCT contains a collection: "Sorting is not 
> supported if the select list contains collection(s) nested in struct(s)." 
> (QueryStmt.checkTypeValidityForSorting)
>  - STRUCT columns in tables that are not Parquet or ORC, e.g. Paimon ROW 
> columns or RCFile/SequenceFile partitions: "Querying STRUCT is only supported 
> for ORC and Parquet file formats." (SlotRef)
>  Also worth a sentence: unnest joins such as SELECT * FROM t, t.arr now 
> return the parent's complex columns too, so clients that read columns by 
> position are affected. Keep the SET EXPAND_COMPLEX_TYPES=false workaround and 
> add "list the columns explicitly" as the alternative.
>  (b) The option page doesn't record the version. 
> impala_expand_complex_types.xml says only "Default: TRUE / Added in: Impala 
> 4.2". Add "The default changed from FALSE to TRUE in Impala 5.0" (the pattern 
> used by impala_default_file_format.xml) and xref the 5.0.x 
> incompatible-changes entry.
>  (c) Two stale spots in impala_complex_types.xml.
>  - Around line 2109, in the view example: "SELECT * would bring back all the 
> data, unlike SELECT * queries on the original table with complex type 
> columns". SELECT * on the base table now returns the complex columns too.
>  - The "not supported in the select list" list (STRUCT<a: ARRAY<INT>>, 
> ARRAY<STRUCT<i: INT>>, MAP<INT, STRUCT<s: STRING>>) and the sentence above it 
> about collections embedded in structs. Stale since 4.3, and now actively 
> misleading, because SELECT * expands exactly these columns by default. The 
> real remaining limits: no sorting of
>    collections nested in structs, no DISTINCT or set operations over 
> collections, and STRUCT only for Parquet/ORC.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to