| # Scanning an unpartitioned Parquet table with complex types plans ok. |
| select s.f1 from functional_parquet.complextypes_fileformat t, t.a |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:SUBPLAN |
| | |
| |--04:NESTED LOOP JOIN [CROSS JOIN] |
| | | |
| | |--02:SINGULAR ROW SRC |
| | | |
| | 03:UNNEST [t.a] |
| | |
| 00:SCAN HDFS [functional_parquet.complextypes_fileformat t] |
| partitions=1/1 files=1 size=227B |
| predicates: !empty(t.a) |
| ==== |
| # Complex types are not supported on Avro. |
| select s.f1 from functional_avro_snap.complextypes_fileformat t, t.a |
| ---- PLAN |
| not implemented: Scan of table 't' in format 'AVRO' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Complex types are not supported on text files. |
| select s.f1 from functional.complextypes_fileformat t, t.a |
| ---- PLAN |
| not implemented: Scan of table 't' in format 'TEXT' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Complex types are not supported on text files, even if no complex-typed |
| # columns are selected. |
| select 1 from functional.complextypes_fileformat |
| ---- PLAN |
| not implemented: Scan of table 'functional.complextypes_fileformat' in format 'TEXT' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Complex types are not supported on RC files. |
| select 1 from functional_rc_snap.complextypes_fileformat t, t.a |
| ---- PLAN |
| not implemented: Scan of table 't' in format 'RC_FILE' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| select s.f1 from functional_rc_snap.complextypes_fileformat t, t.m |
| ---- PLAN |
| not implemented: Scan of table 't' in format 'RC_FILE' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Complex types are not supported on RC files, however queries materializing |
| # only scalar type columns are allowed. |
| select id from functional_rc_snap.complextypes_fileformat |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional_rc_snap.complextypes_fileformat] |
| partitions=1/1 files=1 size=56B |
| ==== |
| # Complex types are not supported on RC files but count(*) and similar |
| # queries should work. |
| select count(*) from functional_rc_snap.complextypes_fileformat |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | |
| 00:SCAN HDFS [functional_rc_snap.complextypes_fileformat] |
| partitions=1/1 files=1 size=56B |
| ==== |
| # Complex types are not supported on sequence files. |
| select s.f1 from functional_seq_snap.complextypes_fileformat t, t.a |
| ---- PLAN |
| not implemented: Scan of table 't' in format 'SEQUENCE_FILE' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Queries referencing only scalar typed columns on sequence files |
| # are allowed. |
| select id from functional_seq_snap.complextypes_fileformat |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional_seq_snap.complextypes_fileformat] |
| partitions=1/1 files=1 size=87B |
| ==== |
| # Scanning all partitions fails because there are partitions with a file format for which |
| # complex types are not supported. The error message is abbreviated because it is |
| # non-deterministic which partition will be checked first. Complete error messages |
| # can be seen in tests below. |
| select s.f1 from functional.complextypes_multifileformat t, t.a |
| ---- PLAN |
| not implemented: Scan of partition |
| ==== |
| # Scanning an HBase table with complex-types columns is ok as long as no complex-typed |
| # columns are selected. |
| select id from functional_hbase.allcomplextypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HBASE [functional_hbase.allcomplextypes] |
| ==== |
| # Scanning an HBase table with complex-types columns fails if a complex-typed |
| # column is selected. |
| select id from functional_hbase.allcomplextypes t, t.int_array_col |
| ---- PLAN |
| not implemented: Scan of table 't.int_array_col' is not supported because 't' references a nested field/collection. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Scanning an HBase table with complex-types columns fails if a complex-typed |
| # column is selected. |
| select complex_struct_col.f1 from functional_hbase.allcomplextypes |
| ---- PLAN |
| not implemented: Scan of table 'functional_hbase.allcomplextypes.complex_struct_col.f1' is not supported because 'functional_hbase.allcomplextypes' references a nested field/collection. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # The complextypes_multifileformat has three partitions with different file formats: |
| # p=1 text |
| # p=2 parquet |
| # p=3 avro |
| # p=4 rc |
| # Scanning a text partition of a multi-format table with complex types fails. |
| select 1 from functional.complextypes_multifileformat where p = 1 |
| ---- PLAN |
| not implemented: Scan of partition 'p=1' in format 'TEXT' of table 'functional.complextypes_multifileformat' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Scanning a Parquet partition of a multi-format table with complex types plans ok. |
| select s.f1 from functional.complextypes_multifileformat t, t.a where p = 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:SUBPLAN |
| | |
| |--04:NESTED LOOP JOIN [CROSS JOIN] |
| | | |
| | |--02:SINGULAR ROW SRC |
| | | |
| | 03:UNNEST [t.a] |
| | |
| 00:SCAN HDFS [functional.complextypes_multifileformat t] |
| partitions=1/4 files=1 size=128B |
| predicates: !empty(t.a) |
| ==== |
| # Scanning an Avro partition of a multi-format table with complex types fails. |
| select s.f1 from functional.complextypes_multifileformat t, t.a where p = 3 |
| ---- PLAN |
| not implemented: Scan of partition 'p=3' in format 'AVRO' of table 't' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Scanning an RC file partition of a multi-format table with complex types fails. |
| select id from functional.complextypes_multifileformat t, t.a where p = 4 |
| ---- PLAN |
| not implemented: Scan of partition 'p=4' in format 'RC_FILE' of table 't' is not supported because the table has a column 's' with a complex type 'STRUCT<f1:STRING,f2:INT>'. |
| Complex types are supported for these file formats: PARQUET. |
| ==== |
| # Complex types are not supported on RC files but count(*) and similar |
| # queries should work. |
| select count(*) from functional.complextypes_multifileformat where p = 4 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | |
| 00:SCAN HDFS [functional.complextypes_multifileformat] |
| partitions=1/4 files=1 size=128B |
| ==== |