Merged PRs
dolt
- 8274: Allow duplicate indexes, to match MySQL behavior
This change allows Dolt to create multiple indexes on a table to cover the same set of columns, to match MySQL's behavior. While duplicate indexes are not generally useful, some MySQL tooling (e.g. Django) can create duplicate indexes as part of generated schema migration code.
Test for creating duplicate indexes were added to GMS, in the PR below. I also tested merge behavior with duplicate indexes and confirmed that we already have a guardrail in place to prevent merging multiple indexes that cover the same set of columns, and a test for that guardrail.
GMS PR: dolthub/go-mysql-server#2634
Customer issue: #8254 - 8273: ResolveDefaultExpression should return a ColumnDefaultValue instance, because it has information about the type of the column and performs conversions.
Fixes #8269
We were removing the ColumnDefaultValue expression node when building secondary indexes, which was a problem when the type of the default value needed to be converted to the column type: it's the ColumnDefaultValue expression that does that conversion. - 8268: Db/dolt ci events
- 8260: Fixes for dolt installer bash-script
- Fixed error message mistakenly implying that dolt can be installed on 32-bit systems
- Fixed color printing on bash (and zsh running in bash compatibility mode) installed on an OS with non-GNU coreutils (Alpine Linux, macOS)
- Linted
install.sh
and fixed all the errors and warning that had obvious fixes. The only one left islocal error_code="$1"
infail
function that should be removed but may be reused for debugging purposes by manually editing the script
- 8253: Add dolt_workspace_* system tables
This is the read only addition of thedolt_workspace_{table}
s. These dynamically generated tables are always relative to HEAD for the given session of the caller. There are no commits as a result, and the schema of the output looks like:
| ID (int) | STAGED (bool) | DIFF_TYPE (string) | to_A | to_B | ... | from_A | from_B | ... |
Currently there is no mechanism to update this table directly, but in the future that will make it possible to have fine grain modification of your workspace, similar togit add --patch
- 8242: Skip filterIter match check when a key range is contiguous
go-mysql-server
- 2636: Add additional engine tests for indexes on generated columns.
These tests verify the correctness of #8273.
Some of the checks in these tests are skipped because they run afoul of #8275 and #8276 - 2634: Adding tests for supporting duplicate secondary indexes
New tests asserting that multiple indexes over the same set of columns can be created on tables.
#8274 fixes Dolt for these tests to pass. - 2633: handle view resolution when the schema is not defined in SELECT stmt
- 2631: include parent scopes in
update
anddelete
triggers
partially fixes #8213 - 2628: Aggregation/range scan perf edits
- Resolving aggregation functions checks the integrator function provider first. The interface required us to create an expensive error object to resolve any standard functions. Now we only create the error object if a function name is not found in integrator and standard list.
- Skip duplicate unused functional dependency tracking in coster.
- Aggregations with no group by and single scopes can only return one row, so use the
sql.QFlagMax1Row
shortcut.
benchmarks here: #8241