diff --git a/athena-arrow-java-dist/pom.xml b/athena-arrow-java-dist/pom.xml
index a0b4ce7c82..8fa0810f47 100644
--- a/athena-arrow-java-dist/pom.xml
+++ b/athena-arrow-java-dist/pom.xml
@@ -4,11 +4,11 @@
com.amazonaws
aws-athena-query-federation
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-arrow-java-dist
- 2023.2.1-athena-test
+ 2022.47.1
pom
athena-arrow-java-dist
diff --git a/athena-aws-cmdb/athena-aws-cmdb.yaml b/athena-aws-cmdb/athena-aws-cmdb.yaml
index 9c36fdd04c..03b66b5ff0 100644
--- a/athena-aws-cmdb/athena-aws-cmdb.yaml
+++ b/athena-aws-cmdb/athena-aws-cmdb.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -53,7 +53,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.aws.cmdb.AwsCmdbCompositeHandler"
- CodeUri: "./target/athena-aws-cmdb-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-aws-cmdb-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with various AWS Services, making your resource inventories accessible via SQL."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-aws-cmdb/pom.xml b/athena-aws-cmdb/pom.xml
index 8c6dd79f41..90c1ad7b59 100644
--- a/athena-aws-cmdb/pom.xml
+++ b/athena-aws-cmdb/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-aws-cmdb
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbMetadataHandlerTest.java b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbMetadataHandlerTest.java
index c620a131c9..8e41da7e68 100644
--- a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbMetadataHandlerTest.java
+++ b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbMetadataHandlerTest.java
@@ -199,7 +199,7 @@ public void doGetSplits()
new TableName("schema1", "table1"),
mockBlock,
Collections.emptyList(),
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsResponse response = handler.doGetSplits(blockAllocator, request);
diff --git a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbRecordHandlerTest.java b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbRecordHandlerTest.java
index d58f60dd69..5f142ef42a 100644
--- a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbRecordHandlerTest.java
+++ b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/AwsCmdbRecordHandlerTest.java
@@ -114,7 +114,7 @@ public void readWithConstraint()
.withQueryId(UUID.randomUUID().toString())
.withIsDirectory(true)
.build(), keyFactory.create()).build(),
- new Constraints(Collections.EMPTY_MAP, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(Collections.EMPTY_MAP, Collections.emptyList(), Collections.emptyList(), -1),
100_000,
100_000);
diff --git a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/tables/AbstractTableProviderTest.java b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/tables/AbstractTableProviderTest.java
index a6bc0dc6df..278565ac02 100644
--- a/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/tables/AbstractTableProviderTest.java
+++ b/athena-aws-cmdb/src/test/java/com/amazonaws/athena/connectors/aws/cmdb/tables/AbstractTableProviderTest.java
@@ -187,7 +187,7 @@ public void readTableTest()
EquatableValueSet.newBuilder(allocator, Types.MinorType.VARCHAR.getType(), true, false)
.add(idValue).build());
- Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1);
+ Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1);
ConstraintEvaluator evaluator = new ConstraintEvaluator(allocator, response.getSchema(), constraints);
diff --git a/athena-cloudera-hive/athena-cloudera-hive.yaml b/athena-cloudera-hive/athena-cloudera-hive.yaml
index fd506611c7..719467e498 100644
--- a/athena-cloudera-hive/athena-cloudera-hive.yaml
+++ b/athena-cloudera-hive/athena-cloudera-hive.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -66,7 +66,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.cloudera.HiveMuxCompositeHandler"
- CodeUri: "./target/athena-cloudera-hive-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-cloudera-hive-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Coludera Hive using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-cloudera-hive/pom.xml b/athena-cloudera-hive/pom.xml
index 1555b9eb4a..096389c71a 100644
--- a/athena-cloudera-hive/pom.xml
+++ b/athena-cloudera-hive/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-cloudera-hive
- 2023.2.1-athena-test
+ 2022.47.1
2.6.15.1018
@@ -15,13 +15,13 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
Hive
@@ -31,7 +31,7 @@
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-cloudera-impala/athena-cloudera-impala.yaml b/athena-cloudera-impala/athena-cloudera-impala.yaml
index 5ddac041f9..32c52cb710 100644
--- a/athena-cloudera-impala/athena-cloudera-impala.yaml
+++ b/athena-cloudera-impala/athena-cloudera-impala.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -71,7 +71,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.cloudera.ImpalaMuxCompositeHandler"
- CodeUri: "./target/athena-cloudera-impala-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-cloudera-impala-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Cloudera Impala using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-cloudera-impala/pom.xml b/athena-cloudera-impala/pom.xml
index 07e65b7088..c7c3d4b1a5 100644
--- a/athena-cloudera-impala/pom.xml
+++ b/athena-cloudera-impala/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-cloudera-impala
- 2023.2.1-athena-test
+ 2022.47.1
2.6.29.1035
@@ -15,13 +15,13 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
Impala
@@ -31,7 +31,7 @@
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-cloudwatch-metrics/athena-cloudwatch-metrics.yaml b/athena-cloudwatch-metrics/athena-cloudwatch-metrics.yaml
index ab1a0c3268..ed0bd724bc 100644
--- a/athena-cloudwatch-metrics/athena-cloudwatch-metrics.yaml
+++ b/athena-cloudwatch-metrics/athena-cloudwatch-metrics.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -53,7 +53,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.cloudwatch.metrics.MetricsCompositeHandler"
- CodeUri: "./target/athena-cloudwatch-metrics-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-cloudwatch-metrics-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Cloudwatch Metrics, making your metrics data accessible via SQL"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-cloudwatch-metrics/pom.xml b/athena-cloudwatch-metrics/pom.xml
index 97d536ab60..6c8bff216e 100644
--- a/athena-cloudwatch-metrics/pom.xml
+++ b/athena-cloudwatch-metrics/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-cloudwatch-metrics
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricUtilsTest.java b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricUtilsTest.java
index eec3ef6e13..a09c2f27e4 100644
--- a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricUtilsTest.java
+++ b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricUtilsTest.java
@@ -97,7 +97,7 @@ public void applyMetricConstraints()
constraintsMap.put(DIMENSION_NAME_FIELD, makeStringEquals(allocator, "match4"));
constraintsMap.put(DIMENSION_VALUE_FIELD, makeStringEquals(allocator, "match5"));
- ConstraintEvaluator constraintEvaluator = new ConstraintEvaluator(allocator, schema, new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1));
+ ConstraintEvaluator constraintEvaluator = new ConstraintEvaluator(allocator, schema, new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1));
Metric metric = new Metric()
.withNamespace("match1")
@@ -139,7 +139,7 @@ public void pushDownPredicate()
constraintsMap.put(DIMENSION_VALUE_FIELD, makeStringEquals(allocator, "match5"));
ListMetricsRequest request = new ListMetricsRequest();
- MetricUtils.pushDownPredicate(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1), request);
+ MetricUtils.pushDownPredicate(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1), request);
assertEquals("match1", request.getNamespace());
assertEquals("match2", request.getMetricName());
@@ -191,7 +191,7 @@ public void makeGetMetricDataRequest()
new TableName(schema, table),
schemaForRead,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsMetadataHandlerTest.java b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsMetadataHandlerTest.java
index 7dd6d4ffce..6f2ba1577e 100644
--- a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsMetadataHandlerTest.java
+++ b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsMetadataHandlerTest.java
@@ -197,7 +197,7 @@ public void doGetTableLayout()
"queryId",
"default",
new TableName(defaultSchema, "metrics"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET);
@@ -230,7 +230,7 @@ public void doGetMetricsSplits()
new TableName(defaultSchema, "metrics"),
partitions,
Collections.singletonList("partitionId"),
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
continuationToken);
int numContinuations = 0;
do {
@@ -304,7 +304,7 @@ public void doGetMetricSamplesSplits()
new TableName(defaultSchema, "metric_samples"),
partitions,
Collections.singletonList("partitionId"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
continuationToken);
int numContinuations = 0;
@@ -371,7 +371,7 @@ public void doGetMetricSamplesSplitsEmptyMetrics()
new TableName(defaultSchema, "metric_samples"),
partitions,
Collections.singletonList("partitionId"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsRequest req = new GetSplitsRequest(originalReq, null);
diff --git a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsRecordHandlerTest.java b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsRecordHandlerTest.java
index 6525627d66..daf746a686 100644
--- a/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsRecordHandlerTest.java
+++ b/athena-cloudwatch-metrics/src/test/java/com/amazonaws/athena/connectors/cloudwatch/metrics/MetricsRecordHandlerTest.java
@@ -215,7 +215,7 @@ public void readMetricsWithConstraint()
METRICS_TABLE_NAME,
METRIC_TABLE.getSchema(),
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L,
100_000_000_000L//100GB don't expect this to spill
);
@@ -291,7 +291,7 @@ public void readMetricSamplesWithConstraint()
METRIC_SAMPLES_TABLE_NAME,
METRIC_DATA_TABLE.getSchema(),
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L,
100_000_000_000L//100GB don't expect this to spill
);
diff --git a/athena-cloudwatch/athena-cloudwatch.yaml b/athena-cloudwatch/athena-cloudwatch.yaml
index a676464ce5..f0aa510ffa 100644
--- a/athena-cloudwatch/athena-cloudwatch.yaml
+++ b/athena-cloudwatch/athena-cloudwatch.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -66,7 +66,7 @@ Resources:
kms_key_id: !If [HasKMSKeyId, !Ref KMSKeyId, !Ref "AWS::NoValue"]
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.cloudwatch.CloudwatchCompositeHandler"
- CodeUri: "./target/athena-cloudwatch-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-cloudwatch-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Cloudwatch, making your log accessible via SQL"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-cloudwatch/pom.xml b/athena-cloudwatch/pom.xml
index 27d2dc490e..79757d6167 100644
--- a/athena-cloudwatch/pom.xml
+++ b/athena-cloudwatch/pom.xml
@@ -3,22 +3,22 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-cloudwatch
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
diff --git a/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchMetadataHandlerTest.java b/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchMetadataHandlerTest.java
index f1caee6fd4..880e3efb13 100644
--- a/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchMetadataHandlerTest.java
+++ b/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchMetadataHandlerTest.java
@@ -333,7 +333,7 @@ else if (Integer.valueOf(request.getNextToken()) < 3) {
"queryId",
"default",
new TableName("schema-1", "all_log_streams"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
schema,
Collections.singleton("log_stream"));
@@ -378,7 +378,7 @@ public void doGetSplits()
new TableName("schema", "all_log_streams"),
partitions,
Collections.singletonList(CloudwatchMetadataHandler.LOG_STREAM_FIELD),
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
continuationToken);
int numContinuations = 0;
do {
diff --git a/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchRecordHandlerTest.java b/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchRecordHandlerTest.java
index 154aa37a97..85122dd3e0 100644
--- a/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchRecordHandlerTest.java
+++ b/athena-cloudwatch/src/test/java/com/amazonaws/athena/connectors/cloudwatch/CloudwatchRecordHandlerTest.java
@@ -211,7 +211,7 @@ public void doReadRecordsNoSpill()
.withIsDirectory(true)
.build(),
keyFactory.create()).add(CloudwatchMetadataHandler.LOG_STREAM_FIELD, "table").build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L,
100_000_000_000L//100GB don't expect this to spill
);
@@ -251,7 +251,7 @@ public void doReadRecordsSpill()
.withIsDirectory(true)
.build(),
keyFactory.create()).add(CloudwatchMetadataHandler.LOG_STREAM_FIELD, "table").build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
1_500_000L, //~1.5MB so we should see some spill
0
);
diff --git a/athena-datalakegen2/athena-datalakegen2.yaml b/athena-datalakegen2/athena-datalakegen2.yaml
index a0f912cbfd..dd83696fdc 100644
--- a/athena-datalakegen2/athena-datalakegen2.yaml
+++ b/athena-datalakegen2/athena-datalakegen2.yaml
@@ -12,7 +12,7 @@ Metadata:
- athena-federation
- jdbc
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -68,7 +68,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.datalakegen2.DataLakeGen2MuxCompositeHandler"
- CodeUri: "./target/athena-datalakegen2-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-datalakegen2-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with DataLake Gen2 using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-datalakegen2/pom.xml b/athena-datalakegen2/pom.xml
index e3aafd3f7d..daeef90a51 100644
--- a/athena-datalakegen2/pom.xml
+++ b/athena-datalakegen2/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-datalakegen2
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-db2/athena-db2.yaml b/athena-db2/athena-db2.yaml
index 6f59c12214..283fd36ab6 100644
--- a/athena-db2/athena-db2.yaml
+++ b/athena-db2/athena-db2.yaml
@@ -13,7 +13,7 @@ Metadata:
- athena-federation
- jdbc
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -69,7 +69,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.db2.Db2MuxCompositeHandler"
- CodeUri: "./target/athena-db2-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-db2-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with DB2 using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-db2/pom.xml b/athena-db2/pom.xml
index 9b3c412310..93825215b7 100644
--- a/athena-db2/pom.xml
+++ b/athena-db2/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-db2
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-docdb/athena-docdb.yaml b/athena-docdb/athena-docdb.yaml
index 6788eae3fd..8be16edf43 100644
--- a/athena-docdb/athena-docdb.yaml
+++ b/athena-docdb/athena-docdb.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -67,7 +67,7 @@ Resources:
default_docdb: !Ref DocDBConnectionString
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.docdb.DocDBCompositeHandler"
- CodeUri: "./target/athena-docdb-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-docdb-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with DocumentDB, making your DocumentDB data accessible via SQL."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-docdb/pom.xml b/athena-docdb/pom.xml
index cbf47625fc..c49a437a8d 100644
--- a/athena-docdb/pom.xml
+++ b/athena-docdb/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-docdb
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -25,7 +25,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
diff --git a/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBMetadataHandlerTest.java b/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBMetadataHandlerTest.java
index 2bc18897ed..ed9ddfa535 100644
--- a/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBMetadataHandlerTest.java
+++ b/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBMetadataHandlerTest.java
@@ -249,7 +249,7 @@ public void doGetTableLayout()
QUERY_ID,
DEFAULT_CATALOG,
TABLE_NAME,
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
schema,
Collections.EMPTY_SET);
@@ -278,7 +278,7 @@ public void doGetSplits()
TABLE_NAME,
partitions,
partitionCols,
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsRequest req = new GetSplitsRequest(originalReq, continuationToken);
diff --git a/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBRecordHandlerTest.java b/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBRecordHandlerTest.java
index 1800b347ee..15799712e6 100644
--- a/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBRecordHandlerTest.java
+++ b/athena-docdb/src/test/java/com/amazonaws/athena/connectors/docdb/DocDBRecordHandlerTest.java
@@ -266,7 +266,7 @@ public void doReadRecordsNoSpill()
TABLE_NAME,
schemaForRead,
Split.newBuilder(splitLoc, keyFactory.create()).add(DOCDB_CONN_STR, CONNECTION_STRING).build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -320,7 +320,7 @@ public void doReadRecordsSpill()
TABLE_NAME,
schemaForRead,
Split.newBuilder(splitLoc, keyFactory.create()).add(DOCDB_CONN_STR, CONNECTION_STRING).build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
1_500_000L, //~1.5MB so we should see some spill
0L
);
@@ -420,7 +420,7 @@ public void nestedStructTest()
TABLE_NAME,
res.getSchema(),
Split.newBuilder(splitLoc, keyFactory.create()).add(DOCDB_CONN_STR, CONNECTION_STRING).build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-dynamodb/athena-dynamodb.yaml b/athena-dynamodb/athena-dynamodb.yaml
index 2482dc0c56..c11a224835 100644
--- a/athena-dynamodb/athena-dynamodb.yaml
+++ b/athena-dynamodb/athena-dynamodb.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -66,7 +66,7 @@ Resources:
kms_key_id: !If [HasKMSKeyId, !Ref KMSKeyId, !Ref "AWS::NoValue"]
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.dynamodb.DynamoDBCompositeHandler"
- CodeUri: "./target/athena-dynamodb-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-dynamodb-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with DynamoDB, making your tables accessible via SQL"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-dynamodb/pom.xml b/athena-dynamodb/pom.xml
index 30285f8671..6bafc0b2fc 100644
--- a/athena-dynamodb/pom.xml
+++ b/athena-dynamodb/pom.xml
@@ -3,22 +3,22 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-dynamodb
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
@@ -89,7 +89,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBMetadataHandlerTest.java b/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBMetadataHandlerTest.java
index 056967ecd4..7c4fee45fe 100644
--- a/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBMetadataHandlerTest.java
+++ b/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBMetadataHandlerTest.java
@@ -296,7 +296,7 @@ public void doGetTableLayoutScan()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
new TableName(TEST_CATALOG_NAME, TEST_TABLE),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET);
@@ -342,7 +342,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
@@ -374,7 +374,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
// Verify that only the upper bound is present
@@ -407,7 +407,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
// Verify that only the upper bound is present
@@ -441,7 +441,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
assertThat(res2.getPartitions().getSchema().getCustomMetadata().get(RANGE_KEY_FILTER_METADATA), equalTo("(#col_5 > :v0)"));
@@ -455,7 +455,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
assertThat(res2.getPartitions().getSchema().getCustomMetadata().get(RANGE_KEY_FILTER_METADATA), equalTo("(#col_5 >= :v0)"));
@@ -469,7 +469,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
assertThat(res2.getPartitions().getSchema().getCustomMetadata().get(RANGE_KEY_FILTER_METADATA), equalTo("(#col_5 < :v0)"));
@@ -483,7 +483,7 @@ public void doGetTableLayoutQueryIndex()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
assertThat(res2.getPartitions().getSchema().getCustomMetadata().get(RANGE_KEY_FILTER_METADATA), equalTo("(#col_5 <= :v0)"));
@@ -542,7 +542,7 @@ public void doGetSplitsQuery()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
TEST_TABLE_NAME,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
Collections.EMPTY_SET));
@@ -657,7 +657,7 @@ public void doGetTableLayoutScanWithTypeOverride()
TEST_QUERY_ID,
TEST_CATALOG_NAME,
tableName,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
getTableResponse.getSchema(),
Collections.EMPTY_SET);
diff --git a/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBRecordHandlerTest.java b/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBRecordHandlerTest.java
index 4d4b01bbe9..0f8f8d14ac 100644
--- a/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBRecordHandlerTest.java
+++ b/athena-dynamodb/src/test/java/com/amazonaws/athena/connectors/dynamodb/DynamoDBRecordHandlerTest.java
@@ -193,7 +193,7 @@ public void testReadScanSplitWithLimit()
TEST_TABLE_NAME,
schema,
split,
- new Constraints(ImmutableMap.of(), List.of(), List.of(), List.of(), 5),
+ new Constraints(ImmutableMap.of(), List.of(), List.of(), 5),
100_000_000_000L, // too big to spill
100_000_000_000L);
@@ -225,7 +225,7 @@ public void testReadScanSplitWithLimitLargerThanN()
TEST_TABLE_NAME,
schema,
split,
- new Constraints(ImmutableMap.of(), List.of(), List.of(), List.of(), 10_000),
+ new Constraints(ImmutableMap.of(), List.of(), List.of(), 10_000),
100_000_000_000L, // too big to spill
100_000_000_000L);
@@ -336,7 +336,7 @@ public void testReadQuerySplitWithLimit()
TEST_TABLE_NAME,
schema,
split,
- new Constraints(ImmutableMap.of(), List.of(), List.of(), List.of(), 1),
+ new Constraints(ImmutableMap.of(), List.of(), List.of(), 1),
100_000_000_000L, // too big to spill
100_000_000_000L);
diff --git a/athena-elasticsearch/athena-elasticsearch.yaml b/athena-elasticsearch/athena-elasticsearch.yaml
index ef4bd413b1..3f0b36000e 100644
--- a/athena-elasticsearch/athena-elasticsearch.yaml
+++ b/athena-elasticsearch/athena-elasticsearch.yaml
@@ -10,7 +10,7 @@ Metadata:
ReadmeUrl: README.md
Labels: ['athena-federation']
HomePageUrl: https://github.com/awslabs/aws-athena-query-federation
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: https://github.com/awslabs/aws-athena-query-federation
# Parameters are CloudFormation features to pass input
@@ -103,7 +103,7 @@ Resources:
query_scroll_timeout: !Ref QueryScrollTimeout
FunctionName: !Sub "${AthenaCatalogName}"
Handler: "com.amazonaws.athena.connectors.elasticsearch.ElasticsearchCompositeHandler"
- CodeUri: "./target/athena-elasticsearch-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-elasticsearch-2022.47.1.jar"
Description: "The Elasticsearch Lambda Connector provides Athena users the ability to query data stored on Elasticsearch clusters."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-elasticsearch/pom.xml b/athena-elasticsearch/pom.xml
index 2c15eff89e..a3a9638782 100644
--- a/athena-elasticsearch/pom.xml
+++ b/athena-elasticsearch/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-elasticsearch
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -25,7 +25,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
@@ -191,7 +191,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-elasticsearch/src/test/java/com/amazonaws/athena/connectors/elasticsearch/ElasticsearchRecordHandlerTest.java b/athena-elasticsearch/src/test/java/com/amazonaws/athena/connectors/elasticsearch/ElasticsearchRecordHandlerTest.java
index 6e21252c75..629916b694 100644
--- a/athena-elasticsearch/src/test/java/com/amazonaws/athena/connectors/elasticsearch/ElasticsearchRecordHandlerTest.java
+++ b/athena-elasticsearch/src/test/java/com/amazonaws/athena/connectors/elasticsearch/ElasticsearchRecordHandlerTest.java
@@ -354,7 +354,7 @@ public void doReadRecordsNoSpill()
new TableName("movies", "mishmash"),
mapping,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -420,7 +420,7 @@ public void doReadRecordsSpill()
new TableName("movies", "mishmash"),
mapping,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
10_000L, //10KB Expect this to spill
0L
);
diff --git a/athena-example/README.md b/athena-example/README.md
index a03a1a0576..8fc8429df2 100644
--- a/athena-example/README.md
+++ b/athena-example/README.md
@@ -133,7 +133,6 @@ public class MyRecordHandler
* 3. The Constraints (if any), which include:
- simple filtering predicates
- complex expressions
- - aggregation clauses
- order by clauses
- limit clause
* 4. The columns required for projection.
diff --git a/athena-example/athena-example.yaml b/athena-example/athena-example.yaml
index 0e1fff4722..93dbec9cab 100644
--- a/athena-example/athena-example.yaml
+++ b/athena-example/athena-example.yaml
@@ -10,7 +10,7 @@ Metadata:
ReadmeUrl: README.md
Labels: ['athena-federation']
HomePageUrl: https://github.com/awslabs/aws-athena-query-federation
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: https://github.com/awslabs/aws-athena-query-federation
# Parameters are CloudFormation features to pass input
@@ -55,7 +55,7 @@ Resources:
data_bucket: !Ref DataBucket
FunctionName: !Sub "${AthenaCatalogName}"
Handler: "com.amazonaws.athena.connectors.example.ExampleCompositeHandler"
- CodeUri: "./target/athena-example-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-example-2022.47.1.jar"
Description: "A guided example for writing and deploying your own federated Amazon Athena connector for a custom source."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-example/pom.xml b/athena-example/pom.xml
index 6842e8dcbe..e3a84da25e 100644
--- a/athena-example/pom.xml
+++ b/athena-example/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-example
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleMetadataHandlerTest.java b/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleMetadataHandlerTest.java
index 9cae240148..e87e022067 100644
--- a/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleMetadataHandlerTest.java
+++ b/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleMetadataHandlerTest.java
@@ -241,7 +241,7 @@ public void getPartitions()
req = new GetTableLayoutRequest(fakeIdentity(), "queryId", "default",
new TableName("schema1", "table1"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
tableSchema,
partitionCols);
@@ -317,7 +317,7 @@ public void doGetSplits()
new TableName("schema", "table_name"),
partitions,
partitionCols,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
continuationToken);
int numContinuations = 0;
do {
diff --git a/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleRecordHandlerTest.java b/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleRecordHandlerTest.java
index a7a4aa027e..a3f856c53c 100644
--- a/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleRecordHandlerTest.java
+++ b/athena-example/src/test/java/com/amazonaws/athena/connectors/example/ExampleRecordHandlerTest.java
@@ -155,7 +155,7 @@ public void doReadRecordsNoSpill()
.add("month", "11")
.add("day", "1")
.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-federation-integ-test/README.md b/athena-federation-integ-test/README.md
index 88e7580ea7..5440cb091d 100644
--- a/athena-federation-integ-test/README.md
+++ b/athena-federation-integ-test/README.md
@@ -36,7 +36,7 @@ in most **pom.xml** files (e.g.
com.amazonaws
athena-federation-integ-test
- Current version of the SDK (e.g. 2023.1.2-athena-test-SNAPSHOT)
+ Current version of the SDK (e.g. 2022.47.1)
test
```
diff --git a/athena-federation-integ-test/pom.xml b/athena-federation-integ-test/pom.xml
index f88715ddee..cc8653b85d 100644
--- a/athena-federation-integ-test/pom.xml
+++ b/athena-federation-integ-test/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
jar
Amazon Athena Query Federation Integ Test
diff --git a/athena-federation-sdk-tools/pom.xml b/athena-federation-sdk-tools/pom.xml
index 2e8dc194f8..30eb909a1c 100644
--- a/athena-federation-sdk-tools/pom.xml
+++ b/athena-federation-sdk-tools/pom.xml
@@ -3,18 +3,18 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-federation-sdk-tools
jar
Amazon Athena Query Federation SDK Tools
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-federation-sdk-tools/src/main/java/com/amazonaws/athena/connector/validation/ConstraintParser.java b/athena-federation-sdk-tools/src/main/java/com/amazonaws/athena/connector/validation/ConstraintParser.java
index b3aff1a93a..a95e06231c 100644
--- a/athena-federation-sdk-tools/src/main/java/com/amazonaws/athena/connector/validation/ConstraintParser.java
+++ b/athena-federation-sdk-tools/src/main/java/com/amazonaws/athena/connector/validation/ConstraintParser.java
@@ -135,7 +135,7 @@ public int getRank()
public static Constraints parseConstraints(Schema schema, Optional input)
{
if (!input.isPresent() || input.get().trim().isEmpty()) {
- return new Constraints(Collections.EMPTY_MAP, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1);
+ return new Constraints(Collections.EMPTY_MAP, Collections.emptyList(), Collections.emptyList(), -1);
}
Map fieldTypes = schema.getFields().stream()
@@ -144,7 +144,7 @@ public static Constraints parseConstraints(Schema schema, Optional input
Map constraints = new HashMap<>();
Iterable constraintStrings = CONSTRAINT_SPLITTER.split(input.get());
constraintStrings.forEach(str -> parseAndAddConstraint(fieldTypes, constraints, str));
- return new Constraints(constraints, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1);
+ return new Constraints(constraints, Collections.emptyList(), Collections.emptyList(), -1);
}
private static void parseAndAddConstraint(Map fieldTypes,
diff --git a/athena-federation-sdk/README.md b/athena-federation-sdk/README.md
index 06379749e6..545476cd6e 100644
--- a/athena-federation-sdk/README.md
+++ b/athena-federation-sdk/README.md
@@ -19,7 +19,7 @@ For those seeking to write their own connectors, we recommend you being by going
* **Federated Identity** - When Athena federates a query to your connector, you may want to perform Authz based on the identitiy of the entity that executed the Athena Query.
* **Partition Pruning** - Athena will call you connector to understand how the table being queried is partitioned as well as to obtain which partitions need to be read for a given query. If your source supports partitioning, this give you an opportunity to use the query predicate to perform partition prunning.
* **Parallelized & Pipelined Reads** - Athena will parallelize reading your tables based on the partitioning information you provide. You also have the opportunity to tell Athena how (and if) it should split each partition into multiple (potentially concurrent) read operations. Behind the scenes Athena will parallelize reading the split (work units) you've created and pipeline reads to reduce the performance impact of reading a remote source.
-* **Predicate Pushdown** - Based on the response provided in the MetadataHandler's doGetDataSourceCapabilities API, Athena will supply your RecordHandler's readWithConstraints with a Constraints object containing information about associative predicates (also called simple filters), complex expressions, aggregation expressions, order by fields, and a limit value. Athena provides these constraints under the assumption that the connector will be responsible for correctly pushing down these predicates and clauses into the underlying data source. This will help reduce the query execution runtime as well as data scanned of your queries.
+* **Predicate Pushdown** - Based on the response provided in the MetadataHandler's doGetDataSourceCapabilities API, Athena will supply your RecordHandler's readWithConstraints with a Constraints object containing information about associative predicates (also called simple filters), complex expressions, order by fields, and a limit value. Athena provides these constraints under the assumption that the connector will be responsible for correctly pushing down these predicates and clauses into the underlying data source. This will help reduce the query execution runtime as well as data scanned of your queries.
* **Column Projection** - Where relevant, Athena will supply you with the columns that need to be projected so that you can reduce data scanned.
* **Limited Scans** - While Athena is not yet able to push down limits to you connector, the SDK does expose a mechanism by which you can abandon a scan early. Athena will already avoid scanning partitions and splits that are not needed once a limit, failure, or user cancellation occurs but this functionality will allow connectors that are in the middle of processing a split to stop regardless of the cause. This works even when the query's limit can not be semantically pushed down (e.g. limit happens after a filtered join). In a future release we may also introduce traditional limit pushdwon for the simple cases that would support that.
* **Congestion Control** - Some of the source you may wish to federate to may not be as scalable as Athena or may be running performance sensitive workloads that you wish to protect from an overzealous federated query. Athena will automatically detect congestion by listening for FederationThrottleException(s) as well as many other AWS service exceptions that indicate your source is overwhelmed. When Athena detects congestion it reducing parallelism against your source. Within the SDK you can make use of ThrottlingInvoker to more tightly control congestion yourself. Lastly, you can reduce the concurrency your Lambda functions are allowed to achieve in the Lambda console and Athena will respect that setting.
@@ -174,7 +174,7 @@ public class MyRecordHandler
//to write rows into the response. The Amazon Athena Query Federation SDK handles all the
//boiler plate of spilling large response to S3, and optionally encrypting any spilled data.
//If you source supports pushdowns (supplied by your metadata handler's doGetDataSourceCapabilities method),
- // use the Constraints object to access your simple filters, complex expressions, aggregatation clauses,
+ // use the Constraints object to access your simple filters, complex expressions,
// order by fields, and limit fields. Then you can push them down into your source.
// You can also use the provided ConstraintEvaluator to performing filtering
//in this code block.
@@ -266,7 +266,7 @@ You can configure ThrottlingInvoker via its builder or for pre-built connectors
### Predicate Pushdown
-The SDK has functionality to allow connectors to handle filters (.e.g `colA > 10`), complex expressions (.e.g `colB IN ("string1", "string2") AND colC <> ""`), certain aggregations (.e.g `MAX(colE)`), order by clauses (.e.g `ORDER BY colC DESC, colA ASC`), and limits (.e.g `LIMIT 500`). How this works is the query engine asks a connector what pushdowns it can support, via the `MetadataHandler::doGetDataSourceCapabilities` method. The connector returns the type of pushdowns it promises it can execute. Then, when processing splits, the engine will send down a Constraints object with data that reflects the promised pushdown functionality in the `RecordHandler::readWithConstraint` method. The connector is then responsible for pushing down the contents of the Constraints object to the underlying data source. This way, the engine does not need to do all the extra work of reading in unfiltered data and processing predicates and clauses that a connector is already able to do.
+The SDK has functionality to allow connectors to handle filters (.e.g `colA > 10`), complex expressions (.e.g `colB IN ("string1", "string2") AND colC <> ""`), order by clauses (.e.g `ORDER BY colC DESC, colA ASC`), and limits (.e.g `LIMIT 500`). How this works is the query engine asks a connector what pushdowns it can support, via the `MetadataHandler::doGetDataSourceCapabilities` method. The connector returns the type of pushdowns it promises it can execute. Then, when processing splits, the engine will send down a Constraints object with data that reflects the promised pushdown functionality in the `RecordHandler::readWithConstraint` method. The connector is then responsible for pushing down the contents of the Constraints object to the underlying data source. This way, the engine does not need to do all the extra work of reading in unfiltered data and processing predicates and clauses that a connector is already able to do.
Supporting and implementing some or all of the possible pushdowns will reduce the data scanned by Athena and also reduce the query execution runtime, when compared to implementations that do not support these pushdowns.
diff --git a/athena-federation-sdk/athena-federation-sdk.yaml b/athena-federation-sdk/athena-federation-sdk.yaml
index 59648eccc7..8499d0bd67 100644
--- a/athena-federation-sdk/athena-federation-sdk.yaml
+++ b/athena-federation-sdk/athena-federation-sdk.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -47,7 +47,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connector.lambda.examples.ExampleCompositeHandler"
- CodeUri: "./target/aws-athena-federation-sdk-2023.1.2-athena-test-SNAPSHOT-withdep.jar"
+ CodeUri: "./target/aws-athena-federation-sdk-2022.47.1-withdep.jar"
Description: "This connector enables Amazon Athena to communicate with a randomly generated data source."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-federation-sdk/pom.xml b/athena-federation-sdk/pom.xml
index 2a34e60818..ca7ca38511 100644
--- a/athena-federation-sdk/pom.xml
+++ b/athena-federation-sdk/pom.xml
@@ -4,11 +4,11 @@
com.amazonaws
aws-athena-query-federation
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
jar
Amazon Athena Query Federation SDK
The Athena Query Federation SDK defines a set of interfaces and wire protocols that you can implement to enable Athena to delegate portions of it's query execution plan to code that you deploy/write.
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/writers/GeneratedRowWriter.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/writers/GeneratedRowWriter.java
index 9dfbd27c2f..715a94b0ee 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/writers/GeneratedRowWriter.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/data/writers/GeneratedRowWriter.java
@@ -50,7 +50,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.ConstraintProjector;
import com.amazonaws.athena.connector.lambda.domain.predicate.Constraints;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.google.common.collect.ImmutableMap;
import org.apache.arrow.vector.BigIntVector;
import org.apache.arrow.vector.BitVector;
@@ -105,7 +104,7 @@ public static RowWriterBuilder newBuilder(Constraints constraints)
public static RowWriterBuilder newBuilder()
{
- return new RowWriterBuilder(new Constraints(ImmutableMap.of(), Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1));
+ return new RowWriterBuilder(new Constraints(ImmutableMap.of(), Collections.emptyList(), Collections.emptyList(), -1));
}
public boolean writeRow(Block block, int rowNum, Object context)
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/ConstraintEvaluator.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/ConstraintEvaluator.java
index 79cf9bd03e..53fb8ede8b 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/ConstraintEvaluator.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/ConstraintEvaluator.java
@@ -22,7 +22,6 @@
import com.amazonaws.athena.connector.lambda.data.BlockAllocator;
import com.amazonaws.athena.connector.lambda.data.SchemaBuilder;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.arrow.vector.types.pojo.Schema;
@@ -83,7 +82,7 @@ public ConstraintEvaluator(BlockAllocator allocator, Schema schema, Constraints
*/
public static ConstraintEvaluator emptyEvaluator()
{
- return new ConstraintEvaluator(null, SchemaBuilder.newBuilder().build(), new Constraints(new HashMap<>(), Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1));
+ return new ConstraintEvaluator(null, SchemaBuilder.newBuilder().build(), new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1));
}
/**
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/Constraints.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/Constraints.java
index b53634858c..4181d5d455 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/Constraints.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/Constraints.java
@@ -20,7 +20,6 @@
* #L%
*/
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -46,26 +45,23 @@ public class Constraints
{
private Map summary;
private List expression;
- private final List aggregateFunctionClause;
private final List orderByClause;
private long limit;
@Deprecated
public Constraints(Map summary)
{
- this(summary, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1);
+ this(summary, Collections.emptyList(), Collections.emptyList(), -1);
}
@JsonCreator
public Constraints(@JsonProperty("summary") Map summary,
@JsonProperty("expression") List expression,
- @JsonProperty("aggregateFunctionClause") List aggregateFunctionClause,
@JsonProperty("orderByClause") List orderByClause,
@JsonProperty("limit") long limit)
{
this.summary = summary;
this.expression = expression;
- this.aggregateFunctionClause = aggregateFunctionClause;
this.orderByClause = orderByClause;
this.limit = limit;
}
@@ -95,11 +91,6 @@ public boolean hasLimit()
return this.limit > -1;
}
- public List getAggregateFunctionClause()
- {
- return aggregateFunctionClause;
- }
-
public List getOrderByClause()
{
return this.orderByClause;
@@ -119,7 +110,6 @@ public boolean equals(Object o)
return Objects.equal(this.summary, that.summary) &&
Objects.equal(this.expression, that.expression) &&
- Objects.equal(this.aggregateFunctionClause, that.aggregateFunctionClause) &&
Objects.equal(this.orderByClause, that.orderByClause) &&
Objects.equal(this.limit, that.limit);
}
@@ -130,7 +120,6 @@ public String toString()
return "Constraints{" +
"summary=" + summary +
"expression=" + expression +
- "aggregateFunctionClause=" + aggregateFunctionClause +
"orderByClause=" + orderByClause +
"limit=" + limit +
'}';
@@ -139,7 +128,7 @@ public String toString()
@Override
public int hashCode()
{
- return Objects.hashCode(summary, expression, aggregateFunctionClause, orderByClause, limit);
+ return Objects.hashCode(summary, expression, orderByClause, limit);
}
@Override
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/OrderByField.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/OrderByField.java
index 1fe9d307c3..c2fb065808 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/OrderByField.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/OrderByField.java
@@ -25,6 +25,8 @@
import java.util.StringJoiner;
+import static java.lang.String.format;
+
public class OrderByField
{
private final String columnName;
@@ -32,10 +34,10 @@ public class OrderByField
@JsonCreator
public OrderByField(@JsonProperty("columnName") String columnName,
- @JsonProperty("direction") String direction)
+ @JsonProperty("direction") Direction direction)
{
this.columnName = columnName;
- this.direction = Direction.valueOf(direction);
+ this.direction = direction;
}
@JsonProperty("columnName")
@@ -50,9 +52,39 @@ public Direction getDirection()
return this.direction;
}
- public enum Direction {
- ASC,
- DESC;
+ public enum Direction
+ {
+ ASC_NULLS_FIRST(true, true),
+ ASC_NULLS_LAST(true, false),
+ DESC_NULLS_FIRST(false, true),
+ DESC_NULLS_LAST(false, false);
+
+ private final boolean ascending;
+ private final boolean nullsFirst;
+
+ Direction(boolean ascending, boolean nullsFirst)
+ {
+ this.ascending = ascending;
+ this.nullsFirst = nullsFirst;
+ }
+
+ public boolean isAscending()
+ {
+ return ascending;
+ }
+
+ public boolean isNullsFirst()
+ {
+ return nullsFirst;
+ }
+
+ @Override
+ public String toString()
+ {
+ return format("%s %s",
+ ascending ? "ASC" : "DESC",
+ nullsFirst ? "NULLS FIRST" : "NULLS LAST");
+ }
}
@Override
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregateFunctionClause.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregateFunctionClause.java
deleted file mode 100644
index 2ba221a3e4..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregateFunctionClause.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2020 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.domain.predicate.aggregation;
-
-import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
-import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FunctionCallExpression;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.StringJoiner;
-
-public class AggregateFunctionClause
-{
- private final List aggregateFunctions;
- private final List columnNames;
- private final List> groupingSets;
-
- @JsonCreator
- public AggregateFunctionClause(@JsonProperty("aggregateFunctions") List aggregateFunctions,
- @JsonProperty("columnNames") List columnNames,
- @JsonProperty("groupingSets") List> groupingSets)
- {
- this.aggregateFunctions = aggregateFunctions;
- this.columnNames = columnNames;
- this.groupingSets = groupingSets;
- }
-
- @JsonProperty("aggregateFunctions")
- public List getAggregateFunctions()
- {
- return aggregateFunctions;
- }
-
- @JsonProperty("columnNames")
- public List getColumnNames()
- {
- return columnNames;
- }
-
- @JsonProperty("groupingSets")
- public List> getGroupingSets()
- {
- return groupingSets;
- }
-
- public static List emptyAggregateFunctionClause()
- {
- return Collections.emptyList();
- }
-
- @Override
- public boolean equals(Object o)
- {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- AggregateFunctionClause call = (AggregateFunctionClause) o;
- return Objects.equals(aggregateFunctions, call.aggregateFunctions) &&
- Objects.equals(columnNames, call.columnNames) &&
- Objects.equals(groupingSets, call.groupingSets);
- }
-
- @Override
- public int hashCode()
- {
- return Objects.hash(aggregateFunctions, columnNames, groupingSets);
- }
-
- @Override
- public String toString()
- {
- StringJoiner stringJoiner = new StringJoiner(", ", FunctionCallExpression.class.getSimpleName() + "[", "]");
- return stringJoiner
- .add("aggregateFunctions=" + aggregateFunctions)
- .add("columnNames=" + columnNames)
- .add("groupingSets=" + groupingSets)
- .toString();
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregationFunctions.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregationFunctions.java
deleted file mode 100644
index 420690d1ab..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/domain/predicate/aggregation/AggregationFunctions.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2023 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.domain.predicate.aggregation;
-
-import com.amazonaws.athena.connector.lambda.domain.predicate.functions.FunctionName;
-
-public enum AggregationFunctions
-{
- SUM(new FunctionName("$sum")),
- MAX(new FunctionName("$max")),
- MIN(new FunctionName("$min")),
- COUNT(new FunctionName("$count")), // not yet supported, just for the future
- AVG(new FunctionName("$avg")); // not yet supported, just for the future
-
- FunctionName functionName;
-
- public FunctionName getFunctionName()
- {
- return this.functionName;
- }
-
- AggregationFunctions(FunctionName functionName)
- {
- this.functionName = functionName;
- }
-
- public static AggregationFunctions fromFunctionName(FunctionName functionName)
- {
- for (AggregationFunctions function : AggregationFunctions.values()) {
- if (function.getFunctionName().equals(functionName)) {
- return function;
- }
- }
- return null;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/DataSourceOptimizations.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/DataSourceOptimizations.java
index c9e0be419d..ae4dc97770 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/DataSourceOptimizations.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/DataSourceOptimizations.java
@@ -19,15 +19,10 @@
*/
package com.amazonaws.athena.connector.lambda.metadata.optimizations;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.AggregationPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.ComplexExpressionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.FilterPushdownSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.JoinPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.LimitPushdownSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.ProjectionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.PushdownSubTypes;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.SamplePushdownSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.TableFunctionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.TopNPushdownSubType;
import java.util.Arrays;
@@ -37,16 +32,6 @@
public enum DataSourceOptimizations
{
- SUPPORTS_AGGREGATE_FUNCTIONS("supports_aggregate_functions")
- {
- public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
- {
- if (!Arrays.stream(subTypesList).allMatch(pushdownSubTypes -> pushdownSubTypes instanceof AggregationPushdownSubType)) {
- throw new IllegalArgumentException("Aggregation Pushdown Optimization must contain valid pushdown subtypes.");
- }
- return Map.of(SUPPORTS_AGGREGATE_FUNCTIONS.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
- }
- },
SUPPORTS_LIMIT_PUSHDOWN("supports_limit_pushdown")
{
public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
@@ -86,46 +71,6 @@ public Map> withSupportedSubTypes(PushdownSubT
}
return Map.of(SUPPORTS_COMPLEX_EXPRESSION_PUSHDOWN.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
}
- },
- SUPPORTS_PROJECTION_PUSHDOWN("supports_projection_pushdown")
- {
- public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
- {
- if (!Arrays.stream(subTypesList).allMatch(pushdownSubTypes -> pushdownSubTypes instanceof ProjectionPushdownSubType)) {
- throw new IllegalArgumentException("Projection Pushdown Optimization must contain valid pushdown subtypes.");
- }
- return Map.of(SUPPORTS_PROJECTION_PUSHDOWN.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
- }
- },
- SUPPORTS_JOIN_PUSHDOWN("supports_join_pushdown")
- {
- public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
- {
- if (!Arrays.stream(subTypesList).allMatch(pushdownSubTypes -> pushdownSubTypes instanceof JoinPushdownSubType)) {
- throw new IllegalArgumentException("Join Pushdown Optimization must contain valid pushdown subtypes.");
- }
- return Map.of(SUPPORTS_JOIN_PUSHDOWN.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
- }
- },
- SUPPORTS_TABLE_FUNCTION("supports_table_function")
- {
- public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
- {
- if (!Arrays.stream(subTypesList).allMatch(pushdownSubTypes -> pushdownSubTypes instanceof TableFunctionPushdownSubType)) {
- throw new IllegalArgumentException("TableFunction Pushdown Optimization must contain valid pushdown subtypes.");
- }
- return Map.of(SUPPORTS_TABLE_FUNCTION.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
- }
- },
- SUPPORTS_SAMPLE_PUSHDOWN("supports_sample_pushdown")
- {
- public Map> withSupportedSubTypes(PushdownSubTypes... subTypesList)
- {
- if (!Arrays.stream(subTypesList).allMatch(pushdownSubTypes -> pushdownSubTypes instanceof SamplePushdownSubType)) {
- throw new IllegalArgumentException("Sample Pushdown Optimization must contain valid pushdown subtypes.");
- }
- return Map.of(SUPPORTS_SAMPLE_PUSHDOWN.getOptimization(), Arrays.stream(subTypesList).map(pushdownSubTypes -> new OptimizationSubType(pushdownSubTypes.getSubType(), pushdownSubTypes.getProperties())).collect(Collectors.toList()));
- }
};
private final String optimization;
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/AggregationPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/AggregationPushdownSubType.java
deleted file mode 100644
index d3fef219c8..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/AggregationPushdownSubType.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown;
-
-public enum AggregationPushdownSubType
- implements PushdownSubTypes
-{
- SUPPORTS_MAX_PUSHDOWN("supports_max_pushdown"),
- SUPPORTS_AVG_PUSHDOWN("supports_avg_pushdown"),
- SUPPORTS_MIN_PUSHDOWN("supports_min_pushdown"),
- SUPPORTS_SUM_PUSHDOWN("supports_sum_pushdown"),
- SUPPORTS_COUNT_PUSHDOWN("supports_count_pushdown");
-
- private String subType;
-
- AggregationPushdownSubType(String subtype)
- {
- this.subType = subtype;
- }
-
- @Override
- public String getSubType()
- {
- return subType;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ComplexExpressionPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ComplexExpressionPushdownSubType.java
index 4d4313ce12..88f115d638 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ComplexExpressionPushdownSubType.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ComplexExpressionPushdownSubType.java
@@ -26,7 +26,6 @@
public enum ComplexExpressionPushdownSubType
implements PushdownSubTypes
{
- NONE("none"),
SUPPORTED_FUNCTION_EXPRESSION_TYPES("supported_function_expression_types")
{
@Override
@@ -37,8 +36,7 @@ public SubTypeProperties withSubTypeProperties(String... properties)
}
return new SubTypeProperties(getSubType(), Arrays.asList(properties));
}
- },
- SUPPORTS_FUNCTION_CALL_EXPRESSION_PUSHDOWN("supports_function_call_expression_pushdown");
+ };
private String subType;
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/FilterPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/FilterPushdownSubType.java
index dc7a447cec..fbe402d4af 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/FilterPushdownSubType.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/FilterPushdownSubType.java
@@ -22,7 +22,6 @@
public enum FilterPushdownSubType
implements PushdownSubTypes
{
- NONE("none"),
ALL("all");
private String subType;
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/JoinPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/JoinPushdownSubType.java
deleted file mode 100644
index f9532c5ec1..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/JoinPushdownSubType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown;
-
-public enum JoinPushdownSubType
- implements PushdownSubTypes
-{
- NONE("none");
-
- private String subType;
-
- @Override
- public String getSubType()
- {
- return subType;
- }
-
- JoinPushdownSubType(String subType)
- {
- this.subType = subType;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/LimitPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/LimitPushdownSubType.java
index 88febc052e..b709d26184 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/LimitPushdownSubType.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/LimitPushdownSubType.java
@@ -22,7 +22,6 @@
public enum LimitPushdownSubType
implements PushdownSubTypes
{
- NONE("none"),
ALL("all");
private String subType;
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ProjectionPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ProjectionPushdownSubType.java
deleted file mode 100644
index 9059b9424a..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/ProjectionPushdownSubType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown;
-
-public enum ProjectionPushdownSubType
- implements PushdownSubTypes
-{
- DEFAULT_PLACEHOLDER("default_place_holder");
-
- private String subType;
-
- @Override
- public String getSubType()
- {
- return subType;
- }
-
- ProjectionPushdownSubType(String subType)
- {
- this.subType = subType;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/SamplePushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/SamplePushdownSubType.java
deleted file mode 100644
index 3c61de8d54..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/SamplePushdownSubType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown;
-
-public enum SamplePushdownSubType
- implements PushdownSubTypes
-{
- NONE("none");
-
- private String subType;
-
- @Override
- public String getSubType()
- {
- return subType;
- }
-
- SamplePushdownSubType(String subType)
- {
- this.subType = subType;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/TableFunctionPushdownSubType.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/TableFunctionPushdownSubType.java
deleted file mode 100644
index 5bbc2f0231..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/metadata/optimizations/pushdown/TableFunctionPushdownSubType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown;
-
-public enum TableFunctionPushdownSubType
- implements PushdownSubTypes
-{
- NONE("none");
-
- private String subType;
-
- @Override
- public String getSubType()
- {
- return subType;
- }
-
- TableFunctionPushdownSubType(String subType)
- {
- this.subType = subType;
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v2/ConstraintsSerDe.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v2/ConstraintsSerDe.java
index 41d34da2e6..969173c41d 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v2/ConstraintsSerDe.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v2/ConstraintsSerDe.java
@@ -91,7 +91,6 @@ public Constraints doDeserialize(JsonParser jparser, DeserializationContext ctxt
}
return new Constraints(summaryMap.build(),
- Collections.emptyList(),
Collections.emptyList(),
Collections.emptyList(),
NO_LIMIT_VALUE);
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/AggregateFunctionClauseSerDeV4.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/AggregateFunctionClauseSerDeV4.java
deleted file mode 100644
index 0c37aceb0d..0000000000
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/AggregateFunctionClauseSerDeV4.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*-
- * #%L
- * Amazon Athena Query Federation SDK
- * %%
- * Copyright (C) 2019 - 2022 Amazon Web Services
- * %%
- * Licensed 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.
- * #L%
- */
-package com.amazonaws.athena.connector.lambda.serde.v4;
-
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
-import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
-import com.amazonaws.athena.connector.lambda.serde.BaseDeserializer;
-import com.amazonaws.athena.connector.lambda.serde.BaseSerializer;
-import com.amazonaws.athena.connector.lambda.serde.VersionedSerDe;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.google.common.collect.ImmutableList;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static java.util.Objects.requireNonNull;
-
-public class AggregateFunctionClauseSerDeV4
-{
- private static final String AGGREGATE_FUNCTIONS_FIELD = "aggregateFunctions";
- private static final String COLUMN_NAMES_FIELD = "columnNames";
- private static final String GROUPING_SETS_FIELD = "groupingSets";
-
- private AggregateFunctionClauseSerDeV4() {}
-
- public static final class Serializer extends BaseSerializer implements VersionedSerDe.Serializer
- {
- private final VersionedSerDe.Serializer federationExpressionSerializer;
-
- public Serializer(VersionedSerDe.Serializer federationExpressionSerializer)
- {
- super(AggregateFunctionClause.class);
- this.federationExpressionSerializer = requireNonNull(federationExpressionSerializer, "functionNameSerializer is null");
- }
-
- @Override
- public void doSerialize(AggregateFunctionClause aggregateFunctionClause, JsonGenerator jgen, SerializerProvider provider)
- throws IOException
- {
- jgen.writeArrayFieldStart(AGGREGATE_FUNCTIONS_FIELD);
- for (FederationExpression expression : aggregateFunctionClause.getAggregateFunctions()) {
- federationExpressionSerializer.serialize(expression, jgen, provider);
- }
- jgen.writeEndArray();
-
- writeStringArray(jgen, COLUMN_NAMES_FIELD, aggregateFunctionClause.getColumnNames());
-
- jgen.writeArrayFieldStart(GROUPING_SETS_FIELD);
- for (List groups : aggregateFunctionClause.getGroupingSets()) {
- jgen.writeStartArray();
- for (String group : groups) {
- jgen.writeString(group);
- }
- jgen.writeEndArray();
- }
- jgen.writeEndArray();
- }
- }
-
- public static final class Deserializer extends BaseDeserializer implements VersionedSerDe.Deserializer
- {
- private VersionedSerDe.Deserializer federationExpressionDeserializer;
-
- public Deserializer(VersionedSerDe.Deserializer federationExpressionDeserializer)
- {
- super(AggregateFunctionClause.class);
- this.federationExpressionDeserializer = requireNonNull(federationExpressionDeserializer, "functionNameSerializer is null");
- }
-
- @Override
- public AggregateFunctionClause doDeserialize(JsonParser jparser, DeserializationContext ctxt)
- throws IOException
- {
- assertFieldName(jparser, AGGREGATE_FUNCTIONS_FIELD);
- validateArrayStart(jparser);
- ImmutableList.Builder federationExpressionList = ImmutableList.builder();
- while (jparser.nextToken() != JsonToken.END_ARRAY) {
- validateObjectStart(jparser.getCurrentToken());
- federationExpressionList.add(federationExpressionDeserializer.doDeserialize(jparser, ctxt));
- validateObjectEnd(jparser);
- }
-
- List columnNames = getNextStringArray(jparser, COLUMN_NAMES_FIELD);
-
- assertFieldName(jparser, GROUPING_SETS_FIELD);
- validateArrayStart(jparser);
- ImmutableList.Builder> groupingSetsBuilder = ImmutableList.builder();
- while (jparser.nextToken() != JsonToken.END_ARRAY) {
- List group = new ArrayList<>();
- while (jparser.nextToken() != JsonToken.END_ARRAY) {
- group.add(jparser.getValueAsString());
- }
- groupingSetsBuilder.add(group);
- }
-
- return new AggregateFunctionClause(federationExpressionList.build(), columnNames, groupingSetsBuilder.build());
- }
- }
-}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ConstraintsSerDeV4.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ConstraintsSerDeV4.java
index e35d150026..615d6b0264 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ConstraintsSerDeV4.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ConstraintsSerDeV4.java
@@ -22,7 +22,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Constraints;
import com.amazonaws.athena.connector.lambda.domain.predicate.OrderByField;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
import com.amazonaws.athena.connector.lambda.serde.BaseDeserializer;
import com.amazonaws.athena.connector.lambda.serde.BaseSerializer;
@@ -45,7 +44,6 @@ public final class ConstraintsSerDeV4
{
private static final String SUMMARY_FIELD = "summary";
private static final String EXPRESSION_FIELD = "expression";
- private static final String AGGREGATE_FUNCTION_CLAUSE = "aggregateFunctionClause";
private static final String ORDER_BY_CLAUSE = "orderByClause";
private static final String LIMIT_FIELD = "limit";
@@ -55,18 +53,14 @@ public static final class Serializer extends BaseSerializer impleme
{
private final ValueSetSerDe.Serializer valueSetSerializer;
private final VersionedSerDe.Serializer federationExpressionSerializer;
- private final VersionedSerDe.Serializer aggregateFunctionClauseSerializer;
private final VersionedSerDe.Serializer orderByFieldSerializer;
-
public Serializer(ValueSetSerDe.Serializer valueSetSerializer,
VersionedSerDe.Serializer federationExpressionSerializer,
- VersionedSerDe.Serializer aggregateFunctionClauseSerializer,
VersionedSerDe.Serializer orderByFieldSerializer)
{
super(Constraints.class);
this.valueSetSerializer = requireNonNull(valueSetSerializer, "valueSetSerDe is null");
this.federationExpressionSerializer = requireNonNull(federationExpressionSerializer, "federationExpressionSerDe is null");
- this.aggregateFunctionClauseSerializer = requireNonNull(aggregateFunctionClauseSerializer, "aggregateFunctionClauseSerDe is null");
this.orderByFieldSerializer = requireNonNull(orderByFieldSerializer, "orderByFieldSerDe is null");
}
@@ -87,12 +81,6 @@ public void doSerialize(Constraints constraints, JsonGenerator jgen, SerializerP
}
jgen.writeEndArray();
- jgen.writeArrayFieldStart(AGGREGATE_FUNCTION_CLAUSE);
- for (AggregateFunctionClause aggregateFunctionClause : constraints.getAggregateFunctionClause()) {
- aggregateFunctionClauseSerializer.serialize(aggregateFunctionClause, jgen, provider);
- }
- jgen.writeEndArray();
-
jgen.writeArrayFieldStart(ORDER_BY_CLAUSE);
for (OrderByField orderByField : constraints.getOrderByClause()) {
orderByFieldSerializer.serialize(orderByField, jgen, provider);
@@ -107,18 +95,15 @@ public static final class Deserializer extends BaseDeserializer imp
{
private final ValueSetSerDe.Deserializer valueSetDeserializer;
private final VersionedSerDe.Deserializer federationExpressionDeserializer;
- private final VersionedSerDe.Deserializer aggregateFunctionClauseDeserializer;
private final VersionedSerDe.Deserializer orderByFieldDeserializer;
public Deserializer(ValueSetSerDe.Deserializer valueSetDeserializer,
VersionedSerDe.Deserializer federationExpressionDeserializer,
- VersionedSerDe.Deserializer aggregateFunctionClauseDeserializer,
VersionedSerDe.Deserializer orderByFieldDeserializer)
{
super(Constraints.class);
this.valueSetDeserializer = requireNonNull(valueSetDeserializer, "valueSetSerDe is null");
this.federationExpressionDeserializer = requireNonNull(federationExpressionDeserializer, "federationExpressionSerDe is null");
- this.aggregateFunctionClauseDeserializer = requireNonNull(aggregateFunctionClauseDeserializer, "aggregateFunctionClauseSerDe is null");
this.orderByFieldDeserializer = requireNonNull(orderByFieldDeserializer, "orderByFieldSerDe is null");
}
@@ -143,15 +128,6 @@ public Constraints doDeserialize(JsonParser jparser, DeserializationContext ctxt
validateObjectEnd(jparser);
}
- assertFieldName(jparser, AGGREGATE_FUNCTION_CLAUSE);
- validateArrayStart(jparser);
- ImmutableList.Builder aggregateFunctionClauseBuilder = ImmutableList.builder();
- while (jparser.nextToken() != JsonToken.END_ARRAY) {
- validateObjectStart(jparser.getCurrentToken());
- aggregateFunctionClauseBuilder.add(aggregateFunctionClauseDeserializer.doDeserialize(jparser, ctxt));
- validateObjectEnd(jparser);
- }
-
assertFieldName(jparser, ORDER_BY_CLAUSE);
validateArrayStart(jparser);
ImmutableList.Builder orderByClauseBuilder = ImmutableList.builder();
@@ -164,7 +140,7 @@ public Constraints doDeserialize(JsonParser jparser, DeserializationContext ctxt
long limit = getNextLongField(jparser, LIMIT_FIELD);
- return new Constraints(summaryMap.build(), federationExpression.build(), aggregateFunctionClauseBuilder.build(), orderByClauseBuilder.build(), limit);
+ return new Constraints(summaryMap.build(), federationExpression.build(), orderByClauseBuilder.build(), limit);
}
}
}
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ObjectMapperFactoryV4.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ObjectMapperFactoryV4.java
index efcf7dd238..bbb38c56ce 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ObjectMapperFactoryV4.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/ObjectMapperFactoryV4.java
@@ -23,7 +23,6 @@
import com.amazonaws.athena.connector.lambda.data.BlockAllocator;
import com.amazonaws.athena.connector.lambda.domain.predicate.Constraints;
import com.amazonaws.athena.connector.lambda.domain.predicate.OrderByField;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
import com.amazonaws.athena.connector.lambda.domain.predicate.functions.FunctionName;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.OptimizationSubType;
@@ -219,9 +218,8 @@ private static FederationRequestSerDeV4.Serializer createRequestSerializer()
VariableExpressionSerDeV4.Serializer variableExpression = new VariableExpressionSerDeV4.Serializer(arrowType);
VersionedSerDe.Serializer federationExpression = new FederationExpressionSerDeV4.Serializer(constantExpression, functionCallExpression, variableExpression);
functionCallExpression.setFederationExpressionSerializer(federationExpression);
- VersionedSerDe.Serializer aggregateFunctionClause = new AggregateFunctionClauseSerDeV4.Serializer(federationExpression);
VersionedSerDe.Serializer orderByField = new OrderByFieldSerDeV4.Serializer();
- VersionedSerDe.Serializer constraints = new ConstraintsSerDeV4.Serializer(valueSet, federationExpression, aggregateFunctionClause, orderByField);
+ VersionedSerDe.Serializer constraints = new ConstraintsSerDeV4.Serializer(valueSet, federationExpression, orderByField);
S3SpillLocationSerDe.Serializer s3SpillLocation = new S3SpillLocationSerDe.Serializer();
SpillLocationSerDe.Serializer spillLocation = new SpillLocationSerDe.Serializer(s3SpillLocation);
EncryptionKeySerDe.Serializer encryptionKey = new EncryptionKeySerDe.Serializer();
@@ -267,9 +265,8 @@ private static FederationRequestSerDeV4.Deserializer createRequestDeserializer(B
VariableExpressionSerDeV4.Deserializer variableExpression = new VariableExpressionSerDeV4.Deserializer(arrowType);
VersionedSerDe.Deserializer federationExpression = new FederationExpressionSerDeV4.Deserializer(constantExpression, functionCallExpression, variableExpression);
functionCallExpression.setFederationExpressionSerializer(federationExpression);
- VersionedSerDe.Deserializer aggregateFunctionClause = new AggregateFunctionClauseSerDeV4.Deserializer(federationExpression);
VersionedSerDe.Deserializer orderByField = new OrderByFieldSerDeV4.Deserializer();
- VersionedSerDe.Deserializer constraints = new ConstraintsSerDeV4.Deserializer(valueSet, federationExpression, aggregateFunctionClause, orderByField);
+ VersionedSerDe.Deserializer constraints = new ConstraintsSerDeV4.Deserializer(valueSet, federationExpression, orderByField);
S3SpillLocationSerDe.Deserializer s3SpillLocation = new S3SpillLocationSerDe.Deserializer();
SpillLocationSerDe.Deserializer spillLocation = new SpillLocationSerDe.Deserializer(s3SpillLocation);
diff --git a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/OrderByFieldSerDeV4.java b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/OrderByFieldSerDeV4.java
index 79f9262a1b..8d0237e7f1 100644
--- a/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/OrderByFieldSerDeV4.java
+++ b/athena-federation-sdk/src/main/java/com/amazonaws/athena/connector/lambda/serde/v4/OrderByFieldSerDeV4.java
@@ -66,7 +66,24 @@ public OrderByField doDeserialize(JsonParser jparser, DeserializationContext ctx
{
String columnName = getNextStringField(jparser, COLUMN_NAME_FIELD);
String direction = getNextStringField(jparser, DIRECTION_FIELD);
- return new OrderByField(columnName, direction);
+ OrderByField.Direction directionEnum;
+ switch (direction) {
+ case "ASC_NULLS_FIRST":
+ directionEnum = OrderByField.Direction.ASC_NULLS_FIRST;
+ break;
+ case "ASC_NULLS_LAST":
+ directionEnum = OrderByField.Direction.ASC_NULLS_LAST;
+ break;
+ case "DESC_NULLS_FIRST":
+ directionEnum = OrderByField.Direction.DESC_NULLS_FIRST;
+ break;
+ case "DESC_NULLS_LAST":
+ directionEnum = OrderByField.Direction.DESC_NULLS_LAST;
+ break;
+ default:
+ throw new IllegalStateException("Unexpected value: " + direction);
+ }
+ return new OrderByField(columnName, directionEnum);
}
}
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/data/BlockTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/data/BlockTest.java
index 46b7cfb49a..889a473911 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/data/BlockTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/data/BlockTest.java
@@ -24,7 +24,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Constraints;
import com.amazonaws.athena.connector.lambda.domain.predicate.EquatableValueSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import org.apache.arrow.vector.BigIntVector;
@@ -117,7 +116,7 @@ public void constrainedBlockTest()
ValueSet col1Constraint = EquatableValueSet.newBuilder(allocator, Types.MinorType.INT.getType(), true, false)
.add(10).build();
- Constraints constraints = new Constraints(Collections.singletonMap("col1", col1Constraint), Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1);
+ Constraints constraints = new Constraints(Collections.singletonMap("col1", col1Constraint), Collections.emptyList(), Collections.emptyList(), -1);
try (ConstraintEvaluator constraintEvaluator = new ConstraintEvaluator(allocator, schema, constraints)) {
block.constrain(constraintEvaluator);
assertTrue(block.setValue("col1", 0, 10));
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/handlers/CompositeHandlerTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/handlers/CompositeHandlerTest.java
index 5bcda84e5d..6b83f03439 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/handlers/CompositeHandlerTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/handlers/CompositeHandlerTest.java
@@ -27,7 +27,6 @@
import com.amazonaws.athena.connector.lambda.domain.Split;
import com.amazonaws.athena.connector.lambda.domain.TableName;
import com.amazonaws.athena.connector.lambda.domain.predicate.Constraints;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.domain.spill.S3SpillLocation;
import com.amazonaws.athena.connector.lambda.domain.spill.SpillLocationVerifier;
import com.amazonaws.athena.connector.lambda.metadata.GetSplitsRequest;
@@ -155,7 +154,7 @@ public void doReadRecords()
.withSplitId(UUID.randomUUID().toString())
.withIsDirectory(true)
.build(), null).build(),
- new Constraints(new HashMap<>(), Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/ConstraintSerializationTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/ConstraintSerializationTest.java
index ede87920ec..41940110bc 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/ConstraintSerializationTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/ConstraintSerializationTest.java
@@ -27,7 +27,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.metadata.GetTableLayoutRequest;
import com.amazonaws.athena.connector.lambda.security.IdentityUtil;
import com.google.common.collect.ImmutableList;
@@ -86,7 +85,7 @@ public void serializationTest()
"queryId",
"default",
new TableName("schema1", "table1"),
- new Constraints(constraintsMap, Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
SchemaBuilder.newBuilder().build(),
new HashSet<>())
) {
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetSplitsRequestSerDeTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetSplitsRequestSerDeTest.java
index 9a255357c1..2078f9f0af 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetSplitsRequestSerDeTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetSplitsRequestSerDeTest.java
@@ -29,7 +29,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.metadata.GetSplitsRequest;
import com.amazonaws.athena.connector.lambda.request.FederationRequest;
import com.amazonaws.athena.connector.lambda.serde.TypedSerDeTest;
@@ -80,7 +79,7 @@ public void beforeTest()
ImmutableList.of(Range.greaterThan(allocator, Types.MinorType.FLOAT8.getType(), -10000D)), false));
constraintsMap.put("col4", EquatableValueSet.newBuilder(allocator, Types.MinorType.FLOAT8.getType(), false, true).add(1.1D).build());
constraintsMap.put("col5", new AllOrNoneValueSet(Types.MinorType.FLOAT8.getType(), false, true));
- Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1);
+ Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1);
Block partitions = allocator.createBlock(schema);
int num_partitions = 10;
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetTableLayoutRequestSerDeTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetTableLayoutRequestSerDeTest.java
index fc8e159da0..4b1fb7ce1b 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetTableLayoutRequestSerDeTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/GetTableLayoutRequestSerDeTest.java
@@ -27,7 +27,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.metadata.GetTableLayoutRequest;
import com.amazonaws.athena.connector.lambda.request.FederationRequest;
import com.amazonaws.athena.connector.lambda.serde.TypedSerDeTest;
@@ -75,7 +74,7 @@ public void beforeTest()
ImmutableList.of(Range.greaterThan(allocator, Types.MinorType.FLOAT8.getType(), -10000D)), false));
constraintsMap.put("col4", EquatableValueSet.newBuilder(allocator, Types.MinorType.FLOAT8.getType(), false, true).add(1.1D).build());
constraintsMap.put("col5", new AllOrNoneValueSet(Types.MinorType.FLOAT8.getType(), false, true));
- Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), AggregateFunctionClause.emptyAggregateFunctionClause(), Collections.emptyList(), -1);
+ Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1);
expected = new GetTableLayoutRequest(federatedIdentity,
"test-query-id",
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/ReadRecordsRequestSerDeTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/ReadRecordsRequestSerDeTest.java
index 25662d836c..efd8c9194e 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/ReadRecordsRequestSerDeTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v2/ReadRecordsRequestSerDeTest.java
@@ -30,7 +30,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
import com.amazonaws.athena.connector.lambda.domain.spill.S3SpillLocation;
import com.amazonaws.athena.connector.lambda.domain.spill.SpillLocation;
import com.amazonaws.athena.connector.lambda.records.ReadRecordsRequest;
@@ -85,7 +84,7 @@ public void beforeTest()
ImmutableList.of(Range.greaterThan(allocator, Types.MinorType.FLOAT8.getType(), -10000D)), false));
constraintsMap.put("col4", EquatableValueSet.newBuilder(allocator, Types.MinorType.FLOAT8.getType(), false, true).add(1.1D).build());
constraintsMap.put("col5", new AllOrNoneValueSet(Types.MinorType.FLOAT8.getType(), false, true));
- Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1);
+ Constraints constraints = new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1);
Block partitions = allocator.createBlock(schema);
int num_partitions = 10;
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/GetDataSourceCapabilitiesResponseSerDeTest.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/GetDataSourceCapabilitiesResponseSerDeTest.java
index 188b5fd90c..5e88841f06 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/GetDataSourceCapabilitiesResponseSerDeTest.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/GetDataSourceCapabilitiesResponseSerDeTest.java
@@ -23,7 +23,6 @@
import com.amazonaws.athena.connector.lambda.metadata.GetDataSourceCapabilitiesResponse;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.DataSourceOptimizations;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.OptimizationSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.AggregationPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.ComplexExpressionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.FilterPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.LimitPushdownSubType;
@@ -54,11 +53,7 @@ public void beforeTest()
throws IOException
{
Map> capabilities = new HashMap<>();
- capabilities.putAll(DataSourceOptimizations.SUPPORTS_AGGREGATE_FUNCTIONS.withSupportedSubTypes(AggregationPushdownSubType.SUPPORTS_AVG_PUSHDOWN, AggregationPushdownSubType.SUPPORTS_MAX_PUSHDOWN));
- capabilities.putAll(DataSourceOptimizations.SUPPORTS_FILTER_PUSHDOWN.withSupportedSubTypes(FilterPushdownSubType.NONE));
- capabilities.putAll(DataSourceOptimizations.SUPPORTS_LIMIT_PUSHDOWN.withSupportedSubTypes(LimitPushdownSubType.NONE));
capabilities.putAll(DataSourceOptimizations.SUPPORTS_COMPLEX_EXPRESSION_PUSHDOWN.withSupportedSubTypes(
- ComplexExpressionPushdownSubType.SUPPORTS_FUNCTION_CALL_EXPRESSION_PUSHDOWN,
ComplexExpressionPushdownSubType.SUPPORTED_FUNCTION_EXPRESSION_TYPES
.withSubTypeProperties(
StandardFunctions.ADD_FUNCTION_NAME.getFunctionName().getFunctionName(),
diff --git a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/ReadRecordsRequestSerDeV4Test.java b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/ReadRecordsRequestSerDeV4Test.java
index 2bf6504007..5edda0a4cc 100644
--- a/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/ReadRecordsRequestSerDeV4Test.java
+++ b/athena-federation-sdk/src/test/java/com/amazonaws/athena/connector/lambda/serde/v4/ReadRecordsRequestSerDeV4Test.java
@@ -31,8 +31,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregationFunctions;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.ConstantExpression;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FunctionCallExpression;
@@ -107,16 +105,12 @@ public void beforeTest()
new ArrowType.Int(32, true)))),
new VariableExpression("col2", Types.MinorType.FLOAT8.getType())));
- FunctionCallExpression functionCallExpression = new FunctionCallExpression(Types.MinorType.FLOAT8.getType(),
- AggregationFunctions.SUM.getFunctionName(),
- List.of(new VariableExpression("col1", Types.MinorType.FLOAT8.getType())));
- AggregateFunctionClause aggregateFunctionClause = new AggregateFunctionClause(List.of(functionCallExpression), List.of("col1"), List.of(List.of("col2")));
List orderByClause = List.of(
- new OrderByField("col3", "ASC"),
- new OrderByField("col2", "DESC")
+ new OrderByField("col3", OrderByField.Direction.ASC_NULLS_FIRST),
+ new OrderByField("col2", OrderByField.Direction.DESC_NULLS_FIRST)
);
- Constraints constraints = new Constraints(constraintsMap, List.of(federationExpression), List.of(aggregateFunctionClause), orderByClause, -1);
+ Constraints constraints = new Constraints(constraintsMap, List.of(federationExpression), orderByClause, -1);
int num_partitions = 10;
for (int i = 0; i < num_partitions; i++) {
diff --git a/athena-federation-sdk/src/test/resources/serde/v4/GetDataSourceCapabilitiesResponse.json b/athena-federation-sdk/src/test/resources/serde/v4/GetDataSourceCapabilitiesResponse.json
index 3efc968abd..af8585d71d 100644
--- a/athena-federation-sdk/src/test/resources/serde/v4/GetDataSourceCapabilitiesResponse.json
+++ b/athena-federation-sdk/src/test/resources/serde/v4/GetDataSourceCapabilitiesResponse.json
@@ -2,27 +2,9 @@
"@type" : "GetDataSourceCapabilitiesResponse",
"catalogName" : "test-catalog",
"capabilities" : {
- "supports_filter_pushdown" : [ {
- "subType" : "none",
- "properties" : [ ]
- } ],
- "supports_aggregate_functions" : [ {
- "subType" : "supports_avg_pushdown",
- "properties" : [ ]
- }, {
- "subType" : "supports_max_pushdown",
- "properties" : [ ]
- } ],
- "supports_limit_pushdown" : [ {
- "subType" : "none",
- "properties" : [ ]
- } ],
"supports_complex_expression_pushdown" : [ {
- "subType" : "supports_function_call_expression_pushdown",
- "properties" : [ ]
- }, {
"subType" : "supported_function_expression_types",
"properties" : [ "$add", "$subtract" ]
} ]
}
-}
\ No newline at end of file
+}
diff --git a/athena-federation-sdk/src/test/resources/serde/v4/ReadRecordsRequest.json b/athena-federation-sdk/src/test/resources/serde/v4/ReadRecordsRequest.json
index b61ea212dd..c010929a6c 100644
--- a/athena-federation-sdk/src/test/resources/serde/v4/ReadRecordsRequest.json
+++ b/athena-federation-sdk/src/test/resources/serde/v4/ReadRecordsRequest.json
@@ -128,37 +128,15 @@
}
} ]
} ],
- "aggregateFunctionClause" : [ {
- "aggregateFunctions" : [ {
- "@type" : "FunctionCallExpression",
- "type" : {
- "@type" : "FloatingPoint",
- "precision" : "DOUBLE"
- },
- "functionName" : {
- "functionName" : "$sum"
- },
- "arguments" : [ {
- "@type" : "VariableExpression",
- "columnName" : "col1",
- "type" : {
- "@type" : "FloatingPoint",
- "precision" : "DOUBLE"
- }
- } ]
- } ],
- "columnNames" : [ "col1" ],
- "groupingSets" : [ [ "col2" ] ]
- } ],
"orderByClause" : [ {
"columnName" : "col3",
- "direction" : "ASC"
+ "direction" : "ASC_NULLS_FIRST"
}, {
"columnName" : "col2",
- "direction" : "DESC"
+ "direction" : "DESC_NULLS_FIRST"
} ],
"limit" : -1
},
"maxBlockSize" : "100000000000",
"maxInlineBlockSize" : "100000000000"
-}
\ No newline at end of file
+}
diff --git a/athena-gcs/pom.xml b/athena-gcs/pom.xml
index 4c904a3dfd..2d14f7a9a3 100644
--- a/athena-gcs/pom.xml
+++ b/athena-gcs/pom.xml
@@ -152,8 +152,8 @@
${project.artifactId}
-
-
+
+
org.apache.maven.plugins
diff --git a/athena-google-bigquery/athena-google-bigquery.yaml b/athena-google-bigquery/athena-google-bigquery.yaml
index 2e1ceea427..f56ebfa3f4 100644
--- a/athena-google-bigquery/athena-google-bigquery.yaml
+++ b/athena-google-bigquery/athena-google-bigquery.yaml
@@ -13,7 +13,7 @@ Metadata:
- Athena-Federation
- Google-SDK
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -84,7 +84,7 @@ Resources:
concurrencyLimit: !Ref ConcurrencyLimit
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.google.bigquery.BigQueryCompositeHandler"
- CodeUri: "./target/athena-google-bigquery-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-google-bigquery-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with BigQuery using Google SDK"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-google-bigquery/pom.xml b/athena-google-bigquery/pom.xml
index cb203b059e..3dd4a53b15 100644
--- a/athena-google-bigquery/pom.xml
+++ b/athena-google-bigquery/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-google-bigquery
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQueryMetadataHandlerTest.java b/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQueryMetadataHandlerTest.java
index b3f011fe67..cd3dc39f59 100644
--- a/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQueryMetadataHandlerTest.java
+++ b/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQueryMetadataHandlerTest.java
@@ -198,7 +198,7 @@ public void testDoGetSplits() throws Exception
BlockAllocator blockAllocator = new BlockAllocatorImpl();
GetSplitsRequest request = new GetSplitsRequest(federatedIdentity,
QUERY_ID, CATALOG, TABLE_NAME,
- mock(Block.class), Collections.emptyList(), new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1), null);
+ mock(Block.class), Collections.emptyList(), new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1), null);
// added schema with integer column countCol
List testSchemaFields = Arrays.asList(Field.of("countCol", LegacySQLTypeName.INTEGER));
com.google.cloud.bigquery.Schema tableSchema = Schema.of(testSchemaFields);
diff --git a/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQuerySqlUtilsTest.java b/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQuerySqlUtilsTest.java
index ed8cd19baf..0b7295f2ff 100644
--- a/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQuerySqlUtilsTest.java
+++ b/athena-google-bigquery/src/test/java/com/amazonaws/athena/connectors/google/bigquery/BigQuerySqlUtilsTest.java
@@ -91,7 +91,7 @@ public void testSqlWithConstraintsRanges()
QueryParameterValue.bool(true),
QueryParameterValue.int64(10), QueryParameterValue.int64(1000000));
- try (Constraints constraints = new Constraints(constraintMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1)) {
+ try (Constraints constraints = new Constraints(constraintMap, Collections.emptyList(), Collections.emptyList(), -1)) {
List parameterValues = new ArrayList<>();
String sql = BigQuerySqlUtils.buildSqlFromSplit(tableName, makeSchema(constraintMap), constraints, split, parameterValues);
assertEquals(expectedParameterValues, parameterValues);
diff --git a/athena-hbase/athena-hbase.yaml b/athena-hbase/athena-hbase.yaml
index 76845359af..bda862437a 100644
--- a/athena-hbase/athena-hbase.yaml
+++ b/athena-hbase/athena-hbase.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -66,7 +66,7 @@ Resources:
default_hbase: !Ref HBaseConnectionString
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.hbase.HbaseCompositeHandler"
- CodeUri: "./target/athena-hbase-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-hbase-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with HBase, making your HBase data accessible via SQL"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-hbase/pom.xml b/athena-hbase/pom.xml
index 866723a97f..d57af0a0f6 100644
--- a/athena-hbase/pom.xml
+++ b/athena-hbase/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-hbase
- 2023.2.1-athena-test
+ 2022.47.1
11.0.14
2.5.3-hadoop3
@@ -21,7 +21,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -34,7 +34,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
withdep
test
diff --git a/athena-hbase/src/test/java/com/amazonaws/athena/connectors/hbase/HbaseRecordHandlerTest.java b/athena-hbase/src/test/java/com/amazonaws/athena/connectors/hbase/HbaseRecordHandlerTest.java
index feaadbd953..897603870d 100644
--- a/athena-hbase/src/test/java/com/amazonaws/athena/connectors/hbase/HbaseRecordHandlerTest.java
+++ b/athena-hbase/src/test/java/com/amazonaws/athena/connectors/hbase/HbaseRecordHandlerTest.java
@@ -217,7 +217,7 @@ public void doReadRecordsNoSpill()
new TableName(DEFAULT_SCHEMA, TEST_TABLE),
schemaForRead,
splitBuilder.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -270,7 +270,7 @@ public void doReadRecordsSpill()
new TableName(DEFAULT_SCHEMA, TEST_TABLE),
schemaForRead,
splitBuilder.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
1_500_000L, //~1.5MB so we should see some spill
0L
);
diff --git a/athena-hortonworks-hive/athena-hortonworks-hive.yaml b/athena-hortonworks-hive/athena-hortonworks-hive.yaml
index 64c43ff8a4..ca92680651 100644
--- a/athena-hortonworks-hive/athena-hortonworks-hive.yaml
+++ b/athena-hortonworks-hive/athena-hortonworks-hive.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -66,7 +66,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.hortonworks.HiveMuxCompositeHandler"
- CodeUri: "./target/athena-hortonworks-hive-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-hortonworks-hive-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Hortonworks Hive using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-hortonworks-hive/pom.xml b/athena-hortonworks-hive/pom.xml
index b86fe7440f..7d6b802c45 100644
--- a/athena-hortonworks-hive/pom.xml
+++ b/athena-hortonworks-hive/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-hortonworks-hive
- 2023.2.1-athena-test
+ 2022.47.1
2.6.15.1018
@@ -15,13 +15,13 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
Hive
@@ -31,7 +31,7 @@
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-jdbc/pom.xml b/athena-jdbc/pom.xml
index 6107c403ca..5f27837db6 100644
--- a/athena-jdbc/pom.xml
+++ b/athena-jdbc/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
@@ -93,7 +93,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -106,7 +106,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
diff --git a/athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcSplitQueryBuilder.java b/athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcSplitQueryBuilder.java
index 26fd227ea8..9fee2475ef 100644
--- a/athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcSplitQueryBuilder.java
+++ b/athena-jdbc/src/main/java/com/amazonaws/athena/connectors/jdbc/manager/JdbcSplitQueryBuilder.java
@@ -26,10 +26,6 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.Range;
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregationFunctions;
-import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FederationExpression;
-import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FunctionCallExpression;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
@@ -57,7 +53,6 @@
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* Query builder for database table split.
@@ -116,15 +111,11 @@ public PreparedStatement buildSql(
{
StringBuilder sql = new StringBuilder();
- String columnNames = Stream.concat(
- tableSchema.getFields()
- .stream()
- .map(Field::getName)
- .filter(c -> !split.getProperties().containsKey(c))
- .map(this::quote),
- extractAggregateSelectClauses(constraints)
- .stream()
- ).collect(Collectors.joining(", "));
+ String columnNames = tableSchema.getFields().stream()
+ .map(Field::getName)
+ .filter(c -> !split.getProperties().containsKey(c))
+ .map(this::quote)
+ .collect(Collectors.joining(", "));
sql.append("SELECT ");
sql.append(columnNames);
@@ -143,11 +134,6 @@ public PreparedStatement buildSql(
.append(Joiner.on(" AND ").join(clauses));
}
- String aggregateGroupByClause = extractAggregateGroupByClause(constraints);
- if (!Strings.isNullOrEmpty(aggregateGroupByClause)) {
- sql.append(" ").append(aggregateGroupByClause);
- }
-
String orderByClause = extractOrderByClause(constraints);
if (!Strings.isNullOrEmpty(orderByClause)) {
@@ -162,7 +148,6 @@ public PreparedStatement buildSql(
}
LOGGER.info("Generated SQL : {}", sql.toString());
PreparedStatement statement = jdbcConnection.prepareStatement(sql.toString());
-
// TODO all types, converts Arrow values to JDBC.
for (int i = 0; i < accumulator.size(); i++) {
TypeAndValue typeAndValue = accumulator.get(i);
@@ -216,62 +201,6 @@ public PreparedStatement buildSql(
return statement;
}
- private List extractAggregateSelectClauses(Constraints constraints)
- {
- List clauses = new ArrayList<>();
- List aggregateFunctionClauses = constraints.getAggregateFunctionClause();
- for (AggregateFunctionClause aggregateFunctionClause : aggregateFunctionClauses) {
- List aggregateFunctions = aggregateFunctionClause.getAggregateFunctions();
- FunctionCallExpression aggregateFunction = (FunctionCallExpression) aggregateFunctions.get(0); // should have exactly 1 function call
- List aggColumnNames = aggregateFunctionClause.getColumnNames();
- String aggColumnName = aggColumnNames.get(0); // aggregate functions always have exactly 1 argument
-
- AggregationFunctions functionEnum = AggregationFunctions.fromFunctionName(aggregateFunction.getFunctionName());
-
- String formatted;
- switch (functionEnum) {
- case SUM:
- formatted = "SUM(" + quote(aggColumnName) + ")";
- break;
- case MAX:
- formatted = "MAX(" + quote(aggColumnName) + ")";
- break;
- case MIN:
- formatted = "MIN(" + quote(aggColumnName) + ")";
- break;
- case COUNT:
- case AVG:
- default:
- throw new IllegalArgumentException("Aggregate function " + functionEnum.getFunctionName() + " is not yet supported.");
- }
- clauses.add(formatted);
- }
- return clauses;
- }
-
- /**
- * The order of the group by clauses matters.
- * @param constraints
- * @return
- */
- private String extractAggregateGroupByClause(Constraints constraints)
- {
- List aggregateFunctionClauses = constraints.getAggregateFunctionClause();
- if (aggregateFunctionClauses == null || aggregateFunctionClauses.size() == 0) {
- return "";
- }
- AggregateFunctionClause aggregateFunctionClause = aggregateFunctionClauses.get(0);
-
- // all aggregate functions will have the same grouping set. So just read the first clause's first grouping set.
- List uniqueColNames = aggregateFunctionClause.getGroupingSets().get(0);
- if (uniqueColNames.size() > 0) {
- return "GROUP BY " + uniqueColNames.stream()
- .map(this::quote)
- .collect(Collectors.joining(", "));
- }
- return "";
- }
-
private String extractOrderByClause(Constraints constraints)
{
List orderByClause = constraints.getOrderByClause();
@@ -279,7 +208,11 @@ private String extractOrderByClause(Constraints constraints)
return "";
}
return "ORDER BY " + orderByClause.stream()
- .map(orderByField -> quote(orderByField.getColumnName()) + " " + orderByField.getDirection())
+ .map(orderByField -> {
+ String ordering = orderByField.getDirection().isAscending() ? "ASC" : "DESC";
+ String nullsHandling = orderByField.getDirection().isNullsFirst() ? "NULLS FIRST" : "NULLS LAST";
+ return quote(orderByField.getColumnName()) + " " + ordering + " " + nullsHandling;
+ })
.collect(Collectors.joining(", "));
}
diff --git a/athena-kafka/pom.xml b/athena-kafka/pom.xml
index cbfb113215..dbfa21bfec 100644
--- a/athena-kafka/pom.xml
+++ b/athena-kafka/pom.xml
@@ -1,30 +1,26 @@
-
-
+
+
aws-athena-query-federation
com.amazonaws
2023.2.1-athena-test
4.0.0
-
athena-kafka
Athena Kafka Connector
2023.2.1-athena-test
-
11
11
-
+
org.slf4j
slf4j-simple
${slf4j-log4j.version}
test
-
+
org.apache.kafka
kafka-clients
@@ -76,7 +72,7 @@
withdep
test
-
+
com.google.guava
@@ -104,7 +100,7 @@
aws-athena-federation-sdk
2023.2.1-athena-test
withdep
-
+
org.powermock
@@ -144,7 +140,7 @@
-
+
org.apache.maven.plugins
maven-shade-plugin
${mvn.shade.plugin.version}
@@ -163,7 +159,7 @@
-
+
diff --git a/athena-msk/athena-msk.yaml b/athena-msk/athena-msk.yaml
index 408c3cd856..cc3e984242 100644
--- a/athena-msk/athena-msk.yaml
+++ b/athena-msk/athena-msk.yaml
@@ -11,7 +11,7 @@ Metadata:
- msk
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AuthType:
@@ -97,8 +97,8 @@ Resources:
auth_type: !Ref AuthType
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.msk.AmazonMskCompositeHandler"
- CodeUri: "./target/athena-msk-2023.1.2-athena-test-SNAPSHOT.jar"
- Description: "Enables Amazon Athena to communicate with MSK and Kafka clusters"
+ CodeUri: "./target/athena-msk-2022.47.1.jar"
+ Description: "Enables Amazon Athena to communicate with MSK clusters"
Runtime: java11
Timeout: !Ref LambdaTimeout
MemorySize: !Ref LambdaMemory
diff --git a/athena-msk/pom.xml b/athena-msk/pom.xml
index cd6f581f83..e590c21747 100644
--- a/athena-msk/pom.xml
+++ b/athena-msk/pom.xml
@@ -3,12 +3,12 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-msk
Athena MSK Connector
- 2023.2.1-athena-test
+ 2022.47.1
11
11
@@ -68,7 +68,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
withdep
test
@@ -109,7 +109,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-mysql/athena-mysql.yaml b/athena-mysql/athena-mysql.yaml
index fdc279a451..e566fe1500 100644
--- a/athena-mysql/athena-mysql.yaml
+++ b/athena-mysql/athena-mysql.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -71,7 +71,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.mysql.MySqlMuxCompositeHandler"
- CodeUri: "./target/athena-mysql-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-mysql-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with MySQL using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-mysql/pom.xml b/athena-mysql/pom.xml
index f584275ef9..ed1f51095f 100644
--- a/athena-mysql/pom.xml
+++ b/athena-mysql/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-mysql
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-mysql/src/main/java/com/amazonaws/athena/connectors/mysql/MySqlMetadataHandler.java b/athena-mysql/src/main/java/com/amazonaws/athena/connectors/mysql/MySqlMetadataHandler.java
index 29a51891d2..88ea1ee2e2 100644
--- a/athena-mysql/src/main/java/com/amazonaws/athena/connectors/mysql/MySqlMetadataHandler.java
+++ b/athena-mysql/src/main/java/com/amazonaws/athena/connectors/mysql/MySqlMetadataHandler.java
@@ -34,7 +34,6 @@
import com.amazonaws.athena.connector.lambda.metadata.GetTableLayoutRequest;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.DataSourceOptimizations;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.OptimizationSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.AggregationPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.ComplexExpressionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.FilterPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.LimitPushdownSubType;
@@ -124,11 +123,6 @@ protected MySqlMetadataHandler(
public GetDataSourceCapabilitiesResponse doGetDataSourceCapabilities(BlockAllocator allocator, GetDataSourceCapabilitiesRequest request)
{
Map> capabilities = new HashMap<>();
- capabilities.putAll(DataSourceOptimizations.SUPPORTS_AGGREGATE_FUNCTIONS.withSupportedSubTypes(
- AggregationPushdownSubType.SUPPORTS_MAX_PUSHDOWN,
- AggregationPushdownSubType.SUPPORTS_MIN_PUSHDOWN,
- AggregationPushdownSubType.SUPPORTS_SUM_PUSHDOWN
- ));
capabilities.putAll(DataSourceOptimizations.SUPPORTS_LIMIT_PUSHDOWN.withSupportedSubTypes(
LimitPushdownSubType.ALL
));
@@ -136,7 +130,6 @@ public GetDataSourceCapabilitiesResponse doGetDataSourceCapabilities(BlockAlloca
FilterPushdownSubType.ALL
));
capabilities.putAll(DataSourceOptimizations.SUPPORTS_COMPLEX_EXPRESSION_PUSHDOWN.withSupportedSubTypes(
- ComplexExpressionPushdownSubType.SUPPORTS_FUNCTION_CALL_EXPRESSION_PUSHDOWN,
ComplexExpressionPushdownSubType.SUPPORTED_FUNCTION_EXPRESSION_TYPES
.withSubTypeProperties(Arrays.stream(StandardFunctions.values())
.map(standardFunctions -> standardFunctions.getFunctionName().getFunctionName())
diff --git a/athena-mysql/src/test/java/com/amazonaws/athena/connectors/mysql/MySqlRecordHandlerTest.java b/athena-mysql/src/test/java/com/amazonaws/athena/connectors/mysql/MySqlRecordHandlerTest.java
index 6307930b5e..d1d45dae0d 100644
--- a/athena-mysql/src/test/java/com/amazonaws/athena/connectors/mysql/MySqlRecordHandlerTest.java
+++ b/athena-mysql/src/test/java/com/amazonaws/athena/connectors/mysql/MySqlRecordHandlerTest.java
@@ -30,9 +30,8 @@
import com.amazonaws.athena.connector.lambda.domain.predicate.SortedRangeSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.ValueSet;
import com.amazonaws.athena.connector.lambda.domain.predicate.OrderByField.Direction;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregateFunctionClause;
-import com.amazonaws.athena.connector.lambda.domain.predicate.aggregation.AggregationFunctions;
import com.amazonaws.athena.connector.lambda.domain.predicate.expression.FunctionCallExpression;
+import com.amazonaws.athena.connector.lambda.domain.predicate.expression.VariableExpression;
import com.amazonaws.athena.connectors.jdbc.connection.DatabaseConnectionConfig;
import com.amazonaws.athena.connectors.jdbc.connection.JdbcConnectionFactory;
import com.amazonaws.athena.connectors.jdbc.connection.JdbcCredentialProvider;
@@ -56,6 +55,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import static com.amazonaws.athena.connectors.mysql.MySqlConstants.MYSQL_NAME;
import static org.mockito.ArgumentMatchers.nullable;
@@ -126,20 +126,6 @@ public void buildSplitSql()
ValueSet valueSet7 = getSingleValueSet(1.2d);
ValueSet valueSet8 = getSingleValueSet(true);
- AggregateFunctionClause aggregateFunctionClause = new AggregateFunctionClause(
- List.of(
- new FunctionCallExpression(
- Types.MinorType.VARCHAR.getType(),
- AggregationFunctions.SUM.getFunctionName(),
- new ArrayList<>()
- )
- ),
- List.of("testCol3"),
- List.of(
- List.of("testCol1", "testCol2")
- )
- );
-
Constraints constraints = new Constraints(
new ImmutableMap.Builder()
.put("testCol1", valueSet1)
@@ -152,15 +138,14 @@ public void buildSplitSql()
.put("testCol8", valueSet8)
.build(),
List.of(),
- List.of(aggregateFunctionClause),
List.of(
- new OrderByField("testCol1", Direction.DESC.name()),
- new OrderByField("testCol3", Direction.ASC.name())
+ new OrderByField("testCol1", Direction.ASC_NULLS_FIRST),
+ new OrderByField("testCol3", Direction.ASC_NULLS_FIRST)
),
100L
);
- String expectedSql = "SELECT `testCol1`, `testCol2`, `testCol3`, `testCol4`, `testCol5`, `testCol6`, `testCol7`, `testCol8`, SUM(`testCol3`) FROM `testSchema`.`testTable` PARTITION(p0) WHERE (`testCol1` IN (?,?)) AND ((`testCol2` >= ? AND `testCol2` < ?)) AND ((`testCol3` > ? AND `testCol3` <= ?)) AND (`testCol4` = ?) AND (`testCol5` = ?) AND (`testCol6` = ?) AND (`testCol7` = ?) AND (`testCol8` = ?) GROUP BY `testCol1`, `testCol2` ORDER BY `testCol1` DESC, `testCol3` ASC LIMIT 100";
+ String expectedSql = "SELECT `testCol1`, `testCol2`, `testCol3`, `testCol4`, `testCol5`, `testCol6`, `testCol7`, `testCol8` FROM `testSchema`.`testTable` PARTITION(p0) WHERE (`testCol1` IN (?,?)) AND ((`testCol2` >= ? AND `testCol2` < ?)) AND ((`testCol3` > ? AND `testCol3` <= ?)) AND (`testCol4` = ?) AND (`testCol5` = ?) AND (`testCol6` = ?) AND (`testCol7` = ?) AND (`testCol8` = ?) ORDER BY `testCol1` ASC NULLS FIRST, `testCol3` ASC NULLS FIRST LIMIT 100";
PreparedStatement expectedPreparedStatement = Mockito.mock(PreparedStatement.class);
Mockito.when(this.connection.prepareStatement(Mockito.eq(expectedSql))).thenReturn(expectedPreparedStatement);
diff --git a/athena-neptune/athena-neptune.yaml b/athena-neptune/athena-neptune.yaml
index c0c5d08c76..194ac146c1 100644
--- a/athena-neptune/athena-neptune.yaml
+++ b/athena-neptune/athena-neptune.yaml
@@ -10,7 +10,7 @@ Metadata:
ReadmeUrl: README.md
Labels: ['athena-federation','athena-neptune','neptune']
HomePageUrl: https://github.com/awslabs/aws-athena-query-federation
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: https://github.com/awslabs/aws-athena-query-federation
Parameters:
@@ -96,7 +96,7 @@ Resources:
enable_caseinsensitivematch: !Ref EnableCaseInsensitiveMatch
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.neptune.NeptuneCompositeHandler"
- CodeUri: "./target/athena-neptune-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-neptune-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Neptune, making your Neptune graph data accessible via SQL."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-neptune/pom.xml b/athena-neptune/pom.xml
index 26e9a5fc2e..60744471ba 100644
--- a/athena-neptune/pom.xml
+++ b/athena-neptune/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-neptune
- 2023.2.1-athena-test
+ 2022.47.1
3.6.2
2.4.0
@@ -16,7 +16,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-neptune/src/test/java/com/amazonaws/athena/connectors/neptune/NeptuneRecordHandlerTest.java b/athena-neptune/src/test/java/com/amazonaws/athena/connectors/neptune/NeptuneRecordHandlerTest.java
index 5ec4355a21..daa2bd50f6 100644
--- a/athena-neptune/src/test/java/com/amazonaws/athena/connectors/neptune/NeptuneRecordHandlerTest.java
+++ b/athena-neptune/src/test/java/com/amazonaws/athena/connectors/neptune/NeptuneRecordHandlerTest.java
@@ -388,7 +388,7 @@ private void invokeAndAssert(Schema schemaPG, HashMap constrai
buildGraphTraversal();
ReadRecordsRequest request = new ReadRecordsRequest(IDENTITY, DEFAULT_CATALOG, QUERY_ID, TABLE_NAME,
- schemaPG, Split.newBuilder(spillLoc, null).build(), new Constraints(constraintMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ schemaPG, Split.newBuilder(spillLoc, null).build(), new Constraints(constraintMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, 100_000_000_000L);
RecordResponse rawResponse = handler.doReadRecords(allocator, request);
@@ -424,7 +424,7 @@ public void doReadRecordsSpill() throws Exception {
ReadRecordsRequest request = new ReadRecordsRequest(IDENTITY, DEFAULT_CATALOG, QUERY_ID, TABLE_NAME,
schemaPGVertexForRead, Split.newBuilder(splitLoc, keyFactory.create()).build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1), 1_500_000L, // ~1.5MB so we should see some spill
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1), 1_500_000L, // ~1.5MB so we should see some spill
0L);
RecordResponse rawResponse = handler.doReadRecords(allocator, request);
diff --git a/athena-oracle/athena-oracle.yaml b/athena-oracle/athena-oracle.yaml
index 234afe451a..5e2cfa8793 100644
--- a/athena-oracle/athena-oracle.yaml
+++ b/athena-oracle/athena-oracle.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -66,7 +66,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.oracle.OracleMuxCompositeHandler"
- CodeUri: "./target/athena-oracle-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-oracle-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with ORACLE using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-oracle/pom.xml b/athena-oracle/pom.xml
index 34bbe2b233..18f91aad0a 100644
--- a/athena-oracle/pom.xml
+++ b/athena-oracle/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-oracle
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-postgresql/athena-postgresql.yaml b/athena-postgresql/athena-postgresql.yaml
index fbdd1d4fea..97d207f4b8 100644
--- a/athena-postgresql/athena-postgresql.yaml
+++ b/athena-postgresql/athena-postgresql.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -82,7 +82,7 @@ Resources:
default_scale: !Ref DefaultScale
FunctionName: !Ref LambdaFunctionName
Handler: !Sub "com.amazonaws.athena.connectors.postgresql.${CompositeHandler}"
- CodeUri: "./target/athena-postgresql-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-postgresql-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with PostgreSQL using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-postgresql/pom.xml b/athena-postgresql/pom.xml
index a39b9ced96..c2f0f7fadd 100644
--- a/athena-postgresql/pom.xml
+++ b/athena-postgresql/pom.xml
@@ -3,28 +3,28 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-postgresql
- 2023.2.1-athena-test
+ 2022.47.1
jar
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-postgresql/src/main/java/com/amazonaws/athena/connectors/postgresql/PostGreSqlMetadataHandler.java b/athena-postgresql/src/main/java/com/amazonaws/athena/connectors/postgresql/PostGreSqlMetadataHandler.java
index e0aa6bf4b1..3cc6f0ca05 100644
--- a/athena-postgresql/src/main/java/com/amazonaws/athena/connectors/postgresql/PostGreSqlMetadataHandler.java
+++ b/athena-postgresql/src/main/java/com/amazonaws/athena/connectors/postgresql/PostGreSqlMetadataHandler.java
@@ -34,7 +34,6 @@
import com.amazonaws.athena.connector.lambda.metadata.GetTableLayoutRequest;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.DataSourceOptimizations;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.OptimizationSubType;
-import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.AggregationPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.ComplexExpressionPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.FilterPushdownSubType;
import com.amazonaws.athena.connector.lambda.metadata.optimizations.pushdown.LimitPushdownSubType;
@@ -127,11 +126,6 @@ protected PostGreSqlMetadataHandler(DatabaseConnectionConfig databaseConnectionC
public GetDataSourceCapabilitiesResponse doGetDataSourceCapabilities(BlockAllocator allocator, GetDataSourceCapabilitiesRequest request)
{
Map> capabilities = new HashMap<>();
- capabilities.putAll(DataSourceOptimizations.SUPPORTS_AGGREGATE_FUNCTIONS.withSupportedSubTypes(
- AggregationPushdownSubType.SUPPORTS_MAX_PUSHDOWN,
- AggregationPushdownSubType.SUPPORTS_MIN_PUSHDOWN,
- AggregationPushdownSubType.SUPPORTS_SUM_PUSHDOWN
- ));
capabilities.putAll(DataSourceOptimizations.SUPPORTS_LIMIT_PUSHDOWN.withSupportedSubTypes(
LimitPushdownSubType.ALL
));
@@ -139,7 +133,6 @@ public GetDataSourceCapabilitiesResponse doGetDataSourceCapabilities(BlockAlloca
FilterPushdownSubType.ALL
));
capabilities.putAll(DataSourceOptimizations.SUPPORTS_COMPLEX_EXPRESSION_PUSHDOWN.withSupportedSubTypes(
- ComplexExpressionPushdownSubType.SUPPORTS_FUNCTION_CALL_EXPRESSION_PUSHDOWN,
ComplexExpressionPushdownSubType.SUPPORTED_FUNCTION_EXPRESSION_TYPES
.withSubTypeProperties(Arrays.stream(StandardFunctions.values())
.map(standardFunctions -> standardFunctions.getFunctionName().getFunctionName())
diff --git a/athena-redis/athena-redis.yaml b/athena-redis/athena-redis.yaml
index 8e37c7c73f..7d66e4e426 100644
--- a/athena-redis/athena-redis.yaml
+++ b/athena-redis/athena-redis.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -62,7 +62,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.redis.RedisCompositeHandler"
- CodeUri: "./target/athena-redis-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-redis-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Redis, making your Redis data accessible via SQL"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-redis/pom.xml b/athena-redis/pom.xml
index 60c8b01596..52e2e9e93e 100644
--- a/athena-redis/pom.xml
+++ b/athena-redis/pom.xml
@@ -3,11 +3,11 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-redis
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
@@ -93,7 +93,7 @@
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -141,7 +141,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
diff --git a/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisMetadataHandlerTest.java b/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisMetadataHandlerTest.java
index ec66adff61..94c35288cd 100644
--- a/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisMetadataHandlerTest.java
+++ b/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisMetadataHandlerTest.java
@@ -151,7 +151,7 @@ public void doGetTableLayout()
GetTableLayoutRequest req = new GetTableLayoutRequest(IDENTITY, QUERY_ID, DEFAULT_CATALOG,
TABLE_NAME,
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
schema,
new HashSet<>());
@@ -232,7 +232,7 @@ public void doGetSplitsZset()
TABLE_NAME,
partitions,
partitionCols,
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsRequest req = new GetSplitsRequest(originalReq, continuationToken);
@@ -285,7 +285,7 @@ public void doGetSplitsPrefix()
TABLE_NAME,
partitions,
new ArrayList<>(),
- new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(new HashMap<>(), Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsRequest req = new GetSplitsRequest(originalReq, continuationToken);
diff --git a/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisRecordHandlerTest.java b/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisRecordHandlerTest.java
index 63489a93da..d288ea5a37 100644
--- a/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisRecordHandlerTest.java
+++ b/athena-redis/src/test/java/com/amazonaws/athena/connectors/redis/RedisRecordHandlerTest.java
@@ -248,7 +248,7 @@ public void doReadRecordsLiteral()
TABLE_NAME,
schemaForRead,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -347,7 +347,7 @@ public void doReadRecordsHash()
TABLE_NAME,
schemaForRead,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -461,7 +461,7 @@ public void doReadRecordsZset()
TABLE_NAME,
schemaForRead,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-redshift/athena-redshift.yaml b/athena-redshift/athena-redshift.yaml
index 302e90cd3a..c59c129c44 100644
--- a/athena-redshift/athena-redshift.yaml
+++ b/athena-redshift/athena-redshift.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -80,7 +80,7 @@ Resources:
kms_key_id: !If [HasKMSKeyId, !Ref KMSKeyId, !Ref "AWS::NoValue"]
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.redshift.RedshiftMuxCompositeHandler"
- CodeUri: "./target/athena-redshift-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-redshift-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Redshift using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-redshift/pom.xml b/athena-redshift/pom.xml
index b8cd957f51..bfc1a0cbf8 100644
--- a/athena-redshift/pom.xml
+++ b/athena-redshift/pom.xml
@@ -3,21 +3,21 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-redshift
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-postgresql
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
@@ -28,7 +28,7 @@
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-saphana/athena-saphana.yaml b/athena-saphana/athena-saphana.yaml
index 847e60e87c..f80c70a2e4 100644
--- a/athena-saphana/athena-saphana.yaml
+++ b/athena-saphana/athena-saphana.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
diff --git a/athena-saphana/pom.xml b/athena-saphana/pom.xml
index 00dca38b2f..0d07f8bdc7 100644
--- a/athena-saphana/pom.xml
+++ b/athena-saphana/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-saphana
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-snowflake/athena-snowflake.yaml b/athena-snowflake/athena-snowflake.yaml
index 87940bb906..8f4bae23fe 100644
--- a/athena-snowflake/athena-snowflake.yaml
+++ b/athena-snowflake/athena-snowflake.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -66,7 +66,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.snowflake.SnowflakeMuxCompositeHandler"
- CodeUri: "./target/athena-snowflake-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-snowflake-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Snowflake using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-snowflake/pom.xml b/athena-snowflake/pom.xml
index a7f37c20be..03fc4907e7 100644
--- a/athena-snowflake/pom.xml
+++ b/athena-snowflake/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-snowflake
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-sqlserver/athena-sqlserver.yaml b/athena-sqlserver/athena-sqlserver.yaml
index 8f640105c9..ddc0f467bc 100644
--- a/athena-sqlserver/athena-sqlserver.yaml
+++ b/athena-sqlserver/athena-sqlserver.yaml
@@ -12,7 +12,7 @@ Metadata:
- athena-federation
- jdbc
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -73,7 +73,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.sqlserver.SqlServerMuxCompositeHandler"
- CodeUri: "./target/athena-sqlserver-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-sqlserver-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with SQLSERVER using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-sqlserver/pom.xml b/athena-sqlserver/pom.xml
index 83402197a6..519f614502 100644
--- a/athena-sqlserver/pom.xml
+++ b/athena-sqlserver/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-sqlserver
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-synapse/athena-synapse.yaml b/athena-synapse/athena-synapse.yaml
index 1ff082c5a5..a2b83b1cdf 100644
--- a/athena-synapse/athena-synapse.yaml
+++ b/athena-synapse/athena-synapse.yaml
@@ -12,7 +12,7 @@ Metadata:
- athena-federation
- jdbc
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -75,7 +75,7 @@ Resources:
default: !Ref DefaultConnectionString
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.synapse.SynapseMuxCompositeHandler"
- CodeUri: "./target/athena-synapse-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-synapse-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with SYNPASE using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-synapse/pom.xml b/athena-synapse/pom.xml
index c93448bc8b..ed80b95129 100644
--- a/athena-synapse/pom.xml
+++ b/athena-synapse/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-synapse
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-teradata/athena-teradata.yaml b/athena-teradata/athena-teradata.yaml
index 563a0c399d..8aff8c0151 100644
--- a/athena-teradata/athena-teradata.yaml
+++ b/athena-teradata/athena-teradata.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -76,7 +76,7 @@ Resources:
Handler: "com.amazonaws.athena.connectors.teradata.TeradataMuxCompositeHandler"
Layers:
- !Ref LambdaJDBCLayername
- CodeUri: "./target/athena-teradata-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-teradata-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Teradata using JDBC"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-teradata/pom.xml b/athena-teradata/pom.xml
index d4d2051615..87ddaa02b8 100644
--- a/athena-teradata/pom.xml
+++ b/athena-teradata/pom.xml
@@ -3,27 +3,27 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-teradata
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
test
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
athena-jdbc
- 2023.2.1-athena-test
+ 2022.47.1
test-jar
test
diff --git a/athena-timestream/athena-timestream.yaml b/athena-timestream/athena-timestream.yaml
index cf1cebca8e..efcb20daee 100644
--- a/athena-timestream/athena-timestream.yaml
+++ b/athena-timestream/athena-timestream.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -53,7 +53,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.timestream.TimestreamCompositeHandler"
- CodeUri: "./target/athena-timestream-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-timestream-2022.47.1.jar"
Description: "Enables Amazon Athena to communicate with Amazon Timestream, making your time series data accessible from Athena."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-timestream/pom.xml b/athena-timestream/pom.xml
index 1834a9dce7..a58b2c13c0 100644
--- a/athena-timestream/pom.xml
+++ b/athena-timestream/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-timestream
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
@@ -25,7 +25,7 @@
com.amazonaws
athena-federation-integ-test
- 2023.2.1-athena-test
+ 2022.47.1
withdep
test
diff --git a/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/TimestreamRecordHandlerTest.java b/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/TimestreamRecordHandlerTest.java
index 77de0f85a3..e664c6fb25 100644
--- a/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/TimestreamRecordHandlerTest.java
+++ b/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/TimestreamRecordHandlerTest.java
@@ -226,7 +226,7 @@ public void doReadRecordsNoSpill()
new TableName(DEFAULT_SCHEMA, TEST_TABLE),
schemaForRead,
splitBuilder.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -281,7 +281,7 @@ public void doReadRecordsSpill()
new TableName(DEFAULT_SCHEMA, TEST_TABLE),
schemaForRead,
splitBuilder.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
1_500_000L, //~1.5MB so we should see some spill
0L
);
@@ -355,7 +355,7 @@ public void readRecordsView()
new TableName(DEFAULT_SCHEMA, TEST_VIEW),
schemaForReadView,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
@@ -423,7 +423,7 @@ public void readRecordsTimeSeriesView()
new TableName(DEFAULT_SCHEMA, TEST_TABLE),
schemaForReadView,
split,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L, //100GB don't expect this to spill
100_000_000_000L
);
diff --git a/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/query/SelectQueryBuilderTest.java b/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/query/SelectQueryBuilderTest.java
index 0db140c642..cd891d5bfe 100644
--- a/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/query/SelectQueryBuilderTest.java
+++ b/athena-timestream/src/test/java/com/amazonaws/athena/connectors/timestream/query/SelectQueryBuilderTest.java
@@ -94,7 +94,7 @@ public void build()
.withDatabaseName("myDatabase")
.withTableName("myTable")
.withProjection(schema)
- .withConjucts(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1))
+ .withConjucts(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1))
.build().replace("\n", "");
logger.info("build: actual[{}]", actual);
@@ -129,7 +129,7 @@ public void buildWithView()
.withDatabaseName("myDatabase")
.withTableName("myTable")
.withProjection(schema)
- .withConjucts(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1))
+ .withConjucts(new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1))
.build().replace("\n", "");
logger.info("build: actual[{}]", actual);
diff --git a/athena-tpcds/athena-tpcds.yaml b/athena-tpcds/athena-tpcds.yaml
index eeafa9f49f..69654b2136 100644
--- a/athena-tpcds/athena-tpcds.yaml
+++ b/athena-tpcds/athena-tpcds.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
AthenaCatalogName:
@@ -53,7 +53,7 @@ Resources:
spill_prefix: !Ref SpillPrefix
FunctionName: !Ref AthenaCatalogName
Handler: "com.amazonaws.athena.connectors.tpcds.TPCDSCompositeHandler"
- CodeUri: "./target/athena-tpcds-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-tpcds-2022.47.1.jar"
Description: "This connector enables Amazon Athena to communicate with a randomly generated TPC-DS data source."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-tpcds/pom.xml b/athena-tpcds/pom.xml
index 44872d25fd..10490d0609 100644
--- a/athena-tpcds/pom.xml
+++ b/athena-tpcds/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-tpcds
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSMetadataHandlerTest.java b/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSMetadataHandlerTest.java
index d8321ce8db..b2a877e0f1 100644
--- a/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSMetadataHandlerTest.java
+++ b/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSMetadataHandlerTest.java
@@ -159,7 +159,7 @@ public void doGetTableLayout()
"queryId",
"default",
new TableName("tpcds1", "customer"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
schema,
Collections.EMPTY_SET);
diff --git a/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSRecordHandlerTest.java b/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSRecordHandlerTest.java
index abfc492059..c866dbe78b 100644
--- a/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSRecordHandlerTest.java
+++ b/athena-tpcds/src/test/java/com/amazonaws/athena/connectors/tpcds/TPCDSRecordHandlerTest.java
@@ -188,7 +188,7 @@ public void doReadRecordsNoSpill()
.add(SPLIT_TOTAL_NUMBER_FIELD, "1000")
.add(SPLIT_SCALE_FACTOR_FIELD, "1")
.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
100_000_000_000L,
100_000_000_000L //100GB don't expect this to spill
);
@@ -232,7 +232,7 @@ public void doReadRecordsSpill()
.add(SPLIT_TOTAL_NUMBER_FIELD, "10000")
.add(SPLIT_SCALE_FACTOR_FIELD, "1")
.build(),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
1_500_000L, //~1.5MB so we should see some spill
0
);
diff --git a/athena-udfs/athena-udfs.yaml b/athena-udfs/athena-udfs.yaml
index f8fb6d7eb8..4798f6add7 100644
--- a/athena-udfs/athena-udfs.yaml
+++ b/athena-udfs/athena-udfs.yaml
@@ -10,7 +10,7 @@ Metadata:
Labels:
- athena-federation
HomePageUrl: 'https://github.com/awslabs/aws-athena-query-federation'
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: 'https://github.com/awslabs/aws-athena-query-federation'
Parameters:
LambdaFunctionName:
@@ -40,7 +40,7 @@ Resources:
Properties:
FunctionName: !Ref LambdaFunctionName
Handler: "com.amazonaws.athena.connectors.udfs.AthenaUDFHandler"
- CodeUri: "./target/athena-udfs-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-udfs-2022.47.1.jar"
Description: "This connector enables Amazon Athena to leverage common UDFs made available via Lambda."
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-udfs/pom.xml b/athena-udfs/pom.xml
index 41aa95dfb3..a5234ec6aa 100644
--- a/athena-udfs/pom.xml
+++ b/athena-udfs/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-udfs
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-vertica/athena-vertica.yaml b/athena-vertica/athena-vertica.yaml
index f1ad0bf3cb..551c612311 100644
--- a/athena-vertica/athena-vertica.yaml
+++ b/athena-vertica/athena-vertica.yaml
@@ -10,7 +10,7 @@ Metadata:
ReadmeUrl: README.md
Labels: ['athena-federation']
HomePageUrl: https://github.com/awslabs/aws-athena-query-federation
- SemanticVersion: 2023.1.2-athena-test-SNAPSHOT
+ SemanticVersion: 2022.47.1
SourceCodeUrl: https://github.com/awslabs/aws-athena-query-federation
# Parameters are CloudFormation features to pass input
@@ -83,7 +83,7 @@ Resources:
FunctionName: !Sub "${AthenaCatalogName}"
Handler: "com.amazonaws.athena.connectors.vertica.VerticaCompositeHandler"
- CodeUri: "./target/athena-vertica-2023.1.2-athena-test-SNAPSHOT.jar"
+ CodeUri: "./target/athena-vertica-2022.47.1.jar"
Description: "Amazon Athena Vertica Connector"
Runtime: java11
Timeout: !Ref LambdaTimeout
diff --git a/athena-vertica/pom.xml b/athena-vertica/pom.xml
index e2e3b70c54..d67ecd0326 100644
--- a/athena-vertica/pom.xml
+++ b/athena-vertica/pom.xml
@@ -3,16 +3,16 @@
aws-athena-query-federation
com.amazonaws
- 2023.2.1-athena-test
+ 2022.47.1
4.0.0
athena-vertica
- 2023.2.1-athena-test
+ 2022.47.1
com.amazonaws
aws-athena-federation-sdk
- 2023.2.1-athena-test
+ 2022.47.1
withdep
diff --git a/athena-vertica/src/test/java/com/amazonaws/athena/connectors/vertica/VerticaMetadataHandlerTest.java b/athena-vertica/src/test/java/com/amazonaws/athena/connectors/vertica/VerticaMetadataHandlerTest.java
index 0dc1986d97..83f02ec666 100644
--- a/athena-vertica/src/test/java/com/amazonaws/athena/connectors/vertica/VerticaMetadataHandlerTest.java
+++ b/athena-vertica/src/test/java/com/amazonaws/athena/connectors/vertica/VerticaMetadataHandlerTest.java
@@ -267,7 +267,7 @@ public void getPartitions() throws Exception
try {
req = new GetTableLayoutRequest(this.federatedIdentity, "queryId", "default",
new TableName("schema1", "table1"),
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
tableSchema,
partitionCols);
@@ -361,7 +361,7 @@ public void doGetSplits() throws SQLException {
new TableName("schema", "table_name"),
partitions,
partitionCols,
- new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), -1),
+ new Constraints(constraintsMap, Collections.emptyList(), Collections.emptyList(), -1),
null);
GetSplitsRequest req = new GetSplitsRequest(originalReq, null);
diff --git a/pom.xml b/pom.xml
index a7cae18736..07ddc1a596 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.amazonaws
aws-athena-query-federation
pom
- 2023.2.1-athena-test
+ 2022.47.1
AWS Athena Query Federation
The Amazon Athena Query Federation SDK allows you to customize Amazon Athena with your own code.
https://github.com/awslabs/aws-athena-query-federation
diff --git a/tools/validate_connector.sh b/tools/validate_connector.sh
index 24dc8f1e88..ebbeb90668 100755
--- a/tools/validate_connector.sh
+++ b/tools/validate_connector.sh
@@ -37,7 +37,7 @@ while true; do
esac
done
-VERSION=2023.1.2-athena-test-SNAPSHOT
+VERSION=2022.47.1
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)