>From Wail Alkowaileet <[email protected]>:
Wail Alkowaileet has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17866 )
Change subject: [MULTIPLE ISSUES][COMP] Multiple fixes for external filters
......................................................................
[MULTIPLE ISSUES][COMP] Multiple fixes for external filters
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- ASTERIXDB-3280: Make inlined types open by default when
creating datasets
- ASTERIXDB-3281: Ensure the type is open when
'embed-filter-values' is enabled
Change-Id: I04c66c5f637e49faca610fc2cb14668a8635187b
---
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset_s3.xml
A
asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/01-01-2023/aircraft.csv
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
M
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.000.ddl.sqlpp
A
asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/03-01-2023/aircraft.csv
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/embed-with-closed-type/embed-with-closed-type.000.ddl.sqlpp
A
asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/04-01-2023/aircraft.csv
A
asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.adm
A
asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/02-01-2023/aircraft.csv
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
12 files changed, 230 insertions(+), 9 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/66/17866/1
diff --git
a/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/01-01-2023/aircraft.csv
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/01-01-2023/aircraft.csv
new file mode 100644
index 0000000..3b4ec33
--- /dev/null
+++
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/01-01-2023/aircraft.csv
@@ -0,0 +1,10 @@
+tail_num,code,description,state
+80009E,2819,2819,MN
+80019E,2805,2805,IA
+80059E,2824,2824,MN
+80129E,2801,2801,MN
+80139E,2804,2804,MN
+80199E,2804,2804,WI
+80209E,2843,2843,ND
+80219E,2804,2804,WI
+80239E,2800,2800,IA
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/02-01-2023/aircraft.csv
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/02-01-2023/aircraft.csv
new file mode 100644
index 0000000..3b4ec33
--- /dev/null
+++
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/02-01-2023/aircraft.csv
@@ -0,0 +1,10 @@
+tail_num,code,description,state
+80009E,2819,2819,MN
+80019E,2805,2805,IA
+80059E,2824,2824,MN
+80129E,2801,2801,MN
+80139E,2804,2804,MN
+80199E,2804,2804,WI
+80209E,2843,2843,ND
+80219E,2804,2804,WI
+80239E,2800,2800,IA
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/03-01-2023/aircraft.csv
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/03-01-2023/aircraft.csv
new file mode 100644
index 0000000..3b4ec33
--- /dev/null
+++
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/03-01-2023/aircraft.csv
@@ -0,0 +1,10 @@
+tail_num,code,description,state
+80009E,2819,2819,MN
+80019E,2805,2805,IA
+80059E,2824,2824,MN
+80129E,2801,2801,MN
+80139E,2804,2804,MN
+80199E,2804,2804,WI
+80209E,2843,2843,ND
+80219E,2804,2804,WI
+80239E,2800,2800,IA
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/04-01-2023/aircraft.csv
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/04-01-2023/aircraft.csv
new file mode 100644
index 0000000..3b4ec33
--- /dev/null
+++
b/asterixdb/asterix-app/data/csv/external-filter/embed-csv/sales/04-01-2023/aircraft.csv
@@ -0,0 +1,10 @@
+tail_num,code,description,state
+80009E,2819,2819,MN
+80019E,2805,2805,IA
+80059E,2824,2824,MN
+80129E,2801,2801,MN
+80139E,2804,2804,MN
+80199E,2804,2804,WI
+80209E,2843,2843,ND
+80219E,2804,2804,WI
+80239E,2800,2800,IA
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 4b19200..8b36634 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -964,6 +964,7 @@
itemTypeEntity, metadataProvider, mdTxnCtx);
ExternalDataUtils.normalize(properties);
ExternalDataUtils.validate(properties);
+ ExternalDataUtils.validateType(properties, (ARecordType)
itemType);
validateExternalDatasetProperties(externalDetails,
properties, dd.getSourceLocation(), mdTxnCtx,
appCtx);
datasetDetails = new
ExternalDatasetDetails(externalDetails.getAdapter(), properties, new Date(),
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.000.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.000.ddl.sqlpp
new file mode 100644
index 0000000..4cc642f
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.000.ddl.sqlpp
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE TestType AS {
+ tail_num: STRING,
+ code: INT,
+ description: INT,
+ state: STRING
+};
+
+CREATE EXTERNAL DATASET Sales(TestType) USING %adapter% (
+ %template%,
+ ("container"="playground"),
+
("definition"="external-filter/embed-csv/sales/{day:int}-{month:int}-{year:int}"),
+ ("embed-filter-values" = "true"),
+ ("header"="true"),
+ ("format"="csv")
+);
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.query.sqlpp
new file mode 100644
index 0000000..646d85d
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+
+USE test;
+
+SELECT VALUE s
+FROM Sales s
+ORDER BY s.tail_num,
+ s.year,
+ s.month,
+ s.day;
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/embed-with-closed-type/embed-with-closed-type.000.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/embed-with-closed-type/embed-with-closed-type.000.ddl.sqlpp
new file mode 100644
index 0000000..dc2fb6e
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-dataset/common/dynamic-prefixes/embed-with-closed-type/embed-with-closed-type.000.ddl.sqlpp
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE TestType AS CLOSED {
+ tail_num: STRING,
+ code: INT,
+ description: INT,
+ state: STRING
+};
+
+CREATE EXTERNAL DATASET Sales(TestType) USING %adapter% (
+ %template%,
+ ("container"="playground"),
+
("definition"="external-filter/embed-csv/sales/{day:int}-{month:int}-{year:int}"),
+ ("embed-filter-values" = "true"),
+ ("header"="true"),
+ ("format"="csv")
+);
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.adm
new file mode 100644
index 0000000..5cee80e
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-dataset/common/dynamic-prefixes/csv/embed-multiple-missing-values/embed-multiple-missing-values.001.adm
@@ -0,0 +1,36 @@
+{ "tail_num": "80009E", "code": 2819, "description": 2819, "state": "MN",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80009E", "code": 2819, "description": 2819, "state": "MN",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80009E", "code": 2819, "description": 2819, "state": "MN",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80009E", "code": 2819, "description": 2819, "state": "MN",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80019E", "code": 2805, "description": 2805, "state": "IA",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80019E", "code": 2805, "description": 2805, "state": "IA",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80019E", "code": 2805, "description": 2805, "state": "IA",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80019E", "code": 2805, "description": 2805, "state": "IA",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80059E", "code": 2824, "description": 2824, "state": "MN",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80059E", "code": 2824, "description": 2824, "state": "MN",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80059E", "code": 2824, "description": 2824, "state": "MN",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80059E", "code": 2824, "description": 2824, "state": "MN",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80129E", "code": 2801, "description": 2801, "state": "MN",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80129E", "code": 2801, "description": 2801, "state": "MN",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80129E", "code": 2801, "description": 2801, "state": "MN",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80129E", "code": 2801, "description": 2801, "state": "MN",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80139E", "code": 2804, "description": 2804, "state": "MN",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80139E", "code": 2804, "description": 2804, "state": "MN",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80139E", "code": 2804, "description": 2804, "state": "MN",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80139E", "code": 2804, "description": 2804, "state": "MN",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80199E", "code": 2804, "description": 2804, "state": "WI",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80199E", "code": 2804, "description": 2804, "state": "WI",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80199E", "code": 2804, "description": 2804, "state": "WI",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80199E", "code": 2804, "description": 2804, "state": "WI",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80209E", "code": 2843, "description": 2843, "state": "ND",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80209E", "code": 2843, "description": 2843, "state": "ND",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80209E", "code": 2843, "description": 2843, "state": "ND",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80209E", "code": 2843, "description": 2843, "state": "ND",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80219E", "code": 2804, "description": 2804, "state": "WI",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80219E", "code": 2804, "description": 2804, "state": "WI",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80219E", "code": 2804, "description": 2804, "state": "WI",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80219E", "code": 2804, "description": 2804, "state": "WI",
"day": 4, "month": 1, "year": 2023 }
+{ "tail_num": "80239E", "code": 2800, "description": 2800, "state": "IA",
"day": 1, "month": 1, "year": 2023 }
+{ "tail_num": "80239E", "code": 2800, "description": 2800, "state": "IA",
"day": 2, "month": 1, "year": 2023 }
+{ "tail_num": "80239E", "code": 2800, "description": 2800, "state": "IA",
"day": 3, "month": 1, "year": 2023 }
+{ "tail_num": "80239E", "code": 2800, "description": 2800, "state": "IA",
"day": 4, "month": 1, "year": 2023 }
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset_s3.xml
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset_s3.xml
index 1d0d038..6d9de7a 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset_s3.xml
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_external_dataset_s3.xml
@@ -223,6 +223,13 @@
<!-- Parquet Tests End -->
<!-- Dynamic prefixes tests start -->
<test-case FilePath="external-dataset/common/dynamic-prefixes">
+ <compilation-unit name="embed-with-closed-type">
+ <placeholder name="adapter" value="S3" />
+ <output-dir compare="Text">embed-with-closed-type</output-dir>
+ <expected-error>Compilation error: A closed type cannot be used when
'embed-filter-values' is enabled</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="external-dataset/common/dynamic-prefixes">
<compilation-unit name="one-field">
<placeholder name="adapter" value="S3" />
<output-dir compare="Text">one-field</output-dir>
@@ -388,6 +395,12 @@
<output-dir compare="Text">embed-multiple-values</output-dir>
</compilation-unit>
</test-case>
+ <test-case FilePath="external-dataset/common/dynamic-prefixes/csv">
+ <compilation-unit name="embed-multiple-missing-values">
+ <placeholder name="adapter" value="S3" />
+ <output-dir compare="Text">embed-multiple-missing-values</output-dir>
+ </compilation-unit>
+ </test-case>
<test-case FilePath="external-dataset/common/dynamic-prefixes/parquet">
<compilation-unit name="computed-field-segment-pattern-mismatch">
<placeholder name="adapter" value="S3" />
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
index e740e68..62dc466 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
@@ -1048,4 +1048,13 @@
return protocol + "://" + container + "/";
}
+
+ public static void validateType(Map<String, String> properties,
ARecordType itemType) throws CompilationException {
+ boolean embedValues = Boolean.parseBoolean(
+
properties.getOrDefault(ExternalDataConstants.KEY_EMBED_FILTER_VALUES,
ExternalDataConstants.FALSE));
+ if (ExternalDataPrefix.containsComputedFields(properties) &&
embedValues && !itemType.isOpen()) {
+ throw new CompilationException(ErrorCode.COMPILATION_ERROR, "A
closed type cannot be used when '"
+ + ExternalDataConstants.KEY_EMBED_FILTER_VALUES + "' is
enabled");
+ }
+ }
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index 0eb09a9..3675876 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -1188,7 +1188,7 @@
}
{
nameComponents = QualifiedName()
- (typeExpr = DatasetTypeSpecification())?
+ (typeExpr = DatasetTypeSpecification(RecordTypeDefinition.RecordKind.OPEN))?
(
{ String name; }
<WITH>
@@ -1199,7 +1199,7 @@
"We can only support one additional associated field called
\"meta\".");
}
}
- metaTypeExpr = DatasetTypeSpecification()
+ metaTypeExpr =
DatasetTypeSpecification(RecordTypeDefinition.RecordKind.OPEN)
)?
ifNotExists = IfNotExists()
(LOOKAHEAD(3) primaryKeyFieldsWithTypes = PrimaryKeyWithType()
@@ -1261,7 +1261,7 @@
}
{
nameComponents = QualifiedName()
- typeExpr = DatasetTypeSpecification()
+ typeExpr = DatasetTypeSpecification(RecordTypeDefinition.RecordKind.OPEN)
ifNotExists = IfNotExists()
<USING> adapterName = AdapterName() properties = Configuration()
( <HINTS> hints = Properties() )?
@@ -1280,13 +1280,13 @@
}
}
-TypeExpression DatasetTypeSpecification() throws ParseException:
+TypeExpression DatasetTypeSpecification(RecordTypeDefinition.RecordKind
defaultRecordKind) throws ParseException:
{
TypeExpression typeExpr = null;
}
{
(
- LOOKAHEAD(3) typeExpr = DatasetRecordTypeSpecification(true)
+ LOOKAHEAD(3) typeExpr = DatasetRecordTypeSpecification(true,
defaultRecordKind)
| typeExpr = DatasetReferenceTypeSpecification()
)
{
@@ -1305,7 +1305,7 @@
}
}
-RecordTypeDefinition DatasetRecordTypeSpecification(boolean
allowRecordKindModifier) throws ParseException:
+RecordTypeDefinition DatasetRecordTypeSpecification(boolean
allowRecordKindModifier, RecordTypeDefinition.RecordKind defaultRecordKind)
throws ParseException:
{
RecordTypeDefinition recordTypeDef = null;
RecordTypeDefinition.RecordKind recordKind = null;
@@ -1316,7 +1316,7 @@
( recordKind = RecordTypeKind() { recordKindToken = token; } <TYPE> )?
{
if (recordKind == null) {
- recordKind = RecordTypeDefinition.RecordKind.CLOSED;
+ recordKind = defaultRecordKind;
} else if (!allowRecordKindModifier) {
throw createUnexpectedTokenError(recordKindToken);
}
@@ -1730,7 +1730,7 @@
nameComponents = QualifiedName()
(
(
- typeExpr = DatasetTypeSpecification()
+ typeExpr =
DatasetTypeSpecification(RecordTypeDefinition.RecordKind.CLOSED)
ifNotExists = IfNotExists()
viewConfigDefaultNull = CastDefaultNull()
{
@@ -2865,7 +2865,7 @@
namespace = nameComponents.first;
datasetName = nameComponents.second;
}
- (<AS> typeExpr = DatasetTypeSpecification())?
+ (<AS> typeExpr =
DatasetTypeSpecification(RecordTypeDefinition.RecordKind.OPEN))?
<USING> adapterName = AdapterName() properties = Configuration()
{
ExternalDetailsDecl edd = new ExternalDetailsDecl();
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17866
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I04c66c5f637e49faca610fc2cb14668a8635187b
Gerrit-Change-Number: 17866
Gerrit-PatchSet: 1
Gerrit-Owner: Wail Alkowaileet <[email protected]>
Gerrit-MessageType: newchange