Merged PRs
dolt
- 6893: Bug fix: for
dolt_history_
system tables
When filtering on an indexed column from the primary index (i.e. a pk column) if a column in the underlying table has been modified and changed its tag in previous versions, we weren't able to create the lookup builder and caused a segfault. This PR changes to use the primary index as a covering index, since it's the closest we have. This is also consistent with how we had implemented Noms range lookups.
Related to: #6891 - 6883: Remotes: AWS: Fix a bug where uploading tables files to S3 could have unbounded memory usage.
- 6871: Remove skip on now passing test for multi-db joins on tables with the same name
Unskipped a bats test I added for a join across multiple databases on tables of the same name that is now fixed.
go-mysql-server
- 2102: view aliasing bug
TheView.ViewExpr
AST object seems to drop aliasing information that we depend on for query schema presentation. I want to circle back to have the view AST expression be consistent with the view definition, but this forces a re-parsing to get the correct view schema. - 2100: Refactor or the NewPrivilegedOperation method
Adding support for routines is coming, and and a bunch or string arguments is cumbersome.
Note to reviewer: start at sql/privileges.go! - 2099: Add the mysql.procs_privs table
In order to support procedure and function permissions, the mysql.procs_priv needs to be supported. This change add support, but gates the ability to create these grants because they are not being used for actual permission checks yet. That will come next.
I have engine tests on another branch due to the gate. I'll add them when the feature is complete. There are also bats tests in flight in the dolt repo which can be seen here:
4d8fe2a...macneale4/privs_tests_wip - 2098: Logging improvements for prepared statements
Updating from mysql.Handler changes in 7da194ad69efa0e4cc3992f860ecb92550482d62 – adding debug logging forComPrepare
and including params count, other minor logging cleanup.
Related Vitess PR: dolthub/vitess#286 - 2095: give child SQA isLateral if parent SQA isLateral
If a parent SubqueryAlias is marked IsLateral, then mark its child SubqueryAliases with IsLateral as well.
This essentially gives the child SubqueryAlias visibility to the left subtree all the time, which fixes the linked issue.
We should be able to differentiate between different scopes of lateral joins and only grant visibility to those columns, which could be a subset of the parent/left columns. However, I don't think we are close to getting that working.
fixes #6843 - 2094: Add support for view column clause
re: dolthub/vitess#285
closes: #6859 - 2083: Virtual column index support
Implements index support for virtual columns, and fixes several bugs related to generated columns for certain statements.
Changes the memory table index implementation to actually store secondary indexes separately, rather than fake it via the primary index. The indexes are stored via sorted slices for now. I'll do another pass and replace them, and primary storage, with btrees for speed now that I have this proof of concept working.
Also introduces a new interface for rebuilding a single index, rather than doing a complete table rewrite every time an index is created.
vitess
- 285: Add create view with columns
ex:create view v_today(today) as select CURRENT_DATE()
- 284: Include the With clause in walked subtrees for Select statements
We weren't walking theWith
clause for select statements, which caused us to not find any bind vars in use there.
Related to: #6852
Closed Issues
- 6590: Enhancement suggestion (low priority): add an equivalent to git bundle
- 6843: lateral recursive cte join error
- 6711: VisualDB client errors
- 2279: In multiple database mode, two tables having the same name is an issue on JOINs
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.14 | 2.76 | 1.3 |
groupby_scan | 13.22 | 17.32 | 1.3 |
index_join | 1.32 | 4.41 | 3.3 |
index_join_scan | 1.25 | 2.18 | 1.7 |
index_scan | 34.33 | 55.82 | 1.6 |
oltp_point_select | 0.17 | 0.41 | 2.4 |
oltp_read_only | 3.36 | 7.3 | 2.2 |
select_random_points | 0.32 | 0.68 | 2.1 |
select_random_ranges | 0.39 | 0.92 | 2.4 |
table_scan | 34.33 | 55.82 | 1.6 |
types_table_scan | 74.46 | 164.45 | 2.2 |
reads_mean_multiplier | 2.0 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.37 | 5.99 | 1.1 |
oltp_insert | 2.71 | 2.86 | 1.1 |
oltp_read_write | 7.3 | 14.21 | 1.9 |
oltp_update_index | 2.76 | 2.97 | 1.1 |
oltp_update_non_index | 2.86 | 2.91 | 1.0 |
oltp_write_only | 3.82 | 7.04 | 1.8 |
types_delete_insert | 5.28 | 6.32 | 1.2 |
writes_mean_multiplier | 1.3 |
Overall Mean Multiple | 1.7 |
---|