dolt

Dolt – Git for Data

APACHE-2.0 License

Downloads
2.4K
Stars
17.1K
Committers
143

Bot releases are visible (Hide)

dolt - 0.30.3

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2239: remotesrv gets an --http-host option.
  • 2238: Use a Tuple Factory for inserts to decrease memory usage.
    Improvement related to https://github.com/dolthub/dolt/issues/2237
  • 2236: Prevent panic when index edit accumulator capacity is reached and undo operations are attempted.
  • 2233: Fix fast-forward merge behavior.
  • 2230: Improve support for dolt on 32-bit platforms, including ARM.
  • 2213: Add Read Only Transaction Functionality To Dolt

go-mysql-server

  • 582: sql/plan: exchange.go: Make Exchange's RowIter wait for all goroutines to shutdown cleanly.
  • 579: Fixed panic on using an alias of a subquery expression in a where clause (now just an error)
  • 578: enginetest: Add BrokenQueries tests for projections in group by nodes not handling subquery expressions well.
  • 577: sql/analyzer: validation_rules: Disable validateSubqueryColumns, which was enabled in the latest releases but is still broken in some cases.
  • 576: Add Read Only transaction functionality
  • 575: Fixed bug in indexed joins when self joining a table with two different AS OF clauses.
  • 573: Add several features that unblock mysql workbench
    This pr implements
    1. Show STATUS
    2. Set CHARACTER SET

vitess

  • 84: support for value and status keywords

Closed Issues

  • 2229: panic: unaligned 64-bit atomic operation when running dolt push on arm
  • 570: Add support for read-only transactions
  • 499: "ORDER BY" expressions behaviour compatible with MySQL?
dolt - 0.30.2

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2221: Fix some JSON path quoting issues.
  • 2220: Add configurable memory cap on used memory in table editor accumulators.
  • 2219: Optimize memory usage for some write use cases.
  • 2217: go/libraries/doltcore/remotestorage: Allow a write cache to limit memory usage.
  • 2211: refactor: move from io/ioutil to io and os package
    The io/ioutil package has been deprecated in Go 1.16 (See https://golang.org/doc/go1.16#ioutil).
  • 2208: initial dolt backup cli
    • backup namespacing is the same as remote namespacing, but different field in repo state
    • introduce a RootSync command, which backups are based off of
    • until we cleanup clone, you can still clone a backup and accidentally get working sets
    • bats checks for different ref cases that we expect to exist after a backup -> restore
  • 2207: Update load data bats to remove secure_file_priv
  • 2205: Unblock Keyless SQL Diffs and Minimize SQL Diffs
    Allows for dolt diff -sql to be used for keyless tables and add alter pk support for sql diffs.
  • 2204: go/store/nbs: table_reader.go: canReadAhead: Limit how large a read can get from coalescing individual chunk reads.
  • 2196: config, clone, backups refactor
    • previously env variables are now dolt config variables for better locality
    • move clone logic into library functions
    • multi env test setup is more like a builder and implements clone so that we can have repos with common ancestors
  • 2194: Added a test for disabling foreign keys during SQL export
    Additional test for #1669
  • 2193: Bug fix for SQL export of enum columns
    Fixes #2187
  • 2191: Add a warning for CREATE DATABASE
    Warning is due to CREATE DATABASE not persisting after the server exits
  • 2182: FF head on read replica
    • adds dsqle.ReadReplicaDatabase which implements dsqle.SqlDatabase
    • expands uses of dsqle.Database to accommodate all dsqle.SqlDatabase implementations
    • Read replica DB decorates db.StartTransaction to execute a fetch on DOLT_READ_REPLICA_REMOTE
    • ReadReplicaDatabase is -not- read only right now, need another decorator or field
    • cli and sql bats tests
    • sql dolt tests this is skipped due to in process server conflicts with multiple ongoing tests
    • bunch of sql shadow functions (create table, stage, commit, push) to allow for testing multiple dEnv's side-by-side

go-mysql-server

  • 573: Add several features that unblock mysql workbench
    This pr implements
    1. Show STATUS
    2. Set CHARACTER SET
  • 572: Add the EXISTS Operator for Select Where Filters
    Adds the exists operator as described here: https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html
  • 567: sql/plan,analyzer: Fix HashLookup for cases where there is a schema prefix not visible to the direct join parent.
  • 555: Fix handling of secure_file_priv for LOAD DATA

Closed Issues

  • 2168: Make dolt diff -r sql render minimal UPDATE statements
  • 2166: MySQL Workbench 8.0 Connection Error
  • 802: dolt init fails on nfs-mounted directories
  • 1390: document the format of s3 remote strings
  • 1603: Require SSL
  • 1439: Implement EXISTS() function
  • 1709: dolt table import with --no-gc deadlocks unexpectedly
  • 1851: dolt should update schema on table import --replace
  • 1997: DOLT_PULL and DOLT_PUSH SQL functions
  • 2113: Rename "master" to "main"
  • 2164: Support EXISTS predicates and expressions
  • 1539: Django 3.2 MySQL backend fails with function: 'convert_tz' not found
  • 2187: SQL export doesn't quote enums
  • 499: "ORDER BY" expressions behaviour compatible with MySQL?
dolt - 0.30.1

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2188: merge optimizations

go-mysql-server

  • 568: sql/analyzer: indexed_joins: Keep searching for usable indexes when there are NOT(? = ?) and NOT(? <=> ?) clauses in a join conjunction.
    The indexed join logic is perfectly happy to go forward with a join plan if it
    doesn't find a perfect index, or even a usable index at all, for one or more
    table factors in the join. This logic is probably left over from when that was
    not the case, but for now we make it a little more liberal to cover some cases
    we need to cover for a customer.
  • 567: sql/plan,analyzer: Fix HashLookup for cases where there is a schema prefix not visible to the direct join parent.
    This adds a TransformUpCtx function that passes along a SchemaPrefix in the TransformContext if the schema prefix is scrutable from resolved children at that point in the analysis. apply_hash_lookup makes use of this to make the transformed expressions in the HashLookup lookup node refer to the right place, even when JoinNode.Left().Schema() doesn't have the whole prefix.
    This schema prefix is probably useful in other places and I am exploring rationalizing certain places where the analyzer makes use of the schema by using it or something like it.
    In the mean time, converted some of the more obscure transform variants (UpWithParent, UpWithSelector) to use TransformUpCtx as well. Held off on moving TransformUp to TransformUpCtx.
    Very open to suggestions on names for TransformUpCtx.
  • 566: sql/analyzer: Make SubqueryAlias nodes always cacheable.
  • 565: sql: Removing ctx parameter from Expression.WithChildren.
    Also removes it from FunctionFn types, TransformExpression... functions, and Aggregation.NewBuffer.
    We think this ctx parameter might have been added a few months ago as part of some optimization work which never made it across the line. Instead of threading a *sql.Context everywhere, if we have need of a *sql.Context during analysis or to precompute or materialize a certain result in the future, I think I'm going to advocate for a specific optional interface that the analyzer is aware of. It could then pass the context through at a specific analyzer phase and the function/expression node would have the opportunity to get ready to do what it needs to.

Closed Issues

  • 569: Outdated example
dolt - 0.30.0

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2179: Added a method for database provider to override the functions provid…
    …ed (for dolthub)
  • 2178: Upgrade gms and changed engine initialization pattern
  • 2160: Change default init branch to main, add dolt init --branch flag
    This PR changes the default init branch to main, adds a --branch flag to dolt init and changes the clone checkout behavior to prioritize main, then master, then the first sorted branch. https://www.dolthub.com/blog/2021-09-29-dolt-and-dolthub-init-main/
  • 2151: replicate HEAD on commit
    • prototype commit replication
    • only works for cli, will work for SQL after https://github.com/dolthub/dolt/pull/2137/files is merged
    • because the init state is in cli, the target dataset in datas, and logic for manipulating datasets is constrained to doltdb, this is what fell out without rearranging dependencies or exposing private fields
    • type CommitHook func(ctx context.Context, ds Dataset, db Database) error isn't super flexible
  • 2094: optimize keyless read row

go-mysql-server

  • 565: sql: Removing ctx parameter from Expression.WithChildren.
    Also removes it from FunctionFn types, TransformExpression... functions, and Aggregation.NewBuffer.
    We think this ctx parameter might have been added a few months ago as part of some optimization work which never made it across the line. Instead of threading a *sql.Context everywhere, if we have need of a *sql.Context during analysis or to precompute or materialize a certain result in the future, I think I'm going to advocate for a specific optional interface that the analyzer is aware of. It could then pass the context through at a specific analyzer phase and the function/expression node would have the opportunity to get ready to do what it needs to.
  • 564: sql/plan: Defer returning error from IndexedInSubqueryFilter.RowIter until the Next() call.
    Fixes some interactions between INSERT IGNORE INTO and expressions which will
    fail on evaluation.
    This might be a credible strategy everywhere we .Eval within RowIter, for
    example, in indexed_table_access.
  • 563: Added an extension point for custom function providers
    As part of this, embarked on a major refactor:
    • Extracted interfaces for sql.Catalog and sql.ProcessList
    • Moved existing sql.Catalog to analyzer package
    • Moved ProcessList and MemoryManager out of Catalog
    • Changed Analyzer and Engine to take a DatabaseProvider instead of a Catalog
  • 560: Update some analyzer rules and expression behavior to deal with tuples in a more principled way.
    Subquery expression nodes can now return tuples.
    InSubquery expression nodes can work with tuples as expected.
    An analyzer validation step now returns operand errors in more cases, expecting
    almost all expressions to return one column, but special casing certain
    operators and functions which support tuples.
    Added some TODO tests for cases where our tuple comparisons are still not
    behaving as we want them to. In particular, null safe vs. non-null safe
    comparisons and type coercion of tuple subtypes in comparisons still need work.
  • 559: sql/analyzer: aliases.go: Make sure we add the right table alias when traversing a DecoratedNode.
  • 557: sql/analyzer/optimization_rules.go: moveJoinConditionsToFilter: Fix small inaccuracy where computed topJoin could be wrong.
    This could result in the optimization pass adding the same Filter node to
    multiple places in the join tree.
  • 556: sql/plan/indexed_table_access.go: Change static index lookup nodes to not keep returning their unused key expressions.
    These needs take key expressions, but they do not evaluate them. They are not
    part of the evaluation tree, but they cause some problems with things like
    FixFieldIndexes and prune_columns, where all GetField expressions in the plan
    tree are expected to resolve to fields that are actually in scope and
    resolvable at the node that is being evaluated.
    This fixes a particular evaluation bug where a subquery expression in a join
    condition gets moved to the filter above the joins. If the moved subquery
    expression made use of a static index table lookup, the moved expression would
    fail to rewrite its field indexes appropriately and the query would return
    incorrect results.
  • 554: Added locks, todo to mutable session state

Closed Issues

  • 2167: Publish new releases via Chocolatey
dolt - 0.28.5

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2159: pprof-server usage message on start
    I always forget how to connect to the pprof server so I've added a message that comes up when you run dolt with the --pprof-server flag.
  • 2154: Rebase the database on transaction start
    This fixes #2092
    As part of this work, also cleaned up manifest reading and writing code. We now always read the manifest flexibly (any known version), and always write the most recent version.
  • 2152: Fix update on web issue
    BulkImportIEA and BulkImportTEA only support Commit, and not Rollback. Dolt uses these for import operations which do not get an explicit Commit or Rollback call. When used on the web for the in memory implementation Commit is used, and should not error.
  • 2148: no panic if HOME does not exist
    https://github.com/dolthub/dolt/issues/2147
  • 2137: Made SQL commits involving a dolt commit atomic
  • 2105: merge rows on dolt table import -u when import data only represents a subset of the columns
    Prior to this fix running this:
    dolt sql <1pk5col-ints-sch.sql
    echo -e 'pk,c1\n1,1\n2,6'|dolt table import -u test
    echo -e 'pk,c2\n1,2\n2,7'|dolt table import -u test
    echo -e 'pk,c3,c4,c5\n1,3,4,5\n2,8,9,10'|dolt table import -u test
    dolt sql -r csv -q 'SELECT * FROM test'
    
    would result in:
    pk,c1,c2,c3,c4,c5
    1,,,3,4,5
    2,,,8,9,10
    
    Now it results in:
    pk,c1,c2,c3,c4,c5
    1,1,2,3,4,5
    2,6,7,8,9,10
    

go-mysql-server

  • 554: Added locks, todo to mutable session state
  • 553: Wrote proper number conversion logic
    Previously we were relying on the cast library, which had a few issues with how we expect SQL numbers to function. One such issue was how number strings were handled (such as interpreting "01000" as a binary number rather than in decimal). There have been more issues in the past that have gone undocumented, but this should fix them (or allow for an easy fix since it's all custom logic now).

Closed Issues

  • 2147: Panic running dolt if home directory does not exist
  • 2092: dolt sql-server must be restarted to see changes from other processes
  • 2141: fatal error: concurrent map read and map write
dolt - 0.28.4

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2143: Import fix to not put NullValue into types.Tuples for map values
  • 2142: Bump GMS
  • 2139: common library fetchRefSpec
    • consolidate getRefSpecs functions from cli/env
    • fetch argument switching matches git more closely -- specifying the remote is necessary, no default to origin
  • 2135: /go/libraries/doltcore/{env,doltdb,ref}: Add init.defaultBranch to Dolt Config
    mirrors Git config functionality:
    git init
    hint: Using 'master' as the name for the initial branch. This default branch name
    hint: is subject to change. To configure the initial branch name to use in all
    hint: of your new repositories, which will suppress this warning, call:
    hint:
    hint:   git config --global init.defaultBranch <name>
    
  • 2131: Create Dolt Database
  • 2112: Only show key name, not column tag number
    Closes #2107.

go-mysql-server

  • 552: Fixed actual default collation representative
  • 551: Check Error when building Session
  • 549: Mutable DatabaseProvider refactor
  • 548: Fix Resolve Defaults
  • 547: Expose CREATE DATABASE to integrators
    Remove AddDatabase functionality from Catalog and DatabaseProvider. Must have a DatabaseProvider with a static set of Databases to construct a Catalog.
    New Databases can be created with CreateDatabase, which is now an integrator function.
  • 544: sql/plan: exchange_test.go: Sometimes these tests fail under -race because they are racey. Fix that.
  • 540: sql/expression/function/aggregation: Change aggregation functions to work better with group by expressions.
    The existing code seems to be expecting rows to arrive in order of the group by expression. But the analyzer does not arrange for that to happen.
    Instead, this PR changes the approach so that each aggregation function duplicates its Child expression(s) as part of its per-aggregation state. That way it can Eval against its per-group-by Child and get the correct results out of Distinct for example.
    This PR updates AVG, FIRST, LAST, MAX, MIN and SUM to do this. COUNT(DISTINCT ...) is handled by a special expression node instead, and nothing has been changed in Count or CountDistinct. group_concat also seems to handle DISTINCT itself, and so I have not changed anything there. Json aggregation did not look immediately amenable to combining with DISTINCT, because the Update functions seemed to error when the child expression returned nil, so I have not changed them either.

vitess

  • 84: support for value and status keywords
    needed two features for mlflow:
    • column named value (alter table t modify value float(53) not null)
    • check named status (alter table a drop check status)
  • 83: Max/drop pk

Closed Issues

  • 2107: Bad error message for foreign key constraint violation in import
dolt - 0.28.3

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2132: Fixed VRW reference issues
    Previously we were using memory value stores in some places, and everything seemed to be working, but I think our garbage collection changes exposed some inconsistencies that were causing bugs. This PR threads values stores to where they need to be and removes the majority of the places where we were using memory value stores.
    This also solves a multitude of fuzzer issues, including the corrupted database error:
    https://github.com/dolthub/fuzzer/issues/337
    And also the cause of some rows not being found and silently causing some operations to no-op (bats test included):
    https://github.com/dolthub/fuzzer/issues/597
  • 2130: change panics to err on rollback
  • 2129: hoist editor parameters up for greater flexibility
  • 2126: inmem deaf
  • 2124: integration-tests: Fix MySQLDockerfile for go 1.17.1.
  • 2121: go/libraries/doltcore/sqle/altertests: Run unit tests in parallel.
  • 2120: sql dolt_push and dolt_fetch no concurrency
    • adds select dolt_push('origin', 'master') and select dolt_fetch('origin')
    • no locking
    • refspec management is kind of busted, but it was like that before i added the sql functions
    • fresh unit tests for sql push, fetch
    • fetch cli + sql needs to be consolidated, but in a different PR
  • 2119: Release dolt sql-client command
  • 2117: go: remotestorage: hedge_test.go: Fix these tests to be less flakey, use determinstic interleaving of goroutines and hedge requests by instrumenting hedger's time.After.
  • 2114: Bump Go version to 1.17
  • 2109: go/libraries/doltcore/dbfactory: Change our GRPC remote DB factory to take the GRPC dialer through a param.
    Prior to this change, we used to set a global variable in the dbfactory package
    which referred to whichever DoltEnv was loaded most recently. It was racey and
    it has pretty terrible semantics.
  • 2106: Give each SQL query in the shell its own context, and fix SIGTERM behavior for SQL shell
    Fixes https://github.com/dolthub/dolt/issues/2101
    Fixes https://github.com/dolthub/dolt/issues/2025
    Fixes https://github.com/dolthub/dolt/issues/1155
    Fixes #871
  • 2104: Modify bad row error format
    Closes #2103.
    Before:
    A bad row was encountered while moving data.
    Bad Row:
    "03AGDBQ24TPRIFU0LRPRHLHU8KBOK5SQSMCT8BMVFJNANULFUG4RDHNZPOV4PJNMN0DOD1PM2V5AQQTFP1HZXZG5J5BJTP7BN0A8WLBZYMBJIRU7BWTYCNXTCQUD1UYWITEJIZR5EWWP1NM4OR40P6FTQL4NHKIA870UAFXSPRF0AIK_45YNRU98ZQOZQNJFKNF89FW9" is not valid for "VarString(utf8mb4_0900_ai_ci, 180, SQL: VarChar)"
    These can be ignored using the '--continue'
    
    After:
    A bad row was encountered while moving data.
    Bad Row:
    "03AGDBQ24TPRIFU0LRPRHLHU8KBOK5SQSMCT8BMVFJNANULFUG4RDHNZPOV4PJNMN0DOD1PM2V5AQQTFP1HZXZG5J5BJTP7BN0A8WLBZYMBJIRU7BWTYCNXTCQUD1UYWITEJIZR5EWWP1NM4OR40P6FTQL4NHKIA870UAFXSPRF0AIK_45YNRU98ZQOZQNJFKNF89FW9" is not valid for column "street_physical" (type "VarString(utf8mb4_0900_ai_ci, 180, SQL: VarChar)")
    These can be ignored using the '--continue'
    
    WIP: BATS test still needs to be written
  • 2102: sql server dolt_pull function no concurrency
    • no concurrency management, missing mutexes FetchRemoteBranch and FetchTag. Multiple server connections calling dolt_pull will overwrite each others tempfiles, but not disrupt the workingset
    • a lot of the more involved dolt_pull bats tests are tightly coupled to push and fetch. I'll clean those up when I add dolt_push and dolt_fetch
    • afaik there are no special errors for dolt_pull, underlying fetch and merge steps are responsible for themselves
  • 2100: Added escape-analysis script for Windows
    Builds on https://github.com/dolthub/dolt/pull/2097
  • 2098: /go/store/types: Don't compare v against itself
  • 2097: /go/utils: Escape analysis annotation tool for Goland
    Generates Escape Analysis annotations when files are changed
    image
  • 2096: go/libraries/doltcore/table: Support partitioned table iterators for keyless tables.
  • 2093: RMariaDB mysql-integration-test
    executes the standard query/response set, and then tests prepared statements separately.
  • 2090: go.mod: Bump go-mysql-server to pick up date handling for YYYY-M-D format.
    Fixes #2088.
  • 2080: Changed logging format to take advantage of logger changes in gms
    New log message format sample:
    2021-08-31T12:04:36-07:00 DEBUG [conn 1] Starting query {connectTime=2021-08-31T12:04:36-07:00, query=SHOW VARIABLES LIKE 't%_isolation'}
    
  • 2076: Refactor index editor
    This takes the same approach to the index editor that was used with the table editor. It also has to thread a bunch of stuff through in order to create the appropriate editors in different situations.
  • 2049: Bh/dbea refactor
  • 2032: Method to add a commit and update working set together atomically

go-mysql-server

  • 538: sql/datetimetype.go: Handle parsing dates like 2021-8-3 correctly.
  • 537: server/handler.go: Have ComPrepare correctly return null result schema metadata for write statements.
    This fixes our server's interaction with clients which expect the result
    metadata for a write statement to be NULL. One such client is RMariaDB. See:
    https://github.com/dolthub/dolt/issues/2084.

Closed Issues

  • 2103: Column names are not shown in a readable way when table imports fail
  • 2101: in the sql shell: describe stopped working after hitting ctrl-c during a query
  • 2025: dolt sql shell has static query time
  • 1155: catch interrupts in dolt sql during query execution / output
  • 871: Dolt handles NOW() incorrectly
  • 2088: Some values fail to convert from POSIXct (R) to DATETIME (Dolt)
  • 2084: Data doesn't transfer to Dolt from R using the RMariaDB client
dolt - 0.28.2

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2086: go/go.mod,integration-tests/mysql-client-tests: Bump go-mysql-server to pick up fix for prepared statement writes resultset metadata.
  • 2078: Better case handling for system tables
  • 2077: Fixed sql-client requiring repository
  • 2075: go/cmd/dolt: Handle SIGINT, SIGTERM with a context cancel.
    Also install a handler for sql-server so that the server gets stopped cleanly
    when we receive SIGINT or SIGTERM.
  • 2074: Auto Increment Values should reset for a table after its been dropped
    This table fixes a bug where a table is dropped and then readded but its next auto increment value didn't reset.
  • 2072: go/cmd/dolt: commands/sqlserver: Add configuration settings for tls_key, tls_cert and require_secure_transport.
  • 2071: Removed case sensitivity for Dolt system tables
  • 2067: Addresses different types of panics with remotes/fetches Issue: #2048
    This pr addresses three issues with fetching remotes.
    1. A panic with fetching a remote in the form "remotes/.." that is invalid
    2. A panic when an added remote that is then fetched is invalid
    3. A lack of error when fetching an invalid remote
  • 2065: Print table deltas in a consistent order (currently hash order)
  • 2064: Performance improvements for code paths which create empty tuples
  • 2045: Implement --author for dolt revert and DOLT_REVERT()

go-mysql-server

  • 537: server/handler.go: Have ComPrepare correctly return null result schema metadata for write statements.
    This fixes our server's interaction with clients which expect the result
    metadata for a write statement to be NULL. One such client is RMariaDB. See:
    https://github.com/dolthub/dolt/issues/2084.
  • 536: Better configurable logging support.
  • 535: Added function to parse column type strings to SQL types.
  • 532: Implement the CONVERT_TZ() SQL function.

Closed Issues

  • 2084: Data doesn't transfer to Dolt from R using the RMariaDB client
  • 2048: Dolt fetch on unknown remote formatted with remotes/ panics
  • 2052: client version mismatch with aws remote
  • 1373: Dolt system tables are case sensitive
  • 2042: dolt_revert() SQL function needs --author option
dolt - 0.28.1

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2061: Fix bug on deleting parents of user created directory
    Addresses issue #2052
  • 2041: Added a global commit lock
  • 2040: drop primary key does not fail on foreign key conflict if fallback index exists
    this is what I need for MLflow, which errored in the original implementation:
    dolt sql -q "CREATE table parent (pk int, val int, primary key (pk, val), key `backup` (val))"
    dolt sql -q "CREATE table child (pk int, val int, foreign key (val) references parent (val))"
    dolt sql -q "alter table parent drop primary key"
    
  • 1901: dolt_remote table read path
    This PR originally supported reading and writing a dolt_remotes system table.
    It is far bigger than necessary to just support the write path. But the write path code here still works.
    The SessionStateAdaptor refactor removed write path support, so a lot of the code is currently dead. The Insert/Update/Delete code and bats tests still work if we implement SessionStateAdaptor.AddRemote and SessionStateAdaptor.DeleteRemote, so I think the code is worth keeping. I refactored the CLI functions in the process of adding Insert/Delete/Update to avoid duplication, though it is unnecessary until dolt_remote writes are fixed.

go-mysql-server

  • 534: server/server: Support configuring TLSConfig in the vitess Listener.
  • 529: Vinai/load file

Closed Issues

  • 2052: client version mismatch with aws remote
  • 1125: Error in merge error messaage
  • 2046: "not like" syntax is broken for Null values.
  • 1968: Add support for LOAD_FILE()
dolt - 0.28.0

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2023: global system var for sql-server session branch
    setting @@GLOBAL.dolt_sql_server_branch_ref overwrites the branch for new sql-server connections. Setting the variable does not change the current connection's branch. If the variable is set to an invalid ref (ex: branch does not exist), the behavior is undefined for new connections.
    > set GLOBAL dolt_sql_server_branch_ref = 'refs/heads/new'
    Query OK, 1 row affected (0.00 sec)
    mysql> select @@GLOBAL.dolt_sql_server_branch_ref;
    +-------------------------------------+
    | @@GLOBAL.dolt_sql_server_branch_ref |
    +-------------------------------------+
    | refs/heads/new                      |
    +-------------------------------------+
    1 row in set (0.00 sec)
    mysql> select active_branch();
    +-----------------+
    | active_branch() |
    +-----------------+
    | master          |
    +-----------------+
    mysql> exit
    Bye
    $ mysql --user root --host=0.0.0.0 -p tmp1
    mysql> select active_branch();
    +-----------------+
    | active_branch() |
    +-----------------+
    | new             |
    +-----------------+
    1 row in set (0.00 sec)
    
  • 2021: Changed TEXT types to use BlobKind
    Previously we were using types.String at the noms layer to handle our TEXT types. This works for relatively small strings, but causes issues when using larger strings (such as a 2GB string). I'm not sure of the point at which performance tanks/crashes occur using types.String, but types.Blob can handle a string of arbitrary length (up to our allowed maximum of 4GB for sure). This also matches how our BLOB types are implemented.
    We do make use of the StringDefaultType variable all over the codebase, which was a LONGTEXT field. This has been changed to a VARCHAR(16383) field to preserve the expected behavior (passing in a types.String to the default string type for example). This does mean that our length limit is no longer 4GB, however I don't think we were ever reaching the VARCHAR limit to begin with, so this switch should be fine for all of our pre-existing logic. Additionally, the original string implementation remains (along with a LegacyStringDefaultType for system tables), so old repositories will continue to reference the old type as expected. This will only affect new tables. It was bad practice that we always used LONGTEXT to begin with.
    Our Go and bats tests make extensive use of LONGTEXT already (it was our only supported string type for a while), so minimal testing needed to be written.
    This PR also modifies types.Blob to properly sort, as previously it sorted by hash (which is the default for types that are an extension of sequence). Adding a proper Less function has broken some expected behaviors in noms for blobs, but they're not being used at all in Dolt, therefore it seems safe? Fixing these behaviors would entail a lower-level change, one which I didn't deem worth.
    Lastly, besides the large collection of small bug fixes here and there, I bumped the feature version. Any new tables that contain a TEXT type (of which there will probably be numerous) will be unable to be read by the previous version of Dolt (as they're missing the new blobStringType), and will throw an unknown error.
  • 2006: disk backed edit accumulator

go-mysql-server

  • 530: add engine tests for dateparse
    Follow-up to https://github.com/dolthub/go-mysql-server/pull/523
  • 529: Vinai/load file
  • 523: implement built-in function str_to_date
    Closes #518
    This PR implements the STR_TO_DATE MySQL function.
    In places where the spec is ambiguous, I'm attempting to match the behavior of MySQL version 8 from my manual testing. I need to implement a few more parsers and add more test cases to cover the expected behavior.
    go test  -cover github.com/dolthub/go-mysql-server/sql/parse/dateparse
    ok  	github.com/dolthub/go-mysql-server/sql/parse/dateparse	0.163s	coverage: 89.3% of statements
    
    cc @zachmu

Closed Issues

  • 1968: Add support for LOAD_FILE()
  • 2002: [Bug] Simple inserts sometimes not saved
  • 531: implement auto increment ddl support
  • 518: Implement built-in STR_TO_DATE
dolt - 0.27.4.2

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2036: fix concurrent map edit
  • 2035: Added skipped bats test for some dolt conflicts and associated warnings I was seeing
    This test tests the conflict resolution workflow where you get conflicts, resolve using --ours or --theirs but still want to modify the working set. It also tests the output of dolt conflicts cat when there are no conflicts.
  • 2031: /.github/workflows/ci-performance-benchmarks-report.yaml: fix missing curly brace
  • 2019: Skipped bats test for non-deterministic table import behavior
    Skipped bats test for duplicate rows in a table import -u --continue producing non-deterministic imports when repeated
  • 2012: Fixed error handling in fetch, dropped error in schema import
    This supercedes #1575
  • 1988: Vinai/alter drop pks

go-mysql-server

  • 528: Hacky version of read committed isolation level, which begins a new t…
    …ransaction on every statement. Basically it's read committed, but without the ability to turn off auto commit
  • 523: implement built-in function str_to_date
    Closes #518
    This PR implements the STR_TO_DATE MySQL function.
    In places where the spec is ambiguous, I'm attempting to match the behavior of MySQL version 8 from my manual testing. I need to implement a few more parsers and add more test cases to cover the expected behavior.
    go test  -cover github.com/dolthub/go-mysql-server/sql/parse/dateparse
    ok  	github.com/dolthub/go-mysql-server/sql/parse/dateparse	0.163s	coverage: 89.3% of statements
    
    cc @zachmu
  • 516: Vinai/add drop pks

Closed Issues

  • 1928: Support OpenSUSE with Dolt
  • 315: Altering primary key not supported via SQL
  • 872: Dolt allows changing primary key column order
  • 518: Implement built-in STR_TO_DATE
dolt - 0.27.4

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2017: if no working or staged hash exists in the repo file use head
  • 2013: Andy/alter drop pks

go-mysql-server

  • 528: Hacky version of read committed isolation level, which begins a new t…
    …ransaction on every statement. Basically it's read committed, but without the ability to turn off auto commit
  • 519: Fix explicit DEFAULT value in insert query
    It seems that go-mysql-server is not compatible with insert query like:
    INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)
    
    Whereas DEFAULT is just to specify deleted columns should use column default value explicitly.
    The issue could be demostrated using below code:
    package main
    import (
    dbsql "database/sql"
    sqle "github.com/dolthub/go-mysql-server"
    "github.com/dolthub/go-mysql-server/auth"
    "github.com/dolthub/go-mysql-server/memory"
    "github.com/dolthub/go-mysql-server/server"
    _ "github.com/go-sql-driver/mysql"
    )
    func main() {
    db, _ := dbsql.Open("mysql", "root:@tcp(127.0.0.1:3307)/test")
    defer db.Close()
    query := `CREATE TABLE users (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    deleted tinyint(1) unsigned NOT NULL DEFAULT '0',
    PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4`
    stmt, _ := db.Prepare(query)
    stmt.Exec()
    _, err := db.Exec("INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)")
    if err != nil {
    panic(err.Error())
    }
    stmtOut, _ := db.Prepare("SELECT `deleted` FROM `users` WHERE `id` = 1")
    defer stmtOut.Close()
    deleted := true
    err = stmtOut.QueryRow().Scan(&deleted)
    if err != nil {
    panic(err.Error())
    }
    if deleted == true {
    panic("Wrong deleted value")
    }
    }
    var engine *sqle.Engine
    func init() {
    engine = sqle.NewDefault()
    db := memory.NewDatabase("test")
    engine.AddDatabase(db)
    config := server.Config{
    Protocol: "tcp",
    Address:  "localhost:3307",
    Auth:     auth.NewNativeSingle("root", "", auth.AllPermissions),
    }
    s, _ := server.NewDefaultServer(config, engine)
    go s.Start()
    }
    
    `db.Exec("INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)")` will result in error:
    Error 1105: plan is not resolved because of node '*plan.Values'
    
    This pull request should avoid such issue by turning explicit DEFAULT in insert query to implicit.

Closed Issues

  • 1782: Conflict Logging/Resolution for UNIQUE KEYs
dolt - 0.27.3

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 2009: fix concurrent map edit issue
  • 2004: Regression test for issue 1131
  • 2003: Added Dolt Revert
    If any conflicts or constraints are generated then the revert is aborted. Git handles these as a special merge case (with a special git revert --abort command and all). Additionally, if multiple commits are specified then they're all reverted in a single commit (versus Git reversing each commit in a separate commit).
  • 1999: Removed hard-coded html in docs for sql-server command
    Identified by #845
  • 1998: Bats test for return code behavior of checking out current branch
    Fixes #836
  • 1996: Skipped test for error when resetting a renamed table
    This reproduces the failures in #751
  • 1994: Added a test for git config and HOME env var
    Fixes #562
  • 1993: Fix and unskip keyword test
    This fixes #560
  • 1986: Andy/auto increment refactor
  • 1985: go/libraries/doltcore/env/actions/commitwalk: Optimize commitwalk a bit.
  • 1983: Update BATS README
    Add the prerequisites to running bats tests to the README
  • 1982: go/go.mod: Bump fslock.
  • 1976: Cleanup from transaction migration
    First batch of cleanup, getting rid of uses of RepoStateWriter as much as possible.
    To push this farther requires new abstractions that can handle updating the HEAD, head commit, and working roots at the same time, which is the next step.
  • 1974: Optimize merge by skipping tables without edits
    10x speedup for the Nautobot database:
    before:
    % time dolt --prof cpu merge add-ipaddress
    Updating uaimen5cq6jucq3abr85klgj0g594qc1..d3922cbd8fop4ast7ohl9mm4d3dn3632
    extras_objectchange | 1 +
    ipam_ipaddress      | 1 +
    2 tables changed, 2 rows added(+), 0 rows modified(*), 0 rows deleted(-)
    dolt --prof cpu merge add-ipaddress  83.78s user 3.75s system 567% cpu 15.433 total
    
    after:
    % time dolt --prof cpu merge add-ipaddress
    Updating uaimen5cq6jucq3abr85klgj0g594qc1..d3922cbd8fop4ast7ohl9mm4d3dn3632
    extras_objectchange | 1 +
    ipam_ipaddress      | 1 +
    2 tables changed, 2 rows added(+), 0 rows modified(*), 0 rows deleted(-)
    dolt --prof cpu merge add-ipaddress  2.27s user 0.17s system 158% cpu 1.545 total
    
  • 1938: Bh/gen cs

go-mysql-server

  • 519: Fix explicit DEFAULT value in insert query
    It seems that go-mysql-server is not compatible with insert query like:
    INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)
    
    Whereas DEFAULT is just to specify deleted columns should use column default value explicitly.
    The issue could be demostrated using below code:
    package main
    import (
    dbsql "database/sql"
    sqle "github.com/dolthub/go-mysql-server"
    "github.com/dolthub/go-mysql-server/auth"
    "github.com/dolthub/go-mysql-server/memory"
    "github.com/dolthub/go-mysql-server/server"
    _ "github.com/go-sql-driver/mysql"
    )
    func main() {
    db, _ := dbsql.Open("mysql", "root:@tcp(127.0.0.1:3307)/test")
    defer db.Close()
    query := `CREATE TABLE users (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    deleted tinyint(1) unsigned NOT NULL DEFAULT '0',
    PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4`
    stmt, _ := db.Prepare(query)
    stmt.Exec()
    _, err := db.Exec("INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)")
    if err != nil {
    panic(err.Error())
    }
    stmtOut, _ := db.Prepare("SELECT `deleted` FROM `users` WHERE `id` = 1")
    defer stmtOut.Close()
    deleted := true
    err = stmtOut.QueryRow().Scan(&deleted)
    if err != nil {
    panic(err.Error())
    }
    if deleted == true {
    panic("Wrong deleted value")
    }
    }
    var engine *sqle.Engine
    func init() {
    engine = sqle.NewDefault()
    db := memory.NewDatabase("test")
    engine.AddDatabase(db)
    config := server.Config{
    Protocol: "tcp",
    Address:  "localhost:3307",
    Auth:     auth.NewNativeSingle("root", "", auth.AllPermissions),
    }
    s, _ := server.NewDefaultServer(config, engine)
    go s.Start()
    }
    
    `db.Exec("INSERT INTO `users` (`id`, `deleted`) VALUES (1, DEFAULT)")` will result in error:
    Error 1105: plan is not resolved because of node '*plan.Values'
    
    This pull request should avoid such issue by turning explicit DEFAULT in insert query to implicit.

vitess

  • 83: Max/drop pk

Closed Issues

  • 2008: Generational NBS Concurrent Map Writes Panic
  • 579: Support multiple concurrent connections modifying the working set in SQL server
  • 1795: Quickstart install requires executing remote code as root
  • 1823: dolt fetch prints many empty lines to terminal
  • 1817: Add more features to CREATE TABLE SELECT
  • 1772: Should be a parse error
  • 1684: dolt clone errors due to timeout on poor connections
  • 1564: Add commit hash functionality to dolt ls --verbose
  • 1551: dolt sql --multi-db-dir does not ignore broken dolt repositories
  • 1774: write_file and write_pandas raise DoltException on Windows
  • 1520: Certain JOINS Unexpectedly take a lot of time
  • 1609: Binary Bug Asked To Be Submitted By Zachmu (Dolt v0.26.2)
  • 1428: Support CONSTRAINT ... PRIMARY KEY syntax in CREATE TABLE
  • 1388: Dolt : SQL queries : via a JavaScript library!
  • 1383: Bad error message for ALTER TABLE error
  • 1969: feature request: dolt commit revert
  • 1340: DOLT SQL Functions Need Additional Testing for Autocommit
  • 1320: UPDATES in shell that throw errors occasionally return changes (e.g. diff is non-empty)
  • 1319: You can delete every branch in Dolt from SQL
  • 1227: Windows paths not understood by dolt add in Powershell
  • 1173: Reset hard does not delete newly created docs (ex. readme(
  • 1160: dolt sql-server runs on occupied port
  • 1154: Views broken starting in v0.22.7 for coronavirus dataset
  • 1131: Weird Index bug
  • 562: dolt does not respect the $HOME env var
  • 1135: Match MySQL on execution order when missing ORDER BY clause
  • 1114: LIKE returns bad results
  • 1054: dolt_commit_ancestors causes Python 8.0.21 connector to throw unknown error
  • 1006: Accept more date formats
  • 1004: CREATE INDEX requires case-sensitive column names
  • 964: Editing database in a separate process with server running causes weird ODBC connection error
  • 963: benchmark for full table scan
  • 880: Index lookups on timestamp columns don't work
  • 879: Make timestamp and date columns directly comparable with string literals
  • 846: dolt sql-server --help should mention the way databases are specified
  • 898: Don't require quoting AS OF expressions for branch names, hashes
  • 836: Match Git exit codes when checking out current branch
  • 815: Use-Case proposition: Machine Learning Ground Truth Curation
  • 833: mysql-connector-python fails to connect to dolt sql-sever
  • 810: Dropping and creating a table with the same name creates a peculiar status message
  • 808: feature: GPT-3 integration
  • 798: Dolt CLI does not recognize tables created in an active SQL shell session
  • 792: Filters do not seem to be functioning properly on Dolt history tables
  • 501: Add Dolt login hints to permission denied erros
  • 756: From User: No way to dolt fetch/merge/push against sql-server via SQL/odbc
  • 742: dolt should look for .dolt directory in descending directory tree
  • 739: Schema and ColCollection
  • 722: Bug in documentation caused by being in a repo
  • 720: Save query succeeds with dud input
  • 718: dolt push behavior does not seem to match docs
  • 717: dolt schema export doesn't have a commit option
  • 593: dolt schema import assigns sequential tags starting at 0. Sure to cause tag collisions if importing multiple tables.
  • 580: tighter coupling of GitHub release tags and commit graph
  • 560: Valid SQL column names are not handled correctly by dolt sql
  • 532: Long running queries on dolthub.com timeout with confusing UI error message
  • 520: Dolt SQL: Support 'on duplicate key update'
  • 504: Remote requests on sql commands
  • 477: Strange error message when a column has been dropped
  • 464: dolt_docs to conform to other feature tables
  • 442: Panic using dolt push --set-upstream
  • 440: Update with a datetime field not behaving correctly
  • 410: Broken JSON import
  • 405: Sub-select has no access to variable in external scope
  • 397: Panic in SQL when WHERE clause uses computed column
  • 1611: Run a remote Dolt, perhaps several
  • 374: Reordering columns can get table to invalid state (no primary key)
  • 314: SQL shell must be reloaded to write to newly created columns
  • 309: dolt clone has bad error message when not logged in
  • 226: piping large .sql files requires significant memory
  • 141: Dolt SQL shell backspace weirdness
  • 53: Can create empty column name using appropriately formatted CSV
  • 1641: Dolt: dolt login will create new credentials even when I'm already logged in
  • 1615: Git-Dolt: Consider changing pointer file format to JSON
  • 1627: Dolt: For large imports, need some sort of progress output
  • 1633: dolt: dolt push when behind your remote returns 0 exit code. should be 1
  • 1635: dolt: dolt config --list does not respect local overrides
  • 1973: dolt merge --abort and DOLT_MERGE("--abort"); do not reset staging index
  • 1977: Creating Boolean type field in table in dolthub UI fails.
  • 480: any performance benchmark for dolt?
  • 517: can someone pls provide the instructions on how to port rocksdb as storage backend?
dolt - 0.27.2

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 1972: Reset staging index on dolt merge --abort
    fix for https://github.com/dolthub/dolt/issues/1973
  • 1967: Edit dolt merge ret type again
  • 1965: Fixed panic when merging a branch that still contains a table that was deleted in the target
    Also some other panics, and added more merge tests. Cleaned up merge short circuit code, and clarified the behavior when one branch edits a table another deletes during a merge.
  • 1963: expose commit parent refs
  • 1960: Find common ancestor using transitive ref closure
  • 1959: Max/push panic
    found in aktify:
    > dolt push origin ''
    panic: runtime error: index out of range [0] with length 0
    goroutine 1 [running]:
    github.com/dolthub/dolt/go/libraries/doltcore/ref.ParseRefSpecForRemote(0x0, 0x0, 0x7fff638f2e23, 0x0, 0x0, 0x7fff638f2e23, 0x0, 0x0)
    /src/libraries/doltcore/ref/ref_spec.go:64 +0x8ec
    github.com/dolthub/dolt/go/libraries/doltcore/ref.ParseRefSpec(...)
    /src/libraries/doltcore/ref/ref_spec.go:55
    github.com/dolthub/dolt/go/cmd/dolt/commands.parsePushArgs(0x1f4d800, 0xc00009f500, 0xc00009fef0, 0xc000232630, 0xc0000f8880, 0xc00009fef0, 0x2afb310)
    /src/cmd/dolt/commands/push.go:164 +0x2ff
    github.com/dolthub/dolt/go/cmd/dolt/commands.PushCmd.Exec(0x1f4d800, 0xc00009f500, 0xc0003e7e00, 0x9, 0xc00003a0a0, 0x2, 0x2, 0xc000232630, 0x9)
    /src/cmd/dolt/commands/push.go:108 +0x21a
    github.com/dolthub/dolt/go/cmd/dolt/cli.SubCommandHandler.Exec(0x1c67904, 0x4, 0x1c7e4c4, 0x11, 0xc00042ac80, 0x26, 0x26, 0x0, 0x1f4d800, 0xc00009f500, ...)
    /src/cmd/dolt/cli/command.go:165 +0x4c2
    main.runMain(0x0)
    /src/cmd/dolt/dolt.go:296 +0x123e
    main.main()
    /src/cmd/dolt/dolt.go:131 +0x2a
    
  • 1951: go: env/actions/branch: Move and delete branch also update working sets.

Closed Issues

  • 579: Support multiple concurrent connections modifying the working set in SQL server
  • 1966: merge panics when merging a table that was deleted in the target branch
  • 1943: dolt sql cannot execute
dolt - 0.27.1

Published by github-actions[bot] about 3 years ago

Merged PRs

dolt

  • 1957: Allow setting head ref session var, e.g. @@mydb_head_ref to change branches
    Also fixed a bug where it wasn't being updated on a branch change
  • 1954: go/libraries/doltcore/env/actions/commitwalk: Cache commit meta during the topological walk to avoid n^2 work materializing it over and over.
  • 1949: Branch and commit-qualified database names enabled by default
  • 1947: Change force commit to bypass conflicts and constraint violations
    Previously --force only bypassed invalid foreign keys. With the addition of constraint violations, this check has been rendered redundant, and --force seems like it should bypass all blockers on commit anyway.
  • 1946: go/go.mod: Override indirect mongo-driver version to keep vulnerability scanner clean.
  • 1945: Small fixes
    Super small fixes
  • 1941: Vinai/dolt merge ret type
    Fixes #1937
  • 1939: Add Bats Testcase for importing and exporting timestamps
    Addresses https://github.com/dolthub/dolt/issues/1903

go-mysql-server

vitess

  • 82: Max/status
    Status can be used as a constrain name and referenced from a constraint expression.

Closed Issues

  • 1937: Change result type for dolt_merge()
  • 509: Bug where using parameter for limit in prepare statement
dolt - 0.27.0

Published by github-actions[bot] over 3 years ago

Transactions Enabled by default. Dolt now generates Foreign Key constraint conflicts.

Merged PRs

dolt

  • 1935: fix initial gcGen and exit gc early if there is nothing to do
  • 1932: Vinai/push error check
    Addresses #1835
  • 1930: No-op bad alter table auto increment
    Pr does 2 things
    1. Fix panic on linked issue
    2. Actually allow you to modify a column to add an AI
  • 1929: Reworked verify-constraints
    This reworks dolt verify-constraints so that it, by default, writes to the constraint violations map on the table struct, while also only verifying the diff from the working set and HEAD. Due to these changes, I also added parameters that disable table struct updates (--output-only) and also allow you to verify all of the rows (--all, which is a diff against an empty root value to simplify the logic). Lastly, table names are now optional, and omitting all table names will verify the constraints of every table.
    On the SQL side I added verify_constraints([tables...]) and verify_constraints_all([tables...]), which are equivalent to the CLI command with and without the --all parameter respectively except in output, as they return a SQL bool (1 for no violations, 0 for violations). The user has to manually query the system tables.
    When running either version of verify-constraints, we do not clear the previous map. This way we retain previous violations such as unique key violations, which cannot be caught through these functions.
  • 1926: Vinai/updt client
  • 1920: Further attempts to fix ACCESS_DENIED error on Windows
    This attempts to fix the additional errors seen in the following issue:
    https://github.com/dolthub/dolt/issues/1774
    We've previously released a PR (https://github.com/dolthub/dolt/pull/1811) that seemed successful at "fixing" an ACCESS DENIED error that would occur on table import when GC was running and the manifest was being renamed. That PR, however, did not touch any other rename within the codebase, nor any deletions (which can also trigger this bug). The above mentioned issue points to deletions, therefore this PR attempts to fix those plus any others by implementing the same strategy employed by the manifest renames and applying it to every deletion and rename in the project.
    I also investigated the linked issues inside of the above mentioned issue (https://github.com/golang/go/issues/32088 and https://github.com/golang/go/issues/34681). The sharemode issue does not seem to be the exact issue we are seeing here, as adapting the fix repository (https://github.com/alexbrainman/goissue34681) into our code and having every file creation and opening use the updated syscalls did not result in any improvement.
  • 1913: Additional Constraint Violation Fixes
    This PR has a few things. Most notably, we no longer allow fast forward merges if a merge may cause a constraint violation. This decision was discussed internally. Additionally, I've modified the command line messages to properly respond to the presence of constraint violations, which includes blocking some functionality until they have been resolved. Lastly are general fixes and whatnot.
  • 1911: update readme for sql-server
  • 1908: go/libraries/doltcore/merge: resolve.go: Slightly improve BadRow error message when failing a conflicts resolve.
  • 1907: print types in noms show command
    Old output
    map {
    "IP_OP": #mt0robnd5t9nr7gj5gch2eec60u9a8k0,
    }
    
    New output
    Map<String,Ref<Map<Tuple<Union<String,Uint>>,Tuple<Union<>>>>> - map {
    "IP_OP": #mt0robnd5t9nr7gj5gch2eec60u9a8k0,
    }
    
  • 1906: Trying out the new logo
  • 1905: Added a simple shell for exploring a noms dataset
  • 1904: PUSH_LOG env var
  • 1902: Fixed noms manifest assuming V4
  • 1893: go/libraries/doltcore/doltdb: Prohibit deleting the last branch ref in the dataset.
  • 1892: fix: infer_schema treat leading zero numbers as strings
  • 1891: dolt roots command
  • 1890: Enable SQL transactions by default, and begin writing working set to database instead of repo_state.json file
    This change includes migration code to initialize the working set of existing databases that lack a working set db value at runtime.
    It begins to remove the repo state writer / reader abstraction for setting working set changes, but doesn't completely eliminate it. An additional refactoring pass will eliminate it completely once this is in.
    It introduces two new doltdb domain objects:
    WorkingSet: contains the root values and merge state for a working set
    Roots: a simple container object to wrap up the head, working, and staged roots to enable library code that modifies the working set to be purely functional
  • 1889: Add mysql_fdw read path test case
  • 1885: Bh/push pull temptf
  • 1876: Vinai/ai transactions
  • 1870: FK & UNQ Constraint Violation Tests
    Tests for https://github.com/dolthub/dolt/pull/1852
    This only tests the merge logic.
  • 1852: FK & UNQ Constraint Violations
    Implements foreign key and unique key constraint violations.
    Tests may be found at https://github.com/dolthub/dolt/pull/1870
  • 1743: Bh/delete optimizations
    no longer converts from sql.Row to row.Row before deleting.

go-mysql-server

  • 505: Vinai/ai noop
  • 503: Fix json number conversion
  • 502: From unixtime
    Extension of #490
  • 497: Add transactions test
    Adds tests for transactions and auto increment values.
  • 493: Fix Children() function of IndexedTableAccess
    Fix #478

vitess

  • 81: Max/pk constraint
    sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1105, "syntax error at position 205 near 'PRIMARY'")
    [SQL:
    CREATE TABLE experiments (
    experiment_id INTEGER NOT NULL AUTO_INCREMENT,
    name VARCHAR(256) NOT NULL,
    artifact_location VARCHAR(256),
    lifecycle_stage VARCHAR(32),
    CONSTRAINT experiment_pk PRIMARY KEY (experiment_id),
    CONSTRAINT experiments_lifecycle_stage CHECK (lifecycle_stage IN ('active', 'deleted')),
    UNIQUE (name)
    )
    

Closed Issues

  • 579: Support multiple concurrent connections modifying the working set in SQL server
  • 1856: Panic on ALTER TABLE restaurants AUTO_INCREMENT = 2;
  • 1923: Delete's busted in batch mode
  • 1835: Nil pointer dereference when pushing without specifying branch
  • 1819: Table alias bug for subquery
  • 1820: dolt_commit_diff_$tablename breaks if filter clause is not pushed down
  • 1307: error in error message
  • 1288: Some notes and questions about Prolly Trees
  • 752: Rename table then hard reset
  • 773: Merging schema changes
  • 779: date conversion panic
  • 791: Bad error message for duplicate key update
  • 801: Unrelated column rename causes foreign key constraint failure
  • 817: Weird error message for AS OF when text is passed without quotes
  • 624: A dolt clone file://... of an invalid file remote does not error.
  • 659: NULL values written to Noms tuple
  • 647: Column ordering is wrong for select * of a subquery.
  • 680: Panic on UPDATE that uses a JOIN
  • 876: Dolt sql shell quits when the user pushes delete key on a blank line
  • 493: Can't update a non-null column that has a null value
  • 431: Dolt Schema Export/Import can't be used together?
  • 450: Dolt fetch/branch create identical/hidden branches?
  • 484: Merge stats are not accurate
  • 499: templating bug in error message
  • 1636: dolt: dolt config --global --add currently succeeds
  • 231: Querying large tables using order by uses up memory and doesn't complete
  • 1063: Naked DELETE does not trigger ON DELETE triggers
  • 1915: Rebase?
  • 1614: Dolt: SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP()) Fails
  • 398: Panic in SQL when calling functions on *
  • 459: Must test dolt sql-server in bats
  • 516: Datagrip cannot connect
  • 582: SQL regressions in 0.16.0
  • 631: Support for foreign keys
  • 640: MySQL Performance Benchmark
  • 853: Add an -a option to Dolt commit to commit all tables in the working set
  • 893: push to google storage gives me a strange error
  • 954: Multi table joins are not performant
  • 1055: [Bug Report] Segfault When Running LS From Self-Compiled Dolt
  • 1069: Certain naked function calls not supported in Dolt
  • 1091: Session variables need to be lower cased in config
  • 1092: segfault
  • 1348: Foreign key violation error message includes confusing tag number
  • 1420: Implement a dolt_working_heads system table.
  • 1511: Large IN clauses against indexed columns should be performant.
  • 1775: Foreign key violation error when inserting NULLs to foreign key columns
  • 1780: dolt sql-server error when using PostgreSQL mysql_fdw against it
  • 1773: Foreign key constraints not enforced in SQL MERGE()
  • 1862: Multi Table Update does not work in Dolt
  • 1816: Update GoLang version
  • 1838: cat / diff leave output colored after SIGINT
  • 373: dolt_history_* and dolt_diff_* tables don't work for tables created in the working set
  • 430: Merge Panics on table add/drop
  • 448: 2/3 examples in dolt/samples don't work
  • 292: Merging can create two columns with the same name
  • 257: dolt table import --pk option, dolt schema import --pks option
  • 253: dolt 0.12.0 push error: invalid cross-device link
  • 252: Support regular files (with regular Git semantics)
  • 234: Not able to change column data type on existing data set
  • 153: Dolt: Segmentation fault on pull
  • 151: Dolt should provide a way to ignore unsupported-but-known SQL commands instead of returning an error.
  • 150: Dolt does not correctly prevent conflicting tag numbers from being reused.
  • 136: Sql create table silently drops unrecognized columns from primary key
  • 102: Import table from CSV does not by default add "not null" constraints to inferred primary keys
  • 59: Incorrect output when trying to pull from an empty remote
  • 56: dolt table create --help is completely wrong
  • 51: dolt distinguishes the type of an argument based on the presence of an extension
  • 201: create table without primary key in schema causes unrecovered panic
  • 244: Nightly regression test for dolt SQL correctness
  • 1631: Dolt: enforce SQL table naming conventions in dolt table create
  • 1632: dolt: got a panic when doing a merge from a remote with conflicts
  • 1634: dolt: push and pull a remote repository should say "Already up to date"
  • 1630: Dolt: allows importing of non-UTF-8 characters
  • 1629: Dolt: Says failed to merge schemas when changing strings to ints/floats
  • 1628: Dolt: Schema diff no worky for changing primary keys
  • 1626: Dolt: Panic on .psv import
  • 1625: Need to reserve tag numbers on drop column
  • 1624: ensure nullability for primary key columns
  • 1622: Dolt: Diff with two revisions is backwards
  • 1621: Dolt: Improve error message for bad diff arguments
  • 1620: SQL conversion mode for CSV import
  • 1619: Dolt: dolt status panics on an empty repo
  • 1618: bad formatting in some help text
  • 1868: Dolt table export to csv's with Json fields is not json encoded strings.
  • 1617: Store default column values in schema
  • 1616: Dolt: dolt clone dies with ugly error when cloning a remote just created on DoltHub
  • 1897: Addition of Docker image
  • 1638: Dolt: Bad error on excel import of non excel file
  • 1639: Dolt: Bad error message for invalid schema on json import
  • 1637: Dolt: Funky error message for duplicate row insert
  • 1640: Dolt: Can create a table with a blob type. Not supposed to be able to.
  • 1653: Dolt: dolt table select --hide-conflicts does not work
  • 1644: Dolt: Dolt table export does not quote lists with commas
  • 1646: Dolt: Disk space gets bigger on dolt table import when you don't commit the change
  • 1651: Dolt merge murdered my table?
  • 1652: Should Diffs handle schema changes better
  • 1655: documentation/errors regarding --schema
  • 1650: --ours nor --theirs useful in conflict resolution
  • 1649: Dolt: Feature Request: dolt table import -c --pk=auto
  • 1648: Dolt: Weird error message on Dolt diff when changing schema
  • 1647: Dolt schemas should use "type" instead of "kind"
  • 1645: Dolt: Duplicate column name in put-row puts last. Should error?
  • 1643: Dolt: Undetected Schema merge conflict
  • 1642: Dolt: Name a table and branch the same, dolt checkout ambiguous
  • 1654: Weird dolt import bug
  • 1225: VALUES not accessible by variable name in ON DUPLICATE KEY UPDATE
  • 1900: table alias bug
  • 1855: dolt push of hospital-price-transparency-v2 segfaults
  • 1896: dolt sql-server gives diffrent data than running commands on box
  • 477: Cannot convert JSON number to number
  • 478: Cannot transform IndexedTableAccess nodes
  • 172: Support for prepared statements
  • 474: JSON string comparison seems broken (change in behavior from v0.6.0 and v0.10.0)
dolt - 0.26.11

Published by github-actions[bot] over 3 years ago

Merged PRs

dolt

  • 1883: read tuple types to fix seen-structs issue
  • 1880: Improve Error message when merge fails because of different primary keys
    This is much more descriptive IMO, but lmk if you have suggestions for how to word it.
  • 1879: Rewrite jq test
  • 1875: go/cmd/dolt/commands/diff.go: Return VerboseError rather than panic
    Fixes #1874
  • 1873: Fix csv export types
    • JSON strings were not serialized in CSV writing
    • convert Dolt rows to SQL Rows, and lean on the SqlColToStr to correctly parse values to strings.
    • manually handle nil values to match bats tests CSV export format
  • 1864: Andy/database provider

go-mysql-server

  • 488: Modify ReadOnlyDatabaseHarness
  • 487: Andy/read only database
  • 486: Andy/database provider
    Adds a DatabaseProvider abstraction, allowing integrators to add their own logic to database resolution
  • 485: sql/plan: {update,delete}.go: Correctly return an error for unsupported UPDATEs and DELETEs against joins and subqueries.

Closed Issues

  • 1874: Panic when diffing 2 tables with same name and different primary key sets
dolt - 0.26.10

Published by github-actions[bot] over 3 years ago

99% SQL Correctness by SQL Logic Test and major write performance improvement to 7X MySQL on writes as measured by sysbench.

Merged PRs

dolt

  • 1857: Andy/cmp chunk write panic fix
  • 1847: go/libraries/doltcore/sqle/sqlfmt/schema_fmt.go: Add AlterTableModifyColStmt
  • 1845: Added bats tests for dolt log --merges, --parents, and --min-parents
    Tested these options added in: #1831
  • 1842: reset output colors before exiting when interrupt encountered

go-mysql-server

  • 483: added JSON_OBJECT() sql function
  • 482: Vinai/fix bit type parsing
    Fixes parsing for bit type

Closed Issues

dolt - 0.26.9

Published by github-actions[bot] over 3 years ago

Merged PRs

dolt

go-mysql-server

  • 473: sql/analyzer: indexed_joins: Use indexes in more cases where join condition includes AND ... IS [NOT] NULL.
  • 472: Fixed a bug involving aliases in filter pushdown, and made partial pushdown of filter predicates possible
  • 471: sql/analyzer: Add support for using indexes in joins where ON condition includes top level OR clauses.
    This adds support for concatenating the results from two more index lookups against a subordinate table in order to find the rows matching a join condition structured as indexed_col = ... OR different_indexed_col = ....
  • 469: add ctx to WithFilters
  • 468: Parse empty bytes
    Fixes: https://github.com/dolthub/dolt/issues/1818

Closed Issues

dolt - 0.26.8

Published by github-actions[bot] over 3 years ago

Merged PRs

dolt

  • 1813: go/utils/publishrelease: install.sh: Install x86_64 binaries on MacOS M1.
  • 1812: go: fkconstrain: check: Correctly handle types.Null values in tuples being checked.

go-mysql-server

  • 467: Add FIRST_VALUE
  • 465: Improve lock statement parsing
  • 464: sql/analyzer: finalize_unions: Fix bug where we avoided finalizing union query plans.
  • 461: json array contains single element, and conversion fixes
    fixes json_contains issue where checking a single element in an array fails, and conversion from json to string.

Closed Issues

  • 1802: LOCK TABLES errors out on a mysqldump