From eee9c2c35bde09ae7f60eaeb81cfd91230357559 Mon Sep 17 00:00:00 2001 From: Bijan Houle Date: Tue, 24 Aug 2021 21:44:34 -0600 Subject: [PATCH 1/2] AWS: update DynamoDbCatalog.dropNamespace attr check --- .../java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java b/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java index f9bef1514604..2d34885342bd 100644 --- a/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java +++ b/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java @@ -248,7 +248,7 @@ public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyExcept dynamo.deleteItem(DeleteItemRequest.builder() .tableName(awsProperties.dynamoDbTableName()) .key(namespacePrimaryKey(namespace)) - .conditionExpression("attribute_exists(" + namespace + ")") + .conditionExpression("attribute_exists(" + DynamoDbCatalog.COL_NAMESPACE + ")") .build()); return true; } catch (ConditionalCheckFailedException e) { From 51c000765fff1c51fbe35b0d45637884a49017e5 Mon Sep 17 00:00:00 2001 From: Bijan Houle Date: Wed, 1 Sep 2021 09:09:58 -0600 Subject: [PATCH 2/2] nit cleanup & integration test --- .../iceberg/aws/dynamodb/DynamoDbCatalogTest.java | 12 ++++++++++++ .../apache/iceberg/aws/dynamodb/DynamoDbCatalog.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/aws/src/integration/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalogTest.java b/aws/src/integration/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalogTest.java index 8d4273c1625f..9074d289b4c7 100644 --- a/aws/src/integration/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalogTest.java +++ b/aws/src/integration/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalogTest.java @@ -283,6 +283,18 @@ public void testConcurrentCommits() throws Exception { Assert.assertEquals(2, table.schema().columns().size()); } + @Test + public void testDropNamespace() { + Namespace namespace = Namespace.of(genRandomName()); + catalog.createNamespace(namespace); + catalog.dropNamespace(namespace); + GetItemResponse response = dynamo.getItem(GetItemRequest.builder() + .tableName(catalogTableName) + .key(DynamoDbCatalog.namespacePrimaryKey(namespace)) + .build()); + Assert.assertFalse("namespace must not exist", response.hasItem()); + } + private static String genRandomName() { return UUID.randomUUID().toString().replace("-", ""); } diff --git a/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java b/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java index 2d34885342bd..ebf4964aea85 100644 --- a/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java +++ b/aws/src/main/java/org/apache/iceberg/aws/dynamodb/DynamoDbCatalog.java @@ -248,7 +248,7 @@ public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyExcept dynamo.deleteItem(DeleteItemRequest.builder() .tableName(awsProperties.dynamoDbTableName()) .key(namespacePrimaryKey(namespace)) - .conditionExpression("attribute_exists(" + DynamoDbCatalog.COL_NAMESPACE + ")") + .conditionExpression("attribute_exists(" + COL_NAMESPACE + ")") .build()); return true; } catch (ConditionalCheckFailedException e) {