[Python] Support drop table (#123)

Closes #86
This commit is contained in:
Lei Xu
2023-06-01 15:58:45 -07:00
committed by GitHub
parent 0719e4b3fb
commit 9965b4564d
2 changed files with 36 additions and 0 deletions

View File

@@ -14,6 +14,7 @@
from __future__ import annotations
from pathlib import Path
import os
import pyarrow as pa
@@ -112,3 +113,15 @@ class LanceDBConnection:
A LanceTable object representing the table.
"""
return LanceTable(self, name)
def drop_table(self, name: str):
"""Drop a table from the database.
Parameters
----------
name: str
The name of the table.
"""
filesystem, path = pa.fs.FileSystem.from_uri(self.uri)
table_path = os.path.join(path, name + ".lance")
filesystem.delete_dir(table_path)

View File

@@ -97,3 +97,26 @@ def test_create_mode(tmp_path):
)
tbl = db.create_table("test", data=new_data, mode="overwrite")
assert tbl.to_pandas().item.tolist() == ["fizz", "buzz"]
def test_delete_table(tmp_path):
db = lancedb.connect(tmp_path)
data = pd.DataFrame(
{
"vector": [[3.1, 4.1], [5.9, 26.5]],
"item": ["foo", "bar"],
"price": [10.0, 20.0],
}
)
db.create_table("test", data=data)
with pytest.raises(Exception):
db.create_table("test", data=data)
assert db.table_names() == ["test"]
db.drop_table("test")
assert db.table_names() == []
db.create_table("test", data=data)
assert db.table_names() == ["test"]