Merged PRs
dolt
- 6699: go/libraries/doltcore/sqle: cluster: When a database is dropped, shutdown the replication goroutines and stop returning its status in the dolt_cluster_status table.
- 6694: Support for fulltext index rewrites inline with table rewrites
Also includes changes required from always closing table editors, even on an error.
Companion PR with support for GMS table rewrites, and similar changes to GMS fulltext index management:
dolthub/go-mysql-server#2008
go-mysql-server
- 2026: Do not error for SHOW view indexes
Until we support view indexes, return nil for show view keys/indexes.
fixes #6705 - 2025: Failure to push filter causes dropped filter
We make a hard assumption during join planning that there are no errant filters in the join tree. Every filter is either a join edge, or sitting on its relation. When this is not true, the memo can generate a transitive edge between two relations that loses track of the original filter. The process for triggering this bug is 1) filter in an ON condition gets moved to the middle of the tree, 2) the filter fails to get pushed to its join edge/relation, 3) we generate a transitive join edge that loses track of that filter, and then 4) we choose the transitive join edge in costing.
You'll see the filter restored in the integration query plans in the PR. I added a minimal repro with the appropriate ON conditions and forced a transitive edge that drops the filter if pushdown regresses in the future. - 2018: Avoid corrupting the privileges file
Currently, the last of these commands results in a panic due to the revoke inserting a database with an empty string for a name. This is fairly awkward to test in GMS, so I'm going to take the easy route and create a bats test in dolt.lcl:~/Documents/data_dir_1/db3$ dolt init Successfully initialized dolt data repository. lcl:~/Documents/data_dir_1/db3$ dolt sql # Welcome to the DoltSQL shell. # Statements must be terminated with ';'. # "exit" or "quit" (or Ctrl-D) to exit. db3> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) db3> CREATE DATABASE foo; db3> GRANT INSERT ON foo.* TO 'testuser'@'localhost'; Query OK, 0 rows affected (0.00 sec) db3> REVOKE INSERT ON foo.* FROM 'testuser'@'localhost'; Query OK, 0 rows affected (0.00 sec) db3> SHOW GRANTS FOR testuser@localhost; panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x40 pc=0x101940894]
- 2008: Rewrote memory table editors to enable table rewrites
This also fixes a number of bugs that were discovered during this process, notably not properly closing table editors in all instances.