Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support S3 Table Buckets with S3TablesCatalog #1429

Open
wants to merge 57 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
11ce7a6
feat: initial setup for S3TablesCatalog
felixscherz Dec 14, 2024
6932281
feat: support create_table using FsspecFileIO
felixscherz Dec 14, 2024
f8bec25
feat: implement drop_table
felixscherz Dec 14, 2024
9018e70
feat: implement drop_namespace
felixscherz Dec 14, 2024
b053fbb
test: validate how version conflict is handled with s3tables API
felixscherz Dec 15, 2024
f8fff8a
feat: implement commit_table
felixscherz Dec 15, 2024
579bce6
feat: implement table_exists
felixscherz Dec 18, 2024
5ef7790
feat: implement list_tables
felixscherz Dec 18, 2024
6d496df
refactor: improve list_namespace
felixscherz Dec 18, 2024
33b08f0
fix: return Identifier from list_tables
felixscherz Dec 18, 2024
798e65d
feat: implement rename table
felixscherz Dec 21, 2024
5297ca7
feat: implement load_namespace_properties
felixscherz Dec 21, 2024
3817431
refactor: move some methods around
felixscherz Dec 21, 2024
c4a6485
feat: raise NotImplementedError for views functionality
felixscherz Dec 21, 2024
7bc8c3e
feat: raise NotImplementedError for purge_table
felixscherz Dec 21, 2024
3de3087
feat: raise NotImplementedError for update_namespace_properties
felixscherz Dec 21, 2024
988485b
feat: raise NotImplementedError for register_table
felixscherz Dec 21, 2024
6a28cb9
fix: don't override create_table_transaction
felixscherz Dec 21, 2024
a545c82
chore: run formatter
felixscherz Dec 21, 2024
7164e09
feat: raise exceptions if boto3 doesn't support s3tables
felixscherz Dec 23, 2024
efa04e3
feat: make endpoint configurable
felixscherz Dec 23, 2024
f145493
feat: explicitly configure tableBucketARN
felixscherz Dec 23, 2024
2592610
fix: remove defaulting to FsspecIO
felixscherz Dec 23, 2024
798cfb3
feat: raise exceptions for invalid namespace/table name
felixscherz Dec 23, 2024
3b402e4
feat: improve error handling for create_table
felixscherz Dec 29, 2024
138f62e
feat: improve error handling for delete_table
felixscherz Dec 29, 2024
8d64396
chore: cleanup comments
felixscherz Dec 29, 2024
642ccd8
feat: catch missing metadata for load_table
felixscherz Dec 29, 2024
3c17fc0
feat: handle missing namespace and preexisting table
felixscherz Dec 29, 2024
ec647fb
feat: handle versionToken and table in an atomic operation
felixscherz Dec 29, 2024
9396e73
chore: run formatter
felixscherz Dec 29, 2024
11f6f66
chore: add type hints for tests
felixscherz Dec 29, 2024
92fad8e
fix: no longer enforce FsspecFileIO
felixscherz Jan 4, 2025
cb23a72
test: remove tests for boto3 behavior
felixscherz Jan 4, 2025
5251ffa
test: verify column was created on commit
felixscherz Jan 4, 2025
b544b50
test: verify new data can be committed to table
felixscherz Jan 4, 2025
a02678a
docs: update documentation for create_table
felixscherz Jan 5, 2025
1facfe1
test: set AWS regions explicitly
felixscherz Jan 5, 2025
096ab6f
Apply suggestions from code review
felixscherz Jan 6, 2025
4fd1d61
test: commit new data to table
felixscherz Jan 6, 2025
f7b960a
feat: clarify update_namespace_properties error
felixscherz Jan 6, 2025
c72164b
feat: raise error when setting custom namespace properties
felixscherz Jan 6, 2025
c90bf31
refactor: change S3TableCatalog -> S3TablesCatalog
felixscherz Jan 7, 2025
78bbe54
feat: raise error on specified table location
felixscherz Jan 7, 2025
bd38d15
feat: return empty list when querying a hierarchical namespace
felixscherz Jan 7, 2025
85d50fe
refactor: use get_table_metadata_location instead of get_table
felixscherz Jan 7, 2025
c8434d4
refactor: extract 'ICEBERG' table format into constant
felixscherz Jan 7, 2025
e479c04
feat: change s3tables.table-bucket-arn -> s3tables.warehouse
felixscherz Jan 7, 2025
acfd06c
Apply suggestions from code review
felixscherz Jan 7, 2025
01c9003
feat: add link to naming-rules for invalid name errors
felixscherz Jan 7, 2025
1d25b69
feat: delete s3 table if writing new_table_metadata is unsuccessful
felixscherz Jan 7, 2025
188c45d
chore: run linter
felixscherz Jan 7, 2025
de31050
test: rename test_s3tables.py -> integration_test_s3tables.py
felixscherz Jan 7, 2025
2e1c383
chore: update poetry.lock
felixscherz Jan 8, 2025
fdd1d7a
fix: add license to files
felixscherz Jan 8, 2025
8b1cec0
fix: raise error when creating a table during a transaction
felixscherz Jan 9, 2025
99e569b
test: mark create_table_transaction test wiht xfail
felixscherz Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyiceberg/catalog/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -903,8 +903,8 @@ def _get_default_warehouse_location(self, database_name: str, table_name: str) -
raise ValueError("No default path is set, please specify a location when creating a table")

@staticmethod
def _write_metadata(metadata: TableMetadata, io: FileIO, metadata_path: str) -> None:
ToOutputFile.table_metadata(metadata, io.new_output(metadata_path))
def _write_metadata(metadata: TableMetadata, io: FileIO, metadata_path: str, overwrite: bool = False) -> None:
ToOutputFile.table_metadata(metadata, io.new_output(metadata_path), overwrite=overwrite)

@staticmethod
def _get_metadata_location(location: str, new_version: int = 0) -> str:
Expand Down
Loading