Skip to content

Commit

Permalink
feat(pyspark): implement Backend.rename_table
Browse files Browse the repository at this point in the history
BREAKING CHANGE: `PySparkTable.rename` is  removed, use `Backend.rename_table` instead.
  • Loading branch information
jcrist authored and cpcloud committed Aug 29, 2023
1 parent 0047143 commit 0a8b201
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 27 deletions.
13 changes: 13 additions & 0 deletions ibis/backends/pyspark/__init__.py
Expand Up @@ -507,6 +507,19 @@ def drop_table_or_view(
statement = DropTable(name, database=database, must_exist=not force)
self.raw_sql(statement.compile())

def rename_table(self, old_name: str, new_name: str) -> None:
"""Rename an existing table.
Parameters
----------
old_name
The old name of the table.
new_name
The new name of the table.
"""
statement = ddl.RenameTable(old_name, new_name)
self.raw_sql(statement.compile())

def truncate_table(self, name: str, database: str | None = None) -> None:
"""Delete all rows from an existing table.
Expand Down
26 changes: 0 additions & 26 deletions ibis/backends/pyspark/client.py
Expand Up @@ -122,32 +122,6 @@ def insert(
statement = ddl.InsertSelect(self._qualified_name, select, overwrite=overwrite)
return self._client.raw_sql(statement.compile())

def rename(self, new_name: str) -> PySparkTable:
"""Rename the table inside Spark.
References to the old table are no longer valid. Spark does not support
moving tables across databases using `rename`.
Parameters
----------
new_name
New table name
Returns
-------
PySparkTable
Renamed spark table
"""
new_qualified_name = self._client._fully_qualified_name(
new_name, self._database
)

statement = ddl.RenameTable(self.name, new_name)
self._client.raw_sql(statement.compile())

op = self.op().copy(name=new_qualified_name)
return type(self)(op)

def alter(self, tbl_properties: Mapping[str, str] | None = None) -> Any:
"""Change settings and parameters of the table.
Expand Down
1 change: 0 additions & 1 deletion ibis/backends/tests/test_client.py
Expand Up @@ -260,7 +260,6 @@ def test_create_temporary_table_from_schema(tmpcon, new_schema):
"pandas",
"polars",
"postgres",
"pyspark",
"snowflake",
"sqlite",
"trino",
Expand Down

0 comments on commit 0a8b201

Please sign in to comment.