Skip to content

refactor(memtables)!: remove support for problematic memtable properties #11465

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

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

cpcloud
Copy link
Member

@cpcloud cpcloud commented Jul 16, 2025

Closes #11464.

@cpcloud cpcloud changed the title remove memtable names refactor(memtables)!: remove support for problematic memtable properties Jul 16, 2025
@github-actions github-actions bot added tests Issues or PRs related to tests postgres The PostgreSQL backend sqlite The SQLite backend clickhouse The ClickHouse backend mysql The MySQL backend pyspark The Apache PySpark backend datafusion The Apache DataFusion backend bigquery The BigQuery backend duckdb The DuckDB backend sql Backends that generate SQL polars The polars backend snowflake The Snowflake backend trino The Trino backend oracle The Oracle backend flink Issues or PRs related to Flink exasol Issues related to the exasol backend databricks The Databricks backend labels Jul 16, 2025
@cpcloud cpcloud marked this pull request as draft July 16, 2025 16:54
@github-actions github-actions bot added the athena The Amazon Athena backend label Jul 16, 2025
@cpcloud cpcloud force-pushed the remove-memtable-names branch from 59067a1 to b0ae55d Compare July 16, 2025 16:55
@@ -1714,16 +1715,6 @@ def _register_in_memory_table(self, op: ops.InMemoryTable) -> None:

self.con.register(op.name, obj)

def _finalize_memtable(self, name: str) -> None:
# if we don't aggressively unregister tables duckdb will keep a
# reference to every memtable ever registered, even if there's no
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still true, but very hard to manage automatically without baking assumptions about when GC runs generically into all Ibis backends AFAICT, so I've reverted to the previous behavior.

@cpcloud cpcloud force-pushed the remove-memtable-names branch 5 times, most recently from 9694099 to 7b37bfa Compare July 17, 2025 13:32
@github-actions github-actions bot added the docs Documentation related issues or PRs label Jul 17, 2025
@cpcloud cpcloud force-pushed the remove-memtable-names branch 2 times, most recently from ede74d1 to 3804fe1 Compare July 17, 2025 14:39
cpcloud added 13 commits July 23, 2025 12:09
Allowing explicit naming of memtables creates problems. This commit
removes that ability and prevents deadlocks during Python GC.

BREAKING CHANGE: `memtable`s can no longer be named explicitly, please use `create_table` or `create_view` to create a named object instead.
BREAKING CHANGE: `ibis.case()` is removed. Use `ibis.cases()` instead.
BREAKING CHANGE: `IntegerValue.to_timestamp` is removed. Use `IntegerValue.as_timestamp` instead.
BREAKING CHANGE: `IntegerValue.to_interval` is removed. Use `IntegerValue.as_interval` instead.
BREAKING CHANGE: `String.to_timestamp` method is removed in favor of `String.as_timestamp`.
BREAKING CHANGE: `String.to_date` is removed in favor of `String.as_date`.
BREAKING CHANGE: `Struct.destructure` is removed in favor of `Table.unpack`.
@cpcloud cpcloud force-pushed the remove-memtable-names branch from f96a198 to ab85a44 Compare July 23, 2025 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
athena The Amazon Athena backend bigquery The BigQuery backend clickhouse The ClickHouse backend databricks The Databricks backend datafusion The Apache DataFusion backend docs Documentation related issues or PRs duckdb The DuckDB backend exasol Issues related to the exasol backend flink Issues or PRs related to Flink mysql The MySQL backend oracle The Oracle backend polars The polars backend postgres The PostgreSQL backend pyspark The Apache PySpark backend snowflake The Snowflake backend sql Backends that generate SQL sqlite The SQLite backend tests Issues or PRs related to tests trino The Trino backend
Projects
None yet
Development

Successfully merging this pull request may close these issues.

refactor: remove support for some problematic memtable properties
1 participant