github dolthub/dolt v0.40.21
0.40.21

latest releases: v1.35.10, binlog-alpha-1, v1.35.9...
21 months ago

Merged PRs

dolt

  • 3964: improve error message for merge when two columns have the same tag
    See #3963
  • 3961: try to create the directory referenced by the remote url if it doesnt exist
  • 3960: When modifying a column, don't seed the new column tag with the old NomsKind
    Columns tags are generated in a psuedo-random manner. They are seeded with the NomsKinds of all the existing columns and the name of the column for which the tag is being generated.
    When modifying a column, we previously included the old column's NomsKind when seeding the new tag. This produced bad round-tripping behavior explained here:
    #3950 (comment)
    This PR excludes the old column's NomsKind from the seed.
  • 3956: Add command line and SQL support for dolt pull <remote> <remoteBranch>
    Adds support for explicitly specifying the remote branch to merge into the current working head.
    Fixes: #3937
    Documentation updates: dolthub/docs#811
  • 3954: edit prep workflow script
  • 3953: updating privilege docs
  • 3952: Count prepared tests
  • 3941: Fix some env loading panics
  • 3920: Better read only error messages
    re: #3919
    companion: dolthub/go-mysql-server#1130
  • 3903: Prune table scans columns
    Change the table iterator interfaces to return only the requested projection rows.
    companion PR: dolthub/go-mysql-server#1122
  • 3810: more privilege changes
    Changes:
    • add --user to dolt sql and dolt sql -q
    • default user is persisted immediately iff --user or --password option is given
    • default super user is root@localhost instead of root@%
    • only create doltcfgdir if we need to persist something
    • has more tests
      Companion PR: dolthub/go-mysql-server#1127
      Fix for: #3794
      Also a fix for: #3881
  • 3796: support unix socket
    Depends on dolthub/go-mysql-server#1114
    Uses unix socket file to run local server for Unix and Unix-like systems.
    Uses TCP for Windows.

go-mysql-server

  • 1141: Bug fix for now/current_timestamp column default values not in parens
    Our column default logic was conflating whether a default value was a literal value or an expression when the now or current_timestamp functions were used as the column default. Those column defaults were marked as literals, even though they are expressions that need to be resolved and evaluated. These two functions are the only functions that may be used as a column default value without being enclosed in parens, and when used that way, they were not getting resolved and causing a panic (see linked issue for more details).
    This change makes ColumnDefaultValue.IsLiteral always return true if the default value is a literal value and always return false if the default value is some expression that needs to be resolved and evaluated. To keep consistency with MySQL's behavior, it requires that we track whether the column default was enclosed in parens when defined. This is necessary because MySQL allows the now/current_timestamp functions to be used without parens for datetime/timestamp column, but must be specified in parens when used as the default for any other column type. Since that validation is done in a separate spot from the parsing, we need to track that as part of ColumnDefaultValue.
    Testing: Dolt engine tests and Dolt unit tests all pass correctly with these changes.
    Fixes: #2618
  • 1140: Error test fixes, extra test for EmptyTable
  • 1138: Improving error message when a stored procedure isn't found and no DB is selected
    Previously, if a user tried to call a stored procedure with no database selected, they would get this error message:
    stored procedure "%s" does not exist
    
    We've seen some users connect to a sql-server, but not use a database and be confused by this error message, so this change adds extra content to the error message when no current database is selected:
    stored procedure "%s" does not exist: this might be because no database is selected
    
  • 1134: Populate max field length response metadata
    The MySQL wire protocol includes a "column length" field as part of the Column Definition that tells clients the maximum amount of bytes they should expect for each serialized value in that column. Before this change, go-mysql-server was not populating this field and some MySQL clients were unable to parse responses without that max field byte length metadata. This change starts populating that field, with values identical to what MySQL returns.
    It was pretty straightforward to plumb this new piece of data through, but things got a little tricky with some of the stringtypes, so I cleaned up that code a little bit to better distinguish between the maxChars, maxBytes, and maxResponseBytes for a stringtype.
    Fixes: #3914
    Fixes: #3893
  • 1133: Add indexes to keyless data tests and validate engine after TestQueryWithContext
  • 1130: Better read only errors
  • 1129: json_contains bug fixes
    Bug fixes for Dolt's implementation of json_contains (MySQL Documentation)
    Fixes: #3895
  • 1127: super user is localhost, and don't persist superuser
    Companion PR: #3810
  • 1122: Prune *plan.ResolvedTable columns
    Table schemas change after we prune columns by pushing projections into them. This is a one-way process, tables can't become un-projected after pushdown.
    edit: I rewrote this completely to be more organized and avoid some of the resolve issues from before.
  • 1114: support unix socket
    #3796 is dependent of this PR
    Merged in Aaron's branch with supporting two-listeners

Closed Issues

  • 2618: Error with Lazy ColumnDefaultResolution w/ Describe and Column Defaults
  • 3937: Can't call dolt_pull() if no upstream branch is set
  • 3970: transaction error
  • 3957: DBeaver: data tables in-cell updates are not picked-up by Dolt
  • 3949: DBeaver: data tables in-cell updates are not picked-up by Dolt
  • 3914: MYSQL_DATA_TRUNCATED error when using C API
  • 3893: Support sending back max field length metadata in MySQL wire protocol
  • 3895: "Invalid argument" for json_contains() queries
  • 3935: Calling dolt_add() does not stage commits
  • 3913: Resolving conflict using theirs never completes
  • 3887: Dolt upgrade seems to have lost some settings
  • 3595: Allow Dolt to communicate over MySQL socket interface

Don't miss a new dolt release

NewReleases is sending notifications on new releases.