Merged PRs
dolt
- 4171: version in server metrics
- 4167: Skipping a sql-server test that's been hanging for hours in CI
- 4162: Index lookup refactor
- 4157: Privileges bats first pass. Refactor
server_query
bats helper.
In addition to some basic privileges tests, this PR refactors theserver_query
function apparatus. A singleserver_query
function replaces all helper functions includingmulti_query
,insert_query
,server_query_with_user
, etc. This single interface removes a bunch of duplicate code inquery-server-common.bash
making everything easier to maintain.
You now need to pass user and password toserver_query
which required changing everywhere in bats whereserver_query
and all of its duplicates were called. - 4156: Allows diff to be performed across primary key renames
- 4151: set upstream from sql session
dolt_checkout()
anddolt_push()
sets upstream that persists outside of sql session - 4146: Revamped ref name validation to allow the '.' character
This means that parsing noms paths into objects like structs, maps, etc. no longer works, so deleted code that relies on that functionality. - 4145: Add
prolly.RangeDiffMaps
This PR addsprolly.RangeDiffMaps
which can be used to get the diffs between two prolly map within a certain key range. - 4142: Bump @actions/core from 1.2.6 to 1.9.1 in /.github/actions/ses-email-action
Bumps @actions/core from 1.2.6 to 1.9.1.Changelog
Sourced from
@actions/core
's changelog.1.9.1
- Randomize delimiter when calling
core.exportVariable
1.9.0
- Added
toPosixPath
,toWin32Path
andtoPlatformPath
utilities #1102
1.8.2
- Update to v2.0.1 of
@actions/http-client
#1087
1.8.1
- Update to v2.0.0 of
@actions/http-client
1.8.0
- Deprecate
markdownSummary
extension export in favor ofsummary
1.7.0
1.6.0
1.5.0
1.4.0
1.3.0
1.2.7
Commits
- See full diff in compare view
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@actions/core&package-manager=npm_and_yarn&previous-version=1.2.6&new-version=1.9.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts). - Randomize delimiter when calling
- 4116: Fix dolt diff --limit
Closes #4078. - 4106: go/{store,libraries,gen}: Adopt new flatc, throw an error if we enconter unknown fields.
- 4105: commit merge if no conflict
This PR implements performingdolt commit
if merge is not fast forward and there is no conflict and constraint violation
It adds--commit
,--no-commit
and--no-edit
flag options for bothdolt merge
anddolt pull
.
Same conditions apply fordolt pull
merging a remote branch into current working set.
Dolt merge does not log commit after committing successful merge. - 4102: Various fixes for database revision specifiers
Changing revision databases to be instantiated on-demand, instead of trying to track them in DoltDatabaseProvider. This simplifies how we manage revision databases and avoids revision dbs hanging around in memory after customers are done using them. The biggest UI changes for customers is thatshow databases
will now no longer show all revision dbs that have ever been used, but instead will only include the single revision database a customer is currently using.
Fixes: #4067
Fixes: #4031 - 4050: Add amend option for commit
This PR adds the ability to amend the commit atHEAD
. It accomplishes this by first soft resetting toHEAD~1
before applying the new commit. Empty new amended commits are allowed to support the original use case of changing the commit messages of previous commits.
Note that this PR does not add the amend feature to the SQL stored procedures.
Fixes #2338
go-mysql-server
- 1208: Handle IN expressions with NULL values for string typed columns
fixes string assertion panic here - 1206: Fix alias error that should qualify correctly
- 1205: Fixed inability to drop user without host being specified
Fixes github.com/dolthub/issues/4135 - 1204: Fix timestamp comparisons and add regression test
Summary
This PR fixes another regression introduced by #1061. That PR altered the way that timestamps are represented internally (they went fromstring
to[]byte
) without updating all of the locations where the previous representation was assumed.
The particular regression this PR fixes deals with timestamp comparisons. A test like
should returnCREATE TABLE mytable (t TIMESTAMP); INSERT INTO mytable (t) VALUES ('1990-01-01'), ('2020-01-01'); SELECT COUNT(1) FROM mytable WHERE t > '2000-01-01';
1
, but today it returns2
.
The core issue is that the filter (e.g.,WHERE t > '2000-01-01'
) needs to compare timestamps. That comparison logic has type coercion, but the type coercion only knows how to coerce a string into a timestamp, and it is now being handed a[]byte
.
The fix here is two-fold:- increase the priority of timestamp type coercion so that it takes precedence over binary coercion
- ensure that the
convertValue
function correctly converts[]byte
into timestamps (and dates)
Motivation
dolthub/go-mysql-server#1139
This is not strictly speaking the same issue, but something wonky is going on with timestamps and I'd like to get to the bottom of it, and then fix it "for good". - 1203: Stop requiring
order by
clause for range frames that only use unbounded preceding/following and current row
We were requiring theorder by
clause for all range frame queries, but it is optional when the frame only usesunbounded preceding/following
andcurrent row
.
Fixes: #4141 - 1201: Add end-to-end tests for timestamp insertion, and patch the conversion issue
Summary
This PR introduces ane2etests/
directory with "end to end" tests:- set up a memory engine
- start the server
- connect using the normal Go mysql driver
- execute queries
This can catch issues that a unit test against the engine itself cannot.
There is only a single test thus far, and it is fairly verbose. I know that there is at least one more issue with timestamps, and I will open a follow-up PR to address that issue as soon as I track down its source. For now I'm opting for clarity rather than code reusability.
Lastly, this PR introduces a little patch to the timestamp conversion logic, which was accidentally broken in dolthub/go-mysql-server#1061 because it only handlesstring
but the server layer now passes it[]byte
. This patch is very dumb and simple: just convert[]byte
tostring
before parsing.
Motivation
dolthub/go-mysql-server#1139 - 1199: adding support for
RANK
andDENSE_RANK
Fix for:- #4126
Note: queries in MySQL seem to be ordered by the ranks by default.
- #4126
- 1194: Support Anonymous User
Fixes #4090 - 1192: support CONV() function
Fix for #4099 - 1168: Add a series of skipped tests related to functionality gaps
Closed Issues
- 3773:
merge
should create a commit when are no conflicts - 4031: Drop revision database from SQL
- 4067: Calling
dolt_checkout
afteruse [db]/[commit]
panics - 2338:
dolt commit --amend
to amend commit messages - 4078: diff limit flag ignored
- 4141: Window function
ORDER BY
should be optional when frame specification doesn't require it - 4098: Support
BIT_XOR()
SQL Function - 4139: Support
CAST()
as alternative toCONVERT()
- 4135: drop user without a host should default to
%
- 4090: Dolt does not support an "anonymous user"
- 4079: Starting dolt as a sql server specifying user and host parameter creates a user at the host as defined. This should be the
%
default. - 4099: Support
CONV()
SQL function - 4057: Implicit type conversion for
InSubquery
- 1139: Error with passing time.Time as a field for saving