While working on a Python REST server implementation (https://github.com/kevinjqliu/iceberg-rest-catalog), I noticed a few Pyiceberg bugs while integrating with PySpark. The REST server implementation is using SqlCatalog as the underlying catalog.
[ ] rest.py's drop_namespace function is missing handling the 409 status code. (#868)
[ ] sql.py's drop_namespace function does not return NoSuchNamespaceError when namespace is missing. (#865)
[ ] sql.py's update_namespace_properties function only updates the first property and drops the rest. (#873)
[ ] TableMetadata is initialized with the default Pydantic object for schema, partition_spec, and sort_order, which does not play well with table updates.
I'll be happy to work on this but I think these are "good first issues". We can break these up into separate PRs with the relevant tests.
Apache Iceberg version
None
Please describe the bug π
While working on a Python REST server implementation (https://github.com/kevinjqliu/iceberg-rest-catalog), I noticed a few Pyiceberg bugs while integrating with PySpark. The REST server implementation is using SqlCatalog as the underlying catalog.
Here's the collection of bugs that I would like to upstream (https://github.com/apache/iceberg-python/compare/main...kevinjqliu:iceberg-python:kevinjqliu/iceberg-rest-catalog) To summarize:
rest.py
'sdrop_namespace
function is missing handling the409
status code. (#868)sql.py
'sdrop_namespace
function does not returnNoSuchNamespaceError
when namespace is missing. (#865)sql.py
'supdate_namespace_properties
function only updates the first property and drops the rest. (#873)TableMetadata
is initialized with the default Pydantic object forschema
,partition_spec
, andsort_order
, which does not play well with table updates.I'll be happy to work on this but I think these are "good first issues". We can break these up into separate PRs with the relevant tests.