* In __DOLT_1__, throw error if schemas have different primary key types
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* schema integration test fix
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* Compare SQL types
Co-authored-by: druvv <druvv@users.noreply.github.com>
* make unique key errors more consistent and fix bats for new format
unskip already working bats
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* copyright
* pr comments
* fix gms
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* fix
* change BulkImportTEA to perform a no-op on RollBack instead of erroring
New machinery in GMS to support INSERT IGNORE on unique keys calls RollBack if a duplicate key error is thrown. This includes primary key collisions as well. The machinery was added since the new format does not have machinery to automatically rollback secondary index updates when an error occurs during the primary index update.
In the old format, we do have machinery to automatically rollback secondary index updates, so we can leave Rollback as a no-op in this case. Any primary key collision will return an error, causing the secondary indexes to undo their edits.
Co-authored-by: druvv <druvv@users.noreply.github.com>
* keyless diff for the new format
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* pr comment
Co-authored-by: druvv <druvv@users.noreply.github.com>
* cleanup table package
* delete TextTableWriter
* dolt index [cat, rebuild] for new format
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* fix tests
* use reflect.DeepEqual when determining column diff results
* use sql type compare instead of reflect.DeepEqual
* update test to use sql column types
* fix semantic merge conflict
Co-authored-by: druvv <druvv@users.noreply.github.com>
* reimplement dolt_transaction_merge_stomp at merge layer
add idx
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* fix tests
* remove stomp conflicts
* conflict reader must be reset each time PartitionRows is called
* reimplement dolt conflict resolve --theirs|--ours through sql path
Also drops manual conflict resolving through cli
* add cardinality columns to dolt_conflicts_table_name for keyless tables
* Adds keyless conflict deleting for new format
* dolt conflicts resolve sql impl for keyless tables
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* delete cli.ParseKeyValues
* fix tests
* temporarily allow dolt_docs to be mutated from SQL path
Because conflicts resolve uses the SQL path, dolt_docs needs to be editable.
* fix untested code, comment out docs tests
* bats
* fix a couple found merge bugs
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* if statements...
* add comments
Co-authored-by: druvv <druvv@users.noreply.github.com>
* dolt_checkout and read replication working set fixes
Sql path 'dolt_checkout' used to create a new branch from HEAD
if the checkout name did not have a remote tracking ref. The CLI,
on the other hand, will initialize a local branch if a remote tracking
ref with the same name in the default remote exists. The SQl path
now mirrors the CLI checkout: if we checkout a new branch, like
'new_feature', and we have previously fetched that branch from our
default remote, `dolt_checkout('feature')` will initialize a branch
using the head commit from the remote `feature`.
Second, read replication was creating a local tracking branch for
remote branches (sourced from the master remote), but not creating
corresponding working sets. This let users attach to new branches with
`use db/feature` syntax, but prevented users from
`dolt_checkout('feature')` both for the bug in dolt checkout, but also
because we created an intermediary state with a local branch, but
without a corresponding working set. SQL replication will now fetch,
create the new branch, and create the appropriate working set.
* jennifer's feedback
* unskip