dolt

Dolt – Git for Data

APACHE-2.0 License

Downloads
2.4K
Stars
17.1K
Committers
143

Bot releases are visible (Hide)

dolt - 0.26.7

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

Merged PRs

dolt

  • 1799: Bump gms
  • 1793: thread context through to function creation in dolt
  • 1789: Add pr to test found rows on UPDATE
  • 1784: bump gms and fix issues
  • 1770: Add skipped bats test for blanks (nulls) failing on csv import/update
  • 1769: Expand dolt reserved namespace
  • 1766: Vinai/create temp tables
    This pr allows for the creation of temporary tables.
  • 1765: /{.github,go}: bump min go version to 1.15
  • 1763: Transaction tests and bug fixes for savepoints

go-mysql-server

  • 459: Add transaction status flag to handler
  • 457: Datetime fixes
  • 456: Fixed MEDIUMINT over the server not returning negative values
    Super simple fix. We should make some Script tests that work over the server, but we can do that at some later point.
  • 455: thread context through to function creation
  • 454: sql/analyzer/aliases.go: getTableAliases: Appropriately handle scope in recursive calls.
  • 453: Fix functionality for CLIENT_FOUND_ROWS
  • 450: Vinai/wire protocol updates
  • 448: initial comparison and like calcs based on collation
    Currently the LIKE operator always does a case sensitive match. This should be based on the collation. This puts initial support in for doing per collation comparison and like calculations. Currently the comparison changes are disabled as the codebase uses the compare function for more than just WHERE clause calculations which sometimes need to be case sensitive.
  • 447: sql/analyzer: Fix index search for certain expressions which were not using table aliases appropriately.
  • 445: Allow limits and offsets to use value args (? in prepared statements)
    This fixes #439
  • 442: Vinai/temporary tables
  • 441: Test fixes for savepoints
  • 440: /{.github,go}: bump min go version to 1.15

vitess

  • 79: Add transaction flag
    Signed-off-by: Vinai Rachakonda [email protected]
  • 78: Add the found rows connection flag to the protocol
    Signed-off-by: Vinai Rachakonda [email protected]
  • 76: Disallow non integer values for limit and offset, allow value args

Closed Issues

  • 443: Support Insert opeartion for sqlx.
  • 439: Error: Unsupported feature: LIMIT with non-integer literal
dolt - 0.26.6

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

Merged PRs

dolt

  • 1753: Transaction tests for dolt, and couple small bug fixes for transactions
  • 1749: remotestorage: Add some simple fetch/pull metrics instrumentation.
  • 1748: Vinai/improve persisting super schemas for COMMIT
  • 1746: Added mini rollback functionality for statements that error
    This fixes https://github.com/dolthub/dolt/issues/1738
    Previously, whenever we failed a statement we never wrote a new root, however with the addition of transactions, we now update the root on both success and failure. As a result, an incorrect behavior is now surfacing in more interfaces.
    The bug is that any core data manipulation statement (INSERT, REPLACE, UPDATE, DELETE) writes to the table editor as rows are modified. However, if one of the rows throws an error (such as from a duplicate key or foreign key violation), the entire statement's work is supposed to be discarded, but that wasn't happening. This adds that functionality by updating the interfaces (https://github.com/dolthub/go-mysql-server/pull/429) to denote the start and end points of a statement, along with alteration of the edit accumulators. There is a performance penalty, but it seems to be relatively small (<2% regression on local comparisons).
    My true preference would be a more major rewrite to the table editor, reducing the operations to just two (Insert and Delete, similar to the current IndexEditor), and changing the edit accumulator system to a branching model (with one "central" editor accumulator and smaller accumulators focused on only that specific statement, where changes are "merged" back to the "central" accumulator). It would also be much clearer and cleaner than the PR code, and perhaps a tad faster than the current code.
    But that's for the future.
  • 1744: Mark the session state clean upon init
    I don't love this... it's meant to address this failure in dolthub:
    https://github.com/dolthub/ld/pull/6605
    Read-only is also kind of a bad name, it still writes to the chunk store if you issue a write query, it just won't call WriteRootValue when a transaction is committed
    Thoughts?
  • 1741: fixes infinite loop
    A deadlock can occur when the chunk size is greater than the maximum chunk size and a chunk with children gets removed, but it isn't removed from the withBufferedChildren map.
  • 1740: Removed flushing on foreign key checks for tables with pks
    Currently foreign keys necessitate a flush whenever you want to check a table editor's indexes for a partial key. With the recent index editor rewrite adding an efficient way to check partial keys, we can extend that and use it for foreign key checks as well.
  • 1739: Improve fetch and pull performance and reliability.
    Allow URLs to be refreshed when signing credentials are expired or revoked. Increase small fetch concurrency. Limit hedged downloads to one per fetch. Avoid hedging large downloads for now.
  • 1737: Fix tests for changes in go-mysql-server, upgrade same

go-mysql-server

  • 437: /.github/workflows/format.yml: enable autoformatting
  • 435: /.github/workflows/bump-dependency.yaml: remove working dir, doesnt exist
  • 434: Rewrote transaction tests to be much more succinct, and added several more
  • 433: Fixed non-deterministic test query
  • 432: Repro test case for ErrFieldMissing bug
  • 431: Fixed foreign key errors in NTC test setup
  • 430: Fixed bug in field indexes related to pushdown of indexes in subqueries
  • 427: Initial percent_rank fn
    • percent_rank function implemented, which is basically the step function quantile of column-sorted rows within a partition.
    • moved helpers to window/window.go
    • created WindowExpression interface to facilitate helper function re-use (there are multiple ways of doing that, extra interface isn't super necessary but made sense to me at the time)
      todo:
    • bats with great expectation specific query
  • 426: added ErrIndexOutOfBounds test
  • 425: Bug fixes for date comparisons
    This fixes https://github.com/dolthub/dolt/issues/1572
  • 424: Transaction support
    This change:
    • Moves a bunch of transaction and other session management code out of Handler into Engine
    • Introduces a new set of tests around transactions
    • Fixes the error message for duplicate key violations
    • Removes AsyncNode and related code
    • Eliminates duplicate query parsing
  • 423: Vinai/distinct expressions
    This pr does the following
    1. Fix incorrect behavior with AVG
    2. Enable the use of DISTINCT within aggregation eg. SUM(DISTINCT )
    3. Enables the use of DISTINCT on aggregation that is grouped

vitess

  • 74: add parsing for create temporary table

Closed Issues

  • 1738: Session corrupted when certain self-referential foreign key constraint violated
dolt - 0.26.5

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

Merged PRs

dolt

  • 1728: go/cmd/dolt: commands/{fetch,pull}: Turn off chunk caching on source DB when pulling and fetching.
  • 1725: go/libraries/doltcore/remotestorage: Improve URL refresh on download retries further.

go-mysql-server

  • 422: Fix for hanging joins when the secondary table is empty using an in-memory strategy
    This fixes #222
  • 421: fix bug in join search
  • 420: Update sqlogic test harness and bump sqllogic dependency
    This pr enables users of gms to run and parse the sqllogic harness against all of the sqlogictests (with filtering). It also bump the sqllogic dependency
  • 419: [WIP]: LastIncrementId and name resolution collision fix
  • 418: Add ISNULL(expr) and compatible with Navicat Premium
    When I use Navicat Premium 15.0.28 to design tables.
    Get error: 1105 - function: 'isnull, maybe you mean ifnull?' not found
    After I implement ISNULL(expr).
    Get error: 1105 - column "PARTITION_DESCRIPTION" could not be found in any table in scope
    This RP is fixed this problem.

Closed Issues

  • 1723: Hang for join
dolt - 0.26.4

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

Merged PRs

dolt

  • 1716: Refresh signed URLs on fetch/pull to allow long-running fetches to succeed.
  • 1707: Reuse column tags when recreating identical tables in the working set.
  • 1706: Performance improvement: get rid of unnecessary and complicated table cache.
  • 1705: Rudimentary support for SQL ROLLBACK.

Closed Issues

  • 1712: Autocommit Server Status flag not set correctly
  • 1711: sql import deadlocks
dolt - 0.26.3

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

Merged PRs

dolt

  • 1688: integration-tests/bats: Add some simple bats tests to views in sql-server multi-head mode.
  • 1681: Fixed occasional panic from nil VRW on BLOB pks
  • 1667: Add dolt log functionality
  • 1666: Update some bats tests
  • 1665: Beginnings of SQL transaction support.
    Only START TRANSACTION and COMMIT are supported.
    Needs SAVEPOINT, ROLLBACK.
  • 1663: Fixed index editors getting to an invalid state on error.
  • 1658: Fixed index name handling & self foreign keys on commit.
  • 1608: Improve performance of GC.

go-mysql-server

  • 410: Commit transactions without beginning them, to support commit without a selected database
  • 409: Add the partitions table
    Adds the empty partition table
  • 404: sql/analyzer: Push filters under SubqueryAliases which they apply to.
    This allows optimizations to be applied to the filter clauses within the SubqueryAlias node, including pushdown and index lookup.
  • 403: sql/analyzer: Split analysis of subqueries so that once-after rules are applied uniformly.
  • 402: Added _binary support & REGEXP_LIKE
    Removed REGEXP_MATCHES as it does not exist in MySQL. It is a PostgreSQL function.
  • 401: Add the json_contains function.
  • 400: Support for transactions. Start transaction and Commit implemented so far, as well as @@autocommit handling
  • 398: Fixed view test script
  • 397: Changed default handling & delay fk table resolution
  • 396: /server: Unwrap netutil.ConnWithTimeouts in pollForClosedConnection
  • 395: Refactor nil check handling in check constraints.
  • 394: Fixed bug that only allowed some select statements as view definitions
  • 392: Fixed REPLACE logic to now match MySQL
    Previously we thought that REPLACE was a DELETE then INSERT, but this is not the actual order that MySQL takes.
  • 391: Install a format checker script and workflow.
  • 390: Adds the key column usage table
    https://dev.mysql.com/doc/refman/8.0/en/information-schema-key-column-usage-table.html

vitess

  • 73: go/vt/sqlparser: Follow MySQL in making ORDER BY/LIMIT on left hand of UNION a syntax error.
  • 72: Added savepoint and friends

Closed Issues

  • 1670: dolt merge-base
  • 1662: Bug: sql-server fails with TablePlus while introspecting schema due to UUID
  • 1659: GCP Authentication Fails on Google Colab
dolt - 0.26.2

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

Merged PRs

dolt

  • 1598: gc changes for import
    New dolt table import flag --no-gc, and parameter tuning to run gcs less during import.
  • 1593: Fixed system variables
  • 1589: Fixes already on same branch error
    Addresses the issue here #1588
  • 1584: /go/libraries/doltcore/{doltdb, env/actions}: don't swallow commit error

go-mysql-server

  • 389: Add information_schema.table_constraints
  • 387: Use a reliable source for the client net.Conn when running the client disconnect detection logic.
  • 385: Fix deadlock with exchange node go routines
    This fixes deadlocks in exchange node go routines which can happen when the exchange node is closed before all the data is read as occurs with a query that includes a limit clause. This also can occur if the context is canceled. These deadlocked go routines will retain references and prevent garbage collection.

vitess

  • 71: go/mysql/conn.go: Expose underlying net.Conn of the mysql.Conn.
  • 70: Changed SET syntax
  • 69: Added ALTER COLUMN DEFAULT
dolt - 0.26.1

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

This release contains performance and correctness improvements.

Merged PRs

dolt

  • 1581: more conservative name regex update
  • 1580: Better error message for starting a server on a port in use
  • 1567: Performance improvements around unmarshalling schemas.
  • 1560: store/perf/suite: Improve testing for errors.
  • 1557: Add Max Connections flag for Dolt SQL-Server
  • 1552: /integration-tests/compatibility: Added compatibility tests, including large tables
  • 1549: Extended naming of foreign keys
  • 1548: Fixed FK issue #1546
  • 1547: cmd/dolt/commands: fix dropped errors in diff and ls.

go-mysql-server

  • 382: Fixed system variables
  • 379: sql/plan/if_else.go: Handle conditional expressions evaluating to null as false.
  • 378: sql/{plan,analyzer}: Add hash lookup functionality for equality condition joins on already cached results.
  • 377: sql/plan/join.go: Improve correctness and testing of right joins with scope rows available.
  • 376: Bug fix: check constraints were being marked invalid for tables with upper case letters
  • 375: Improve an error message
  • 372: Improve TestModifyColumn tests
  • 371: Added ALTER COLUMN DEFAULT

vitess

  • 68: Support multiple statements per ALTER
  • 67: fix separator parser for Group_Concat

Closed Issues

  • 1569: Foreign key constraints inappropriately being enforced on DELETE of non-unique values
  • 1563: Quickly find the latest commit that's touched a table
  • 1546: Drop then add a table with a foreign key with the same name gives spurious error
dolt - 0.26.0

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

This release adds support for the CHECK constraint, and includes various bug fixes and performance improvements.

Databases written by this release of Dolt cannot be read by earlier versions. Earlier versions must upgrade to at least this version. This is a failsafe mechanism to prevent loss of schema information on write caused by earlier Dolt versions not understanding how to persist newer schema constructs (CHECK constraints in this case).

Merged PRs

  • 1541: /integration-tests/compatibility: Split Compatibility tests into forward and backward
  • 1540: Fixed TINYBLOB errors with specific inputs
    Similar to https://github.com/dolthub/dolt/pull/1528, except dealing with the kind. Still surprised this was not caught earlier, seems like it should be completely broken. Some test repos have had thousands of rows with a BLOB-type column and they all worked without issue.
  • 1538: Fixed UNIQUE index violations causing duplicate key errors
  • 1537: Support for CHECK constraints
    This is missing:
    1. Bats tests
    2. Feature version bump
  • 1536: libraries/doltcore/tables: fix two subpackage dropped errors
  • 1534: /go/libraries/doltcore/sqle: Fix SELECT INTO ... bug for AUTO_INCREMENT columns
    Fixes: #1491
  • 1533: replace io.Copy to improve clone perf
    Fixes https://github.com/dolthub/dolt/issues/1530 by replacing a call to io.Copy with a new function writeTo. Existing reader implementation replaces read calls to HTTP requests and larger read sizes here has a very big impact on Perf.
    takes gcs clone of 600MB repo from
    real    28m2.168s
    user    0m21.606s
    sys     0m15.104s
    
    to
    real  0m17.885s
    user  0m1.607s
    sys   0m2.443s
    
    has similar performance improvements for AWS repos and has small Dolthub clone perf improvements.
  • 1532: couple changes for aws errors
  • 1531: go/go.mod: Bump go-mysql-server.
  • 1528: Fixed some VARBINARY strings reading their length incorrectly
    Some VARBINARY strings were misreading their length, leading to other values reading garbage and erroring. Not sure how some VARBINARY strings were reading correctly, but this fixes the issue. Was caught by the fuzzer, but I stripped out the other queries for the bats test (still reproduces without them).
  • 1527: libraries/doltcore/fkconstrain: fix dropped errors
    This fixes two dropped error variables in libraries/doltcore/fkconstrain.
  • 1526: Fix AsyncDiffer wrong context for cancelation bug.
  • 1525: Andy/faster tag validation
    Previously we fully validated column tag uniqueness on every call to doltdb.PutTable(). This is a huge perf hit on the write path. We can safely eliminate this validation in the case where the old and new table schemas have the same types.Ref.
  • 1524: delete batches
  • 1523: Unskipped many engine plan tests, changed how skipping works
  • 1521: fixed dropped errors in libraries/doltcore/env
    This fixes dropped errors in libraries/doltcore/env and libraries/doltcore/envtestutils.
  • 368: Improvements and corrections for check constraints
    Biggest changes:
    1. Better validation
    2. Checks in CREATE TABLE statements work as expected now (poor validation before)
    3. ALTER TABLE DROP CONSTRAINT works as expected (doesn't assume a foreign key)
    4. Unnamed checks are expected to be named by integrators now
  • 365: Fix SELECT INTO ... bug for AUTO_INCREMENT columns
  • 363: sql/expression/case.go: Type a CASE expression by considering all its branches.
    Implements a lot of the typing behavior described here:
    https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#operator_case
  • 362: Give correct error code for duplicate database.
    Return a Vitess error with code ERDbCreateExists(1007) when trying to create a database that already exists
  • 360: Brought sql.PushdownTable back to memory.Table
    And made its implementation not reduce its schema (same as dolt).
    sql.FilteredTable has significant issues, so that one is still disabled by default.
  • 359: Added IsGenerated to sql.Index

Closed Issues

  • 1535: Can I install dolt without sudo?
  • 1530: Slow cloning from google storage
  • 361: memory database with JSON column cannot be updated
dolt - 0.25.1

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

Added Features

  • Support for json type.
  • Support for partial indexes for multi-column indexes.

Merged PRs

  • 1519: Added generated partial indexes for multi-column indexes
    This adds partial indexes to composite (multi-column) indexes. That means that INDEX (v1, v2, v3) now allows for partial matches, so accessing v1 and v1, v2 will make use of the index.
  • 1517: Vinai/tonic fixes latest
    Checking in a small bug fix that was found when running tonic commands.
  • 1514: /go/libraries/doltcore/schema/typeinfo: Removing feature flag for JSON type
    Removes feature flag for json type, making it available to users.
  • 1513: /go/libraries/doltcore/sqle/{integration_test, json}: Test large JSON docs
    Final checks before releasing JSON:
    • Round trip large JSON documents
    • Assert JSON values are structurally sharing
  • 1510: libraries/doltcore/env/actions: error handling
    This fixes dropped errors in libraries/doltcore/env/actions and replaces use of assert.NoError() with require.NoError().
  • 354: Fixed procedure params not being used in INSERT/REPLACE values
    Fixes https://github.com/dolthub/dolt/issues/1496
dolt - 0.25.0

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

This release fixes several bugs in query execution, and adds several new features:

  • FOUND_ROWS(), ROW_COUNT(), and LAST_INSERT_ID() information functions are now supported
  • dolt checkout . now works (same as dolt reset --hard)
  • Column aliases supported for subqueries and VALUES derived tables

Merged PRs

  • 1508: add the tag name variable for the brew release
  • 1507: Added DELIMITER newline termination
    Fixes https://github.com/dolthub/dolt/issues/1495
    DELIMITER had to be terminated by the previous delimiter, similar to other statements. However, MySQL does not have this requirement (a newline is adequate for termination). This PR removes this requirement.
  • 1505: Upgraded go-mysql-server and vitess, and unskipped a couple tests
  • 1504: Andy/json diff merge
    Implements diff and merge on the JSON type. The JSON type is still behind a feature flag
  • 1503: /go: Bump GMS
    • bump go-mysql-server
    • skip 2 queries
    • delete stale Noms perf tests
    • updated dependency github.com/shirou/gopsutil
  • 1502: libraries/doltcore/rowconv: error handling
    This fixes dropped errors in libraries/doltcore/rowconv and replaces assert.NoError() with require.NoError() in tests.
  • 1501: go/go.mod: Bump vitess, pick up trailing spaces sql-server fix.
  • 1500: Fixed dropped errors in libraries/doltcore/row
    This fixes dropped errors in libraries/doltcore/row, as well as replacing assert.NoError() with require.NoError().
  • 1499: /go/libraries/doltcore/dtestutils: use Format_LD_1 in CreateTestEnv Switches to using Format_LD_1 instead of Format_7_18 in CreateTestEnv(). This covers most doltcore tests, including enginetests.
    One major difference between LD_1 and 7_18 is types.Float serialization format.
  • 1498: Vinai/dolt checkout period
    Adds dolt checkout . functionality.
  • 1494: Fix dropped errors in libraries/doltcore/doltdocs
    Fixes dropped errors, changes tests to use require.NoError().
  • 1493: go/utils/publishrelease/buildbinaries.sh: Use CGO_ENABLED=0 to statically link release binaries on Linux.
    This lets Dolt release binaries work on Linux distributions that do not use glibc, like Alpine.
    Fixes #1489.
  • 353: Column aliases for subqueries
    This depends on https://github.com/dolthub/vitess/pull/66, so tests won't pass yet (but pass with a local override)
  • 352: switch sql.Boolean columns in enginetests typestable to use 0 instead…
    … of false
  • 351: sql/analyzer: Make column resolution more reliable when a subquery alias is under a table alias node.
    Using a common table expression (and probably using a view), you can alias a common table expression. Some analyzer steps, and in particular prune_columns, assume the subquery alias is the name that the parent schema sees. This adds an analyzer pass that flattens nested table aliases and a table alias on a subquery alias into the bottom-most node.
  • 350: Fixed a number of bugs in aliases and name resolution revealed by recent changes to the parser
    Also added output schema verification to engine tests, and wrote some tests of same.
  • 349: ROW_COUNT(), FOUND_ROWS() and LAST_INSERT_ID()
    Implemented ROW_COUNT(), FOUND_ROWS() and LAST_INSERT_ID(), as well as support for SQL_CALC_FOUND_ROWS with a LIMIT clause.
  • 347: Vinai/binary func
    Adds the BINARY operator to gms
  • 66: Support for subquery / values column aliases
  • 65: go/vt/sqlparser/ast.go: SplitStatementToPieces: Avoid appending an empty "query" when splitting an incoming ComQuery.
  • 64: Strip quotes and backticks from select expressions

Closed Issues

  • 1506: Long term assurance and insurance against liquidation
  • 1495: DELIMITER command does not work with non-interactive stdin
  • 1490: Can I just config dolt just as git?
  • 1489: how can i install dolt base on alpine image? failed...
dolt - 0.24.4

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

This is a patch release, fixing several bugs and improving performance.

This release also enables the logging of bad rows during file import, and introduces the VALUES ROW(...) SQL syntax

Merged PRs

  • 1487: Properly reverts the version string on Dolt as automation does the fix
    One day I will get automation right on the first try
  • 1485: 0.5
  • 1483: bump version string
  • 1481: libraries/doltcore/doltdb: fix dropped errors
    This supersedes #1465
  • 1479: Add few doltpy commands that broke with dolt compatibility changes
    Some bats that if failed indicate a doltpy incompatibility. The tests could be more involved, but the goal here isn't row-output correctness.
    This list will grow as I rewrite more dolt commands to use SQL features.
  • 1477: go/go.mod: Bump go-mysql-server.
  • 1476: bump dolt version
  • 1475: Vinai/log bad rows
    This pr adds the functionality of logging bad rows to the cli. Since these rows are logged StdErr the rows can be sent to a file as well.
  • 1474: go/libraries/doltcore/sqle/async_indexed_lookups.go: Fix leaking of results from one index lookup to another.
    When a query with an index lookup as a LIMIT, it's possible for the result
    iterator to be closed before all the index results have been streamed. When
    that happens, we can end up with queueRows goroutine which is enqueuing rows
    into a ring buffer that is going to be used by a different query later.
    This PR adds two mechanisms, one to stop the wrong results from being seen and
    to cancel the unnecessary work.
    1. RingBuffer gets an epoch, which is incremented on each Reset(). If a given
      Push does not match the current epoch, then nothing is added to the ring
      buffer.
    2. queueRows is run with a cancelable (sub-)Context, and that Context is
      canceled when the corresponding iterator is Closed().
  • 1472: Vinai/merge squash
    Introduces SQUASH() which merges a branch into the working set.
  • 1471: panic fix for 0 rows resolved
    fix panic that occurs when a delete query against a conflict table affects 0 rows
  • 345: Support for VALUES ROW(...) derived tables

Closed Issues

  • 1470: Can not connect using mysql client
dolt - 0.24.3

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

This release adds partial support for the SIGNAL statement, along with the ability to declare conditions using DECLARE .. CONDITION. In addition, numerous performance improvements and bug fixes have been added.

Merged PRs

  • 1469: Bump gms
  • 1467: Bug fix for active_branch() function
  • 1462: New select expression behavior
  • 1461: Tim's edits to quick start guide
    Just edited the lead in to be a little more hype.
  • 1458: Docs expansion
    Added a quickstart guide, FAQ, and roadmap.
  • 1457: use left right diff instead of top down due to bugs in top down
  • 1456: store/marshal: dropped error and test refactor
    This picks up a dropped error instore/marshal, changes the tests to use require.NoError instead of assert.NoError, and prunes some dead code.
  • 1455: Vinai/more dbeaver stuff
    This pr unblocks basic dbeaver functionality.
  • 341: JSON_OBJECTAGG
    This pr adds JSON_OBJECTAGG functionality: https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_json-objectagg
  • 340: Vinai/UUID
    This pr adds UUID support cc: https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_is-uuid
  • 339: Wrap all select expressions in aliases with their original string expression
    This makes the result set schema exactly match the select expressions in the query.
  • 338: Vinai/dbeaver fixes
    This pr allows for queries like CREATE TABLE x.table(pk int) when the mysql client is not set to x.
  • 337: Vinai/more table status fixes
    This pr fixes some mistakes in show table status where
    1. memory/table.go did not implement StatisticsTable
    2. ShowTableStatus is a part of Engine InformationSchema Tests
  • 335: Updates to SHOW TABLE STATUS
  • 63: VALUES statements
  • 62: Added SQL_CALC_FOUND_ROWS keyword
  • 60: add better parsing for show table status
dolt - 0.24.2

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

Improvements to JOIN correctness and performance.

Merged PRs

  • 1449: Remove samples
    The samples stored in samples went stale. We will come up with a better place to store example Dolt usage that is not the root of our repository.
  • 1446: Add sponsor link to Dolt repository on GitHub
  • 1442: Added limited self referential foreign key support
    This only adds support for self referential foreign keys that consist of a single column, and also where the column with the constraint comes after the referenced column (in schema order).
  • 1440: Update Bats README
  • 1433: Fixed verify-constraints reporting NULLs as errors. Fixes https://github.com/dolthub/dolt/issues/1432
  • 1431: improved error message when committing without a name or email set.
    More granular error reporting for when a user or email is not provided.
  • 334: Fixed procedure parameters missing in subqueries
  • 333: SHOW CHARSET & SHOW ENGINE
  • 329: sql/analyzer: join_search: Update indexed join search to respect structural requirements on left and right joins.
  • 331: sql/{plan,analyzer}: {join,indexed_join}: Update join logic to work within subqueries when query scope is non-empty.
  • 59: Add vitess support for show charset

Closed Issues

  • 1432: Creating commit for bounty PR did not validate foreign key constraints
dolt - 0.24.1

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

For applicable release notes, see the previous release version.

dolt - 0.24.0

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

This release adds alpha support for the following SQL features:

  • Stored procedures
  • Common table expressions (WITH clause)
  • LOAD DATA statements

Merged PRs

  • 1425: Upgraded go-mysql-server
  • 1419: Expose Load data and add a bunch of tests.
    This PR exposes LOAD DATA to Dolt. This is a relatively new path to import data into a dolt repo.
  • 1411: libraries/doltcore/schema/typeinfo: fix dropped errors
    This fixes a dropped test error and a dropped code error in libraries/doltcore/schema/typeinfo.
  • 1410: libraries/doltcore/schema/alterschema: fix dropped errors
    This fixes dropped test errors in libraries/doltcore/schema/alterschema.
  • 1409: libraries/doltcore/rebase: fix dropped errors
    This fixes dropped err variables in libraries/doltcore/rebase.
  • 1408: bump gms and jsonagg
  • 1407: libraries/doltcore/merge: fix dropped errors
    This fixes dropped code and test err variables in libraries/doltcore/merge.
  • 1406: diff printing fix
    Columns with % signs were being printed using printf style functions which were looking at %s and escape characters.
  • 1405: Turn off discord notify for now
  • 1403: add file copy helper method to iohelp package
    generally useful io helper method
  • 1402: diff between a range of values
    allows for performance improvements. Not used in dolt yet, but used by the bounty attribution code.
  • 1401: chunk store in a file no manifest needed
    Utility library used by bounties
  • 1391: libraries/doltcore/diff: fix dropped error
    This fixes a dropped err in libraries/doltcore/diff.
  • 1387: Refactoring error message in merge.go [ https://github.com/dolthub/dolt/issues/1307#issue-804175419 ]
    Issue ID : https://github.com/dolthub/dolt/issues/1307#issue-804175419
  • 1386: Added file names to bats tests
    Also edited some of the titles to cut down on redundancy since the file names are now in the title. This makes it far easier to see what test belongs in what file if a test ever fails.
  • 330: Support for WITH clauses (common table expressions)
  • 328: Vinai/load data quick fixes
    Add quick fixes from testing load data on the Dolt side.
  • 327: Add functionality and tests for JSON_ARRAGG.
    This pr does not include window function capabilities
  • 326: Added function stubs for unimplemented JSON functions
    31 unimplemented JSON functions, including two aggregation functions JSON_ARRAYAGG and JSON_OBJECTAGG.
  • 58: Add json aggregate functions to ast.go
  • 57: Implemented common table expressions (WITH)
    Also removed a bunch of unused vitess-only constructs from the grammar.
  • 56: Capture the verbatim expression for select statements
    This is a bit hacky and currently breaks on embedded comments. But in general this lets us faithfully reproduce the verbatim select expression in the return schema, which is required for compatibility with some clients.
    Also makes expressions such as MAX(a as b) illegal, allowed before.
  • 55: Small parser fixes for stored procedures
  • 54: Vinai/load data basic network handling.
    Basic steps for packet management. Have text with files up to 1gb.
    Definitely some more work to be done here in the future. Is it optimal to write everything to a file or can we do something better? Regardless, I think this is a good enough start for Max to get unblocked while I continue to build more functionality.
  • 52: Allow reserved words as column names for CREATE TABLE statements
    Needs tests
  • 51: Vinai/load data p1
  • 50: Removed CODE keyword
  • 49: Max/float53
    adds support and tests for FLOAT(prec), which will help with pandas table creation.

Closed Issues

  • 1399: Switching from current branch to current branch causes changes to appear lost
  • 1397: When dolt will support silicon M1 chip ?
  • 1395: Data_
  • 1389: stray characters in dolt diff output
dolt - 0.23.9

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

This is a patch release addressing an issue related to modifying the schema of a table with null values and several performance / correctness bugs for complex SQL joins.

Merged PRs

  • 1384: Fixed NULLs causing diff changes using MODIFY COLUMN
  • 1382: Turned on strict parsing for the sql server config YAML. This catches…
    … common indentation errors that have confused multiple users.
  • 1381: Fixed typo in conflicts doc
  • 1380: go/go.mod: Bump go-mysql-server.
  • 325: sql/analyzer/indexed_joins.go: Use partial indexes for indexed joins when a full index isn't available.
  • 324: sql/analyzer/filters.go: Never push a filter expression with a subquery down.
  • 323: sql/analyzer/prune_columns.go: Fix scope parameter in fixRemainingFieldsIndexes when fixing Child of a subquery alias.
  • 322: sql/{plan,analyzer}: Cache subquery results when joining against a subquery.
dolt - 0.23.8

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

This release includes an alpha version of stored procedure support, and fixes several performance and correctness issues related to merge and diff of large databases.

Merged PRs

  • 1377: Upgraded go-mysql-server and unskipped many tests that now pass
  • 1376: fix overflow issue
    Merges were failing when the changes were sufficiently large. This was really exacerbated by merges where the common ancestor is extremely old. getCompositeChildSequence would try to allocate contiguous blocks and encode the entire composite child sequence into it. If the size of the data exceeded the max value of a uint32 then the indexes being used to access the buffers would overflow and wrap around and cause all kinds of badness.
  • 1375: Fix Schema Unmarshalling Error
    {Map, List, Set}.IterAll() spins up multiple go routines to parallelize the IO of loading a data structure, but when the data is small (unmarshalling Schema/SuperSchema) it seems to be causing issues. Changing these instances of IterAll() to Iter() fixes context cancelled errors seen during dolt merge. The errors have not yet been reproduced in a test case, but they have been fixed in the affected repos.
  • 1372: fix docs links in readme
  • 1371: improve conflict resolution error messages
    resolves #1366
  • 321: Bug fix for parallelization
    We have been parallelizing Filter and Project nodes, but this is a problem for such nodes that contain a Subquery expression, since the query plan for that subquery may not tolerate parallelization. This fixes that bug and adds tests.
  • 315: Added SHOW & DROP PROCEDURE, along with basic IF/ELSE support
dolt - 0.23.7

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

This release is the first implementation of SQL Window Functions with ROW_NUMBER() being the first supported Window Function. More to come.

Other than that bug fixes and performance improvements on SQL JOINs and Dolt Merges.

Merged PRs

  • 1369: disable foreign key checks on merge with warning
    Foreign key constraint violations on merge had the potential to make resolving conflicts between two commits impossible. Merges are now done without foreign key constraint validation. A new warning message was added when there is potential for this to be an issue. Foreign key constraint validation is enforced on commit.
  • 1367: fix infinite loop when allocating encoding buffers larger than 2GBi
  • 1365: Speed improvement. No need to flush() every row during a merge.
  • 314: sql/analyzer/prune_columns.go: Turn off pruneColumns when a Subquery expression exists.
  • 311: sql/analyzer/resolve_subqueries.go: Make subqueries which include subqueryaliases cacheable.
  • 310: sql/plan/subquery.go: Make certain that analyzed nodes below a subquery that includes a subquery alias node see the row results they are expecting.
  • 309: Follow specific rules for mysql float/double/error depending on the float ops.
  • 308: Window functions
    This is a full implementation of window functions, with only the ROW_NUMBER() function supported. Partitions and order-by work for the OVER() clause, but other constructs (PRECEDING, FOLLOWING, etc.) are not supported.
    Other limitations:
    • Can't use window functions with GROUP BY
    • Can use non-window aggregates with window functions, but only if they are declared with an empty OVER clause
dolt - 0.23.6

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

This release contains major performance improvements to dolt commit

Merged PRs

  • 1361: save active merge commit during GC
  • 1360: Diff based foreign key validation
    Previous validation implementation did full scans for every foreign key constraint. New implementation only validates against rows that have changed from the previous commit.
  • 1359: err handling fix
dolt - 0.23.5

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

This release contains support for CREATE, USE, and DROP database statements. The databases created are in memory and session local. These statements are supported for compliance with the SQL specification to make Dolt work with certain tools. Dolt natively does not support multiple databases.

This release contains major performance improvements to JOIN statements.

Merged PRs

  • 1329: CREATE DATABASE (DBDDL)
    This pr brings CREATE DATABASE functionality to dolt and adds associated test cases.
  • 1328: Feature version support.
    FeatureVersion is now checked every time a RootVal is read, and is written with every call to doltdb.WriteRootValue().
    A CLI flag was added to dolt.go to enable FeatureVersion testing.
  • 305: sql/analyzer: resolve_subqueries.go: Add a missing stripQueryProcess in resolveSubqueries.
  • 303: sql/analyzer: Make join_search faster
  • 301: Naive/hacky show grants
    hard-coded SHOW GRANTS handling:
    > dolt sql -q "show grants for current_user"
    +-------------------------------------------------------------+
    | Grants for root@%                                            |
    +-------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
    +-------------------------------------------------------------+
    
  • 300: Added Stored Procedure interface for integrators
  • 299: sql/{plan,analyzer}: Add IndexedInSubqueryFilter for selecting the subquery results first and then making indexed lookups into the child.
  • 298: Add functionality for CREATE DATABASE
  • 297: Append error codes/sql state to error messages for downstream clients.
  • 48: Add the constants
    Updates our vitess with a bunch of constants
  • 47: add support for if exists and if not exists for create database
  • 46: Added CREATE PROCEDURE & FUNCTION
    This adds:
    CREATE PROCEDURE
    SHOW PROCEDURE STATUS
    SHOW FUNCTION STATUS
    DROP PROCEDURE
    CALL
    
    The SHOW...CODE statements are being skipped for now, as they're relatively unused compared to the above statements. Additionally, the CREATE statements do not have a fully fleshed-out routine body, as we currently do not parse all valid statements anyway.
  • 45: Preliminary vitess support for window funcs.

Closed Issues

  • 1324: panic running great expectations unittests