blob: 724298479e519092ed861b948f295e96e824964e [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
! Licensed to the Apache Software Foundation (ASF) under one
! or more contributor license agreements. See the NOTICE file
! distributed with this work for additional information
! regarding copyright ownership. The ASF licenses this file
! to you under the Apache License, Version 2.0 (the
! "License"); you may not use this file except in compliance
! with the License. You may obtain a copy of the License at
!
! http://www.apache.org/licenses/LICENSE-2.0
!
! Unless required by applicable law or agreed to in writing,
! software distributed under the License is distributed on an
! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
! KIND, either express or implied. See the License for the
! specific language governing permissions and limitations
! under the License.
!-->
<test-suite xmlns="urn:xml.testframework.asterix.apache.org" ResultOffsetPath="results" QueryOffsetPath="queries_sqlpp" QueryFileExtension=".sqlpp">
<test-group name="aws-s3-external-dataset">
<test-case FilePath="external-dataset">
<compilation-unit name="common/json/json">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/json/json</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/s3">
<compilation-unit name="create-with-session-token">
<output-dir compare="Text">create-with-session-token</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/json/gz">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/json/gz</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/json/mixed">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/json/mixed</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/csv/csv">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/csv/csv</output-dir>
</compilation-unit>
</test-case><test-case FilePath="external-dataset">
<compilation-unit name="common/csv/gz">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/csv/gz</output-dir>
</compilation-unit>
</test-case><test-case FilePath="external-dataset">
<compilation-unit name="common/csv/mixed">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/csv/mixed</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/tsv/tsv">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/tsv/tsv</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/tsv/gz">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/tsv/gz</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/tsv/mixed">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/tsv/mixed</output-dir>
</compilation-unit>
</test-case>
<!-- Parquet Tests Start -->
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/select-all-fields">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/select-all-fields</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/select-count-one-field">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/select-count-one-field</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/multi-file-multi-schema">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/multi-file-multi-schema</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/field-access-pushdown">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/field-access-pushdown</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/array-access-pushdown">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/array-access-pushdown</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/missing-fields">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/missing-fields</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/string-standard-utf8">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/string-standard-utf8</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/object-concat">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/object-concat</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/type-mismatch">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/type-mismatch</output-dir>
<expected-warn>ASX0002: Type mismatch: function field-access-by-name expects its 1st input parameter to be of type object, but the actual input type is array (in line 31, at column 29)</expected-warn>
<expected-warn>ASX0002: Type mismatch: function array-star expects its 1st input parameter to be of type array, but the actual input type is object (in line 31, at column 24)</expected-warn>
<expected-warn>ASX0002: Type mismatch: function field-access-by-name expects its 1st input parameter to be of type object, but the actual input type is array (in line 31, at column 52)</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/heterogeneous-access-pushdown">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/heterogeneous-access-pushdown</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/pushdown-plans">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/pushdown-plans</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/s3">
<compilation-unit name="parquet-anonymous-access">
<output-dir compare="Text">parquet-anonymous-access</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/s3">
<compilation-unit name="parquet-temporary-access">
<output-dir compare="Text">parquet-temporary-access</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/invalid-type">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">none</output-dir>
<expected-error>ASX1161: Type 'ParquetType' contains declared fields, which is not supported for 'parquet' format</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/no-files">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/no-files</output-dir>
<source-location>false</source-location>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/invalid-parquet-files">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">none</output-dir>
<source-location>false</source-location>
<expected-error>20-records.json. Reason: not a Parquet file</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/parquet-types/unset-flags">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/parquet-types/unset-flags</output-dir>
<source-location>false</source-location>
<expected-warn>Parquet file(s) contain unsigned integer that is larger than the 'bigint' range</expected-warn>
<expected-warn>Parquet file(s) contain values of the temporal type 'datetime' that are adjusted to UTC. Recreate the external dataset and set the option 'timezone' to get the local-adjusted 'datetime' value</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/parquet-types/decimal">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/parquet-types/decimal</output-dir>
<source-location>false</source-location>
<expected-error>ASX0054: Parquet type 'required int32 decimal32_field (DECIMAL(5,4))' is not supported by default. To enable type conversion, recreate the external dataset with the option 'decimal-to-double' enabled</expected-error>
<expected-warn>Parquet decimal precision loss: precision '22' is greater than the maximum supported precision '20'</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/parquet-types/temporal">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/parquet-types/temporal</output-dir>
<source-location>false</source-location>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/parquet/parquet-types/invalid-timezone">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/parquet-types/invalid-timezone</output-dir>
<source-location>false</source-location>
<expected-error>Provided timezone is invalid: 'invalid-timezone'</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/parquet/parquet-types/disable-json-parsing">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/parquet/parquet-types/disable-json-parsing</output-dir>
<source-location>false</source-location>
</compilation-unit>
</test-case>
<!-- Parquet Tests End -->
<test-case FilePath="external-dataset">
<compilation-unit name="common/empty-string-definition">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/empty-string-definition</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/over-1000-objects">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/over-1000-objects</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/malformed-json">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/malformed-json</output-dir>
<expected-error>Parsing error at malformed-data/duplicate-fields.json line 1 field 'field': Duplicate field 'field'</expected-error>
<expected-error>Parsing error at malformed-data/malformed-json.json line 1 field 'field': Unexpected character ('}' (code 125)): was expecting double-quote to start field name</expected-error>
<expected-error>Parsing error at malformed-data/malformed-json-2.json line 4 field 'array_f': Unexpected character (']' (code 93)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')</expected-error>
<expected-error>Parsing error at malformed-data/malformed-jsonl-1.json line 3 field 'field2': Unrecognized token 'truee': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')</expected-error>
<expected-error>Parsing error at malformed-data/malformed-jsonl-2.json line 11 field 'array_f': Unexpected character (']' (code 93)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/definition-does-not-exist">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/definition-does-not-exist</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/invalid-endpoint">
<placeholder name="adapter" value="S3" />
<placeholder name="serviceEndpoint" value="^invalid-endpoint^" />
<output-dir compare="Text">common/invalid-endpoint</output-dir>
<expected-error>External source error. Invalid service endpoint ^invalid-endpoint^</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/bucket-does-not-exist">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/bucket-does-not-exist</output-dir>
<expected-error>External source error. software.amazon.awssdk.services.s3.model.NoSuchBucketException: The specified bucket does not exist (Service: S3, Status Code: 404</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/no-files-returned/definition-points-to-nothing">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/no-files-returned/definition-points-to-nothing</output-dir>
<source-location>false</source-location>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/no-files-returned/exclude-all-files">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/no-files-returned/exclude-all-files</output-dir>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset" check-warnings="true">
<compilation-unit name="common/no-files-returned/include-no-files">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/no-files-returned/include-no-files</output-dir>
<expected-warn>The provided external dataset configuration returned no files from the external source</expected-warn>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/s3">
<compilation-unit name="non-s3-region">
<output-dir compare="Text">non-s3-region</output-dir>
<expected-error>Provided S3 region is not supported: 'some-new-region'</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/s3">
<compilation-unit name="anonymous_no_auth">
<output-dir compare="Text">anonymous_no_auth</output-dir>
<expected-error>ASX3119: Parameter 'secretAccessKey' is required if 'accessKeyId' is provided</expected-error>
<expected-error>ASX3119: Parameter 'accessKeyId' is required if 'secretAccessKey' is provided</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset/common">
<compilation-unit name="query-with-limit-plan">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">query-with-limit-plan</output-dir>
</compilation-unit>
</test-case>
</test-group>
<test-group name="s3-include-exclude">
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/bad-name-1">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/bad-name-1</output-dir>
<expected-error>Invalid format for property 'exclude1'</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/bad-name-2">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/bad-name-2</output-dir>
<expected-error>Invalid format for property 'exclude#'</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/bad-name-3">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/bad-name-3</output-dir>
<expected-error>Invalid format for property 'exclude#hello'</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/both">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/both</output-dir>
<expected-error>The parameters 'include' and 'exclude' cannot be provided at the same time</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-all">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-all</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-1">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-1</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-2">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-2</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-3">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-3</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-4">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-4</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-5">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-5</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/exclude-6">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/exclude-6</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-all">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-all</output-dir>
<expected-error>Malformed input stream</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-1">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-1</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-2">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-2</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-3">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-3</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-4">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-4</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-5">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-5</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-6">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-6</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-7">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-7</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-8">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-8</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-9">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-9</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-10">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-10</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-11">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-11</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/include-exclude/include-12">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/include-exclude/include-12</output-dir>
</compilation-unit>
</test-case>
</test-group>
<test-group name="bom">
<test-case FilePath="external-dataset">
<compilation-unit name="common/byte_order_mark/json">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/byte_order_mark/json</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/byte_order_mark/csv">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/byte_order_mark/csv</output-dir>
</compilation-unit>
</test-case>
<test-case FilePath="external-dataset">
<compilation-unit name="common/byte_order_mark/tsv">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">common/byte_order_mark/tsv</output-dir>
</compilation-unit>
</test-case>
</test-group>
</test-suite>