github dolthub/dolt v0.40.28
0.40.28

latest releases: v1.43.0, v1.42.20, v1.42.19...
2 years ago

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 the server_query function apparatus. A single server_query function replaces all helper functions including multi_query, insert_query, server_query_with_user, etc. This single interface removes a bunch of duplicate code in query-server-common.bash making everything easier to maintain.
    You now need to pass user and password to server_query which required changing everywhere in bats where server_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() and dolt_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 adds prolly.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 and toPlatformPath 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

    1.7.0

    1.6.0

    1.5.0

    1.4.0

    1.3.0

    1.2.7

    Commits

    [![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).
  • 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 performing dolt 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 both dolt merge and dolt pull.
    Same conditions apply for dolt 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 that show 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 at HEAD. It accomplishes this by first soft resetting to HEAD~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 from string 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
    CREATE 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';
    
    should return 1, but today it returns 2.
    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:
    1. increase the priority of timestamp type coercion so that it takes precedence over binary coercion
    2. 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 the order by clause for all range frame queries, but it is optional when the frame only uses unbounded preceding/following and current row.
    Fixes: #4141
  • 1201: Add end-to-end tests for timestamp insertion, and patch the conversion issue

    Summary

    This PR introduces an e2etests/ 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 handles string but the server layer now passes it []byte. This patch is very dumb and simple: just convert []byte to string before parsing.

    Motivation

    dolthub/go-mysql-server#1139
  • 1199: adding support for RANK and DENSE_RANK
    Fix for:
    • #4126
      Note: queries in MySQL seem to be ordered by the ranks by default.
  • 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 after use [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 to CONVERT()
  • 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

Don't miss a new dolt release

NewReleases is sending notifications on new releases.