Browse Source
iceberg: persist namespace properties for create/get (#8276)
iceberg: persist namespace properties for create/get (#8276)
* iceberg: persist namespace properties via s3tables metadata * iceberg: simplify namespace properties normalization * s3tables: broaden namespace properties round-trip test * adjust logs * adjust logsfix/iceberg-stage-create-semantics
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 124 additions and 27 deletions
-
28weed/s3api/iceberg/iceberg.go
-
29weed/s3api/iceberg/iceberg_namespace_properties_test.go
-
3weed/s3api/s3tables/handler_namespace.go
-
24weed/s3api/s3tables/types.go
-
7weed/s3api/s3tables/utils.go
-
60weed/s3api/s3tables/utils_namespace_test.go
@ -0,0 +1,29 @@ |
|||
package iceberg |
|||
|
|||
import "testing" |
|||
|
|||
func TestNormalizeNamespacePropertiesNil(t *testing.T) { |
|||
properties := normalizeNamespaceProperties(nil) |
|||
if properties == nil { |
|||
t.Fatalf("normalizeNamespaceProperties(nil) returned nil map") |
|||
} |
|||
if len(properties) != 0 { |
|||
t.Fatalf("normalizeNamespaceProperties(nil) length = %d, want 0", len(properties)) |
|||
} |
|||
} |
|||
|
|||
func TestNormalizeNamespacePropertiesReturnsInputWhenSet(t *testing.T) { |
|||
input := map[string]string{ |
|||
"owner": "analytics", |
|||
} |
|||
|
|||
properties := normalizeNamespaceProperties(input) |
|||
if properties["owner"] != "analytics" { |
|||
t.Fatalf("normalized properties value = %q, want %q", properties["owner"], "analytics") |
|||
} |
|||
|
|||
input["owner"] = "updated" |
|||
if properties["owner"] != "updated" { |
|||
t.Fatalf("normalizeNamespaceProperties should reuse the input map when non-nil") |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue