github dolthub/dolt v0.27.0
0.27.0

latest releases: v1.38.0, v1.37.0, v1.36.1...
2 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:
    #1774
    We've previously released a PR (#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 (golang/go#32088 and golang/go#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 #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 #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)

Don't miss a new dolt release

NewReleases is sending notifications on new releases.