Bot releases are visible (Hide)
Published by github-actions[bot] about 2 years ago
sql.enumtype
contains a map, which in golang cannot be used in ==
operatordolt_merge_status
system tabledolt_merge_status
system table tells a user if a merge is active. It has the following schema:
CREATE TABLE `dolt_merge_status` (
-- Whether a merge is currently active or not
`is_merging` tinyint NOT NULL,
-- The commit spec that was used to initiate the merge
`source` text,
-- The commit that the commit spec resolved to at the time of merge
`source_commit` text,
-- The target destination working set
`target` text,
-- A list of tables that have conflicts or constraint violations
`unmerged_tables` text
)
For example, lets create a simple conflict:
dolt sql -q "CREATE TABLE t (a INT PRIMARY KEY, b INT);"
dolt add .
dolt commit -am "base"
dolt checkout -b right
dolt sql <<SQL
ALTER TABLE t ADD c INT;
INSERT INTO t VALUES (1, 2, 1);
SQL
dolt commit -am "right"
dolt checkout main
dolt sql -q "INSERT INTO t values (1, 3);"
dolt commit -am "left"
dolt merge right
Output of SELECT * from dolt_merge_status;
:
+------------+--------+----------------------------------+-----------------+-----------------+
| is_merging | source | source_commit | target | unmerged_tables |
+------------+--------+----------------------------------+-----------------+-----------------+
| true | right | fbghslue1k9cfgbi00ti4r8417frgbca | refs/heads/main | t |
+------------+--------+----------------------------------+-----------------+-----------------+
dolt_branches
table is read-only now.dolt_diff
table in old format for commit_hash
column filterTestDiffSystemTablePrepared
runQueryPrepared
DeferredFilteredTable
nodedolt_diff
tablesTransformProjections
was not transferring filters from certain prepared plans that did not contain projections.utf8mb3_unicode_ci
utf8mb4_unicode_520_ci
resolve_cte
to bridge the gap between WITH -> rCTE -> UNION nodesUnresolvedTable
to RecursiveTable
. There is a chicken and egg problem where we have to resolve the left-side of the union before we can construct and apply a schema'd RecursiveTable
to the right.Exchange
node
inSubqueryIndexesId
AutocommitId
TrackProcessId
parallelizeId
clearWarningsId
dolt_history_<table>
panics on enum
typesdolt_diff
system table access when scoped to a commitdolt migrate
dolt_diff_<table>
dolt version
errors when run from directory containing DOLT_ROOT_PATH
sql_mode
is always strictdolt sql-server
with InnoDb MySQL client may fail if a table uses special characters like hyphenduplicate unique key given
for keyless tablesinformation_schema
when mixing old and new storage formatsPublished by github-actions[bot] about 2 years ago
utf8mb3_unicode_ci
utf8mb4_unicode_520_ci
SET NAMES
would cause all statements that feature a COLLATE
expression to error if the character set and collation did not match, however such a comparison only makes sense for string literals (at parse time). This has been fixed, as the parse-time check only occurs for literals, and checks that require analysis (such as table columns) now occur at the appropriate time. In addition, the system variable character_set_results
was not used when returning string results, resulting in unexpected behavior, which has also been fixed.status
breaks--continue
flag for dolt table import -u
doesn't add any rowspassword
in SQL session without removing administrator passwordDOLT_CHECKOUT('-b', 'newbranch)
should take working set changes to new branchdolt constraints
should be exposed in the top level dolt help textdolt ls --verbose
panics in the new formatcount(*)
in new format 3X slower for large tabletwo different columns with same tag
error on mergedolt pull -f
fails when dolt fetch -f works && dolt branch main remotes/origin/main -f
works@@autocommit = true
dolt table import -u <table>
slows down almost 20x after only five imports of ~20k rowsdolt import table
Foreign Key NOT NULL violation error is not helpfulPublished by github-actions[bot] about 2 years ago
dolt conflicts resolve $tbl --theirs
fasterdolt conflicts resolve $tbl --theirs
previously took too long as it used a nested for-loop query. That query has been replaced with some out-of-engine machinery.index_join_scan
goes from 3.4ms/q
-> 2.5ms/q
.map.FetchOrdinalRange
to utilize batch chunk reads on scansSET NAMES
would cause all statements that feature a COLLATE
expression to error if the character set and collation did not match, however such a comparison only makes sense for string literals (at parse time). This has been fixed, as the parse-time check only occurs for literals, and checks that require analysis (such as table columns) now occur at the appropriate time. In addition, the system variable character_set_results
was not used when returning string results, resulting in unexpected behavior, which has also been fixed.MOD(N,0) returns NULL.
WHERE EXISTS subquery
is dependent on the number of rows rather than the number of columnsWith
node upCREATE TABLE
and friends will now take the table collation into consideration. This extends to adding a modifying columns, which will use the table collation when no collation is specified. Additionally, the latin1
character set has been added. Lastly, we properly block usage of non-implemented character sets and collations.from dual
to select x
in recursive cte statementsNESTED
FOR ORDINALITY
ON EMPTY
ON ERROR
Published by github-actions[bot] about 2 years ago
Tuple.Compare
/ Tuple.Less
returns inconsistent results when comparing different types against a null value. This caused non-null values for most types to be ordered before null values, but other types like time/date/datetime to have non-null values after null values in the index. That resulted in incorrect query execution because the index range reader saw the null values and exited out before ever evaluating the non-null values.dolt commit -a
__DOLT__
bounty scoreboard~
and ^
to reference ancestors in database revision specifiers.dolt diff
CREATE DATABASE
on new-format DB should create DB with new-format(same format as the currentDB)-a
flag in dolt commit
committing new tables.dolt commit -am
.CREATE TABLE
and friends will now take the table collation into consideration. This extends to adding a modifying columns, which will use the table collation when no collation is specified. Additionally, the latin1
character set has been added. Lastly, we properly block usage of non-implemented character sets and collations.pruneTables
in prePreparedSelector
, to transfer projections correctlyFilters()
getter into sql.FilteredTables
interfacetransferProjections
also copies over table filtersdolt sql --file
or dolt sql <
results in weird error at position 2operand should have 1 columns, but has n
dolt commit
, the -a
option adds new tables, not just modified or deleted ones.latin1
charset and latin1_german1_ci
collationPublished by github-actions[bot] about 2 years ago
git-dolt
and git-dolt-smudge
TEXT
, BLOB
index keys by converting them VARCHAR
, VARBINARY
STR_TO_DATE()
returns result type depending on Date given in the query. If only date parts like year, month and/or day was defined in Date argument, then the result is only Date type without time parts. If Date defined is date with time, then Datetime type is returned.pruneTables
in prePreparedSelector
, to transfer projections correctlyFilters()
getter into sql.FilteredTables
interfacetransferProjections
also copies over table filters*plan.IndexedTableAccess
embeds an IndexedTable
. The IndexLookup
itself is static, dynamic lookups will be passed multiple lookup objects at exec time.
type IndexLookup struct {
fmt.Stringer
Index Index
Ranges RangeCollection
}
type IndexAddressable interface {
// AsIndexedAccess returns a table that can perform scans constrained to an IndexLookup
AsIndexedAccess(Index) IndexedTable
// GetIndexes returns an array of this table's Indexes
GetIndexes(ctx *Context) ([]Index, error)
}
type IndexAddressableTable interface {
Table
IndexAddressable
}
type IndexedTable interface {
Table
// LookupPartitions returns partitions scanned by the given IndexLookup
LookupPartitions(*Context, IndexLookup) (PartitionIter, error)
}
Minimal changes to DriverIndexedLookup
and ForeignKeyUpdater
to accommodate changes.STR_TO_DATE()
returns DATETIME
even when just DATE
is expectedHEAD~
ref syntax for connection string / USE
statementsRANK()
and DENSE_RANK()
window functionsJSON_TABLE()
functiongit dolt install
should not re-append to filesdolt add .
regression related to license filedolt checkout
will stomp uncommitted changes on another branchDEFAULT CHARACTER SET
in CREATE TABLE
statementsdb.Rebase()
from dsess.StartTransaction
ORDER BY
should be optional when frame specification doesn't require itPublished by github-actions[bot] about 2 years ago
server_query
bats helper.server_query
function apparatus. A single server_query
function replaces all helper functions including multi_query
, insert_query
, server_query_with_user
, etc. This single interface removes a bunch of duplicate code in query-server-common.bash
making everything easier to maintain.server_query
which required changing everywhere in bats where server_query
and all of its duplicates were called.dolt_checkout()
and dolt_push()
sets upstream that persists outside of sql sessionprolly.RangeDiffMaps
prolly.RangeDiffMaps
which can be used to get the diffs between two prolly map within a certain key range.dolt commit
if merge is not fast forward and there is no conflict and constraint violation--commit
, --no-commit
and --no-edit
flag options for both dolt merge
and dolt pull
.dolt pull
merging a remote branch into current working set.show databases
will now no longer show all revision dbs that have ever been used, but instead will only include the single revision database a customer is currently using.HEAD
. It accomplishes this by first soft resetting to HEAD~1
before applying the new commit. Empty new amended commits are allowed to support the original use case of changing the commit messages of previous commits.string
to []byte
) without updating all of the locations where the previous representation was assumed.CREATE TABLE mytable (t TIMESTAMP);
INSERT INTO mytable (t) VALUES ('1990-01-01'), ('2020-01-01');
SELECT COUNT(1) FROM mytable WHERE t > '2000-01-01';
should return 1
, but today it returns 2
.WHERE t > '2000-01-01'
) needs to compare timestamps. That comparison logic has type coercion, but the type coercion only knows how to coerce a string into a timestamp, and it is now being handed a []byte
.convertValue
function correctly converts []byte
into timestamps (and dates)order by
clause for range frames that only use unbounded preceding/following and current roworder by
clause for all range frame queries, but it is optional when the frame only uses unbounded preceding/following
and current row
.e2etests/
directory with "end to end" tests:
string
but the server layer now passes it []byte
. This patch is very dumb and simple: just convert []byte
to string
before parsing.RANK
and DENSE_RANK
merge
should create a commit when are no conflictsdolt_checkout
after use [db]/[commit]
panicsdolt commit --amend
to amend commit messagesORDER BY
should be optional when frame specification doesn't require itBIT_XOR()
SQL FunctionCAST()
as alternative to CONVERT()
%
%
default.CONV()
SQL functionInSubquery
Published by github-actions[bot] about 2 years ago
dolt_commit
being disallowed, but dolt_reset
also needs one since it modifies the branch HEAD.in <subquery>
statementsSELECT pk,i,f FROM one_pk RIGHT JOIN niltable ON pk=i and pk > 0
- RightJoin((one_pk.pk = niltable.i) AND (one_pk.pk > 0))
- ├─ Table(one_pk)
- │ └─ columns: [pk]
- └─ Table(niltable)
- └─ columns: [i f]
+ Project(one_pk.pk, niltable.i, niltable.f)
+ └─ RightIndexedJoin((one_pk.pk = niltable.i) AND (one_pk.pk > 0))
+ ├─ Table(niltable)
+ │ └─ columns: [i f]
+ └─ IndexedTableAccess(one_pk)
+ ├─ index: [one_pk.pk]
+ └─ columns: [pk]
BIT_AND
, BIT_OR
, and BIT_XOR
functionsinformation_schema
, think better to leave as their literals.ShowCreateTable
,Information_Schema.Columns
, and Describe/ShowColumns
, they were always being converted to lowercase, which doesn't match MySQL's behavior. Instead, we should preserve the case each enum value was defined with, whenever we return those values.json_table
functionjson_table
function, which generates a table given a JSON string and column definitions.NESTED
FOR ORDINALITY
ON EMPTY
ON ERROR
grant all privileges to <user>
NESTED
FOR ORDINALITY
ON EMPTY
ON ERROR
server.lock
file created for databases created after server startCHAR
and VARCHAR
types appears to pertain to physical representationmysql
database is populated, it should show up in SHOW DATABASES
if you have permission to see itdelete user
create user 'foo'@'%' identified by ''
Published by github-actions[bot] about 2 years ago
This release supports collations and charsets in the new __DOLT__
format. To create a database in the new format, run dolt init --new-format
. The new format is about 3X faster than the original __LD_1__
format.
--socket
flag can be defined without value, which should get default value of /tmp/mysql.sock
.doltcfg
if current is missinguse [db]/[tag]
from creating duplicate revision db__DOLT__
format. The old format does not intentionally support collations, however general GMS improvements do have some effect on the correctness of the old format.ShowCreateTable
,Information_Schema.Columns
, and Describe/ShowColumns
, they were always being converted to lowercase, which doesn't match MySQL's behavior. Instead, we should preserve the case each enum value was defined with, whenever we return those values.index_join_scan
latency change locally on OXS: 4.8ms -> 3.8 ms (-20%).encodings
package were generated from collation-extractor, and thus inflate the overall line count.grant all privileges to <user>
dual
minute_second
escape
next
off
sql_cache
sql_no_cache
dolt sql-server
does not look in parent directory (as per spec) for .doltcfg
--socket
option says it defaults to /tmp/mysql.sock
but it does notuse db/tag
overloads proceduresTestSpatialQueries
in DoltJoinComplexityLimit
system variablePublished by github-actions[bot] about 2 years ago
dolt version
and add new sql function dolt_storage_format()
. Add dolt init --new-format
--new-format
to dolt init
. For example:$ dolt init --new-format
dolt version
. For example:$ dolt version
dolt version 0.40.24
database storage format: OLD ( __LD_1__ )
We considered making a separate command called dolt storage_format
, but decided against it to promote discoverability of the current storage format that dolt is using.
> SELECT dolt_storage_format();
+-----------------------+
| dolt_storage_format() |
+-----------------------+
| NEW ( __DOLT__ ) |
+-----------------------+
dolt_version()
is unchanged:> SELECT dolt_version();
+----------------+
| dolt_version() |
+----------------+
| 0.40.24 |
+----------------+
In the SQL context, we decided to display the storage format in a new function. The reasoning is partly due to the fact that MySQL functions do not support multiple return columns and partly to make parsing either the dolt version or storage format by clients easy.diffOrderedTrees
ExternalStoredProcedureDatabase
to ExternalStoredProcedureProvider
index_join_scan
latency change locally on OXS: 4.8ms -> 3.8 ms (-20%).dolt_clone
stored procedure when no database is selected.dual
minute_second
escape
next
off
sql_cache
sql_no_cache
dolt sql-server
in a directory with old and new format dolt databasesdolt sql-server
creates an empty .doltcfg
directory. Potential UX issue.panic: unknown encoding
when running dolt diff --summary
call dolt_clone()
does not work if you have not used a databasePublished by github-actions[bot] about 2 years ago
Published by github-actions[bot] about 2 years ago
dolt diff
not working when there is a space in a column namedolt_clone
to fail (see https://github.com/dolthub/hosted-issues/issues/31).AsOf
expressions down to tables used in unions and subqueries in view definitionsasof
expression when one was used on the view. This PR extends the resolve_views analyzer rule to close those gaps.SHOW GRANTS for <user>
DUAL
and MINUTE_SECOND
AuthServerClientCert
it may be better to remove it entirely rather than just prune the flags)ryanpbrewster@argon:~/p/g/dolthub-vitess$ rg "flag\.\w"
go/mysql/auth_server_clientcert.go
35: if flag.CommandLine.Lookup("mysql_server_ssl_ca").Value.String() == "" {
The existing tests still pass:
ryanpbrewster@argon:~/p/g/dolthub-vitess$ go test go/...
ok go/ast (cached)
ok go/build (cached)
ok go/build/constraint (cached)
ok go/constant (cached)
ok go/doc (cached)
ok go/format (cached)
ok go/importer (cached)
ok go/internal/gccgoimporter (cached)
ok go/internal/gcimporter (cached)
ok go/internal/srcimporter (cached)
? go/internal/typeparams [no test files]
ok go/parser (cached)
ok go/printer (cached)
ok go/scanner (cached)
ok go/token (cached)
ok go/types (cached)
SHOW GRANTS
doesn't show grants correctlyCHECK TABLE
syntax.dolt pull
should force a commit message for non-ff mergesALTER TABLE ADD COLUMN
with default value referring to non-existent column panicsstring is too large for column
dolt constraints verify
for working set changesCREATE USER
with empty passwordSHOW STATUS
returns an empty tablePublished by github-actions[bot] about 2 years ago
dolt_docs
to be created from SQLdolt_clone
to clean up partially cloned database directories on failuredolt_remote
stored procedure to write to the correct database directorydolt_remote
stored procedure to find the correct root directory for a database and update repo state correctly.USE
statement with tag namedolt clone
for https://www.dolthub.com/repositories/..
databases*plan.DecoratedNode
and helper methods.*plan.ResolvedTable
and *plan.IndexedTableAccess
compensate by printing range and column (logical) properties.
- Projected table access on [pk c1 c2 c3 c4 c5]
- └─ IndexedTableAccess(one_pk on [one_pk.pk] with ranges: [{[NULL, ∞)}])
+ IndexedTableAccess(one_pk)
+ ├─ index: [one_pk.pk]
+ ├─ filters: [{[NULL, ∞)}]
+ └─ columns: [pk c1 c2 c3 c4 c5]
Project(a.i, a.s)
└─ IndexedJoin(a.i = b.i)
├─ TableAlias(a)
- │ └─ Projected table access on [i s]
- │ └─ Table(mytable)
+ │ └─ Table(mytable)
+ │ └─ columns: [i s]
└─ TableAlias(b)
- └─ Projected table access on [i]
- └─ IndexedTableAccess(mytable on [mytable.i])
+ └─ IndexedTableAccess(mytable)
+ ├─ index: [mytable.i]
+ └─ columns: [i]
now/current_timestamp
column default values not in parensnow
or current_timestamp
functions were used as the column default. Those column defaults were marked as literals, even though they are expressions that need to be resolved and evaluated. These two functions are the only functions that may be used as a column default value without being enclosed in parens, and when used that way, they were not getting resolved and causing a panic (see linked issue for more details).ColumnDefaultValue.IsLiteral
always return true if the default value is a literal value and always return false if the default value is some expression that needs to be resolved and evaluated. To keep consistency with MySQL's behavior, it requires that we track whether the column default was enclosed in parens when defined. This is necessary because MySQL allows the now/current_timestamp functions to be used without parens for datetime/timestamp column, but must be specified in parens when used as the default for any other column type. Since that validation is done in a separate spot from the parsing, we need to track that as part of ColumnDefaultValue.CALL
with DOLT_CHECKOUT
returns [HY000][1105] branch not foundreset --hard
a table movedrop
then add
dolt sql-client
gets out of sync with dolt sql
on creating tablesdolt_remotes
dolt sql-server
isn't restarted after changing branchesdolt conflicts
needs some user interface workdolt sql-server
from a remotedolt table import -u
intermittently hangs during batch importdolt merge --no-ff
dolt remote add
to improve usabilityDescribe
and Column DefaultsPublished by github-actions[bot] about 2 years ago
dolt pull <remote> <remoteBranch>
--user
to dolt sql
and dolt sql -q
--user
or --password
option is givenroot@localhost
instead of root@%
doltcfgdir
if we need to persist somethingnow/current_timestamp
column default values not in parensnow
or current_timestamp
functions were used as the column default. Those column defaults were marked as literals, even though they are expressions that need to be resolved and evaluated. These two functions are the only functions that may be used as a column default value without being enclosed in parens, and when used that way, they were not getting resolved and causing a panic (see linked issue for more details).ColumnDefaultValue.IsLiteral
always return true if the default value is a literal value and always return false if the default value is some expression that needs to be resolved and evaluated. To keep consistency with MySQL's behavior, it requires that we track whether the column default was enclosed in parens when defined. This is necessary because MySQL allows the now/current_timestamp functions to be used without parens for datetime/timestamp column, but must be specified in parens when used as the default for any other column type. Since that validation is done in a separate spot from the parsing, we need to track that as part of ColumnDefaultValue.stored procedure "%s" does not exist
We've seen some users connect to a sql-server, but not use a database and be confused by this error message, so this change adds extra content to the error message when no current database is selected:
stored procedure "%s" does not exist: this might be because no database is selected
maxChars
, maxBytes
, and maxResponseBytes
for a stringtype.json_contains
bug fixesjson_contains
(MySQL Documentation)Describe
and Column Defaultscall dolt_pull()
if no upstream branch is setdolt_add()
does not stage commitsPublished by github-actions[bot] about 2 years ago
${branch_name}_default_branch
from config now works.package main
import (
"log"
"os"
)
func main() {
log.Fatalln("A")
log.Fatalln("B") // unreachable code
os.Exit(2)
}
/* output:
2009/11/10 23:00:00 A
Program exited.
*/
__DOLT_1__
on release.doltcfg
directoriesdolt_remote()
stored procedureDOLT_REMOTE('add', ...)
DOLT_REMOTE('remove', ...)
DOLT_REMOTE('rm', ...)
DoltDatabaseProvider
interface from Zach's PR, https://github.com/dolthub/dolt/pull/3745 , in order to get Zach's implementation of accessing FS from the Provider object.Rows Processed: 0, Additions: 0, Modifications: 0, Had No Effect: 0
A bad row was encountered while moving data.
csv reader's schema expects 3 fields, but line only has 2 values.
line: '5,5,'
These can be ignored using '--continue'
This is not particularly useful output when the size of the row is massive. It has been a headache debugging this issue for the recent museums bounty. This pr is changing the error message to as follows:
Rows Processed: 0, Additions: 0, Modifications: 0, Had No Effect: 0
A bad row was encountered while moving data.
CSV reader expected 3 values, but saw 2.
The row was interpreted to be: '{
"pk": "5"
"v1": "5"
"v2": ""
}
'
Also improve printing for skipping rowsdolt_clone()
stored procedure.os.Chdir
(except for in test code and one or two dolt-cli-only spots).json_contains
bug fixesjson_contains
(MySQL Documentation)dolt sql
with a running dolt sql-server
cherry-pick
multi-db-dir
, databases field in config.yaml
Published by github-actions[bot] over 2 years ago
privs.json
and convertingshow variables
variable_name
column of result table of show variables
query.AlterPK
was missed in resolve column default switch cases, and also wasn't considering its expressions when checking for resolution.AlterDefaultSet
was resolving the wrong schema (its output schema, OkResultSchema
, instead of the target schema).sql.TargetSchema
interface and combined some copy/pasted switch cases.SELECT DOLT_BRANCH('-d', '<branch-name>')
results in [HY000][1105] attempted to delete a branch that is not fully merged into its parent; use
-f to force
Published by github-actions[bot] over 2 years ago
go test -race
to fail for Dolt. These tests are now executed from a new Dolt-specific enginetest that is skipped by default in CI environments, unless the DOLT_TEST_RUN_NON_RACE_TESTS
env var is set (same process used to skip the TestLargeJsonObjects
unit test in Dolt).-v
flag to the dolthub/dolt enginetest race detection GH workflow so future failures have better output on exactly what failed.dolt table import
.--multi-dir-db
flag is now --data-dir
.doltcfg
directory--doltcfg-dir
flag option$data-dir/.doltcfg
--privilege-file
will be $doltcfg/privileges.db
go test -race
to fail for Dolt (on ubuntu at least). This PR removes them from go-mysql-server and PR https://github.com/dolthub/dolt/pull/3824 moves them into Dolt.go test -race
for Dolt's enginetests passes again on Ubuntu after this change.ValidateCanPersist()
ValidateCanPersist()
from Persister
interface, as it is no longer used.Published by github-actions[bot] over 2 years ago
dolt_checkout
used to create a new branch from HEADdolt_checkout('new_feature')
will initialize a branchnew_feature
.use db/new_feature
syntax, but prevented users fromdolt_checkout('new_feature')
both for the bug in dolt checkout, but alsoER_LOCK_DEADLOCK (1213)
on transaction merge conflict, remove DOLT_TRANSACTION_MERGE_STOMP
flag and session varER_LOCK_DEADLOCK (1213)
which signals to the client that the transaction has been rolled back due to failures in locking and/or transaction isolation guarantees. Part of this signal is the ANSI SQLSTATE code of 40001
that is associated with ER_LOCK_DEADLOCK
. This code means "serialization failure", which is a more accurate description of the error being thrown by transaction merge conflicts.ER_LOCK_DEADLOCK (1213)
is a misnomer, and is somewhat misleading to the user. However, this is the only MySQL error code associated with transaction rollback due to serialization failures, and in particular it is recognized by the TPC-C benchmarking utility that we use. This change is partially motivated by Postgres's implementation of REPEATABLE READ
which is similar to snapshot isolation.dolt conflicts resolve some_table pk_col 1
dolt sql -q "DELETE from dolt_conflicts_some_table where pk_col = 1"
cardinality
column to dolt_conflicts_$tableName
for keyless source tables. cardinality
is the number of rows with the specified column values.$ dolt sql -q "SELECT base_c0, base_c1, base_cardinality, our_cardinality, their_cardinality from dolt_conflicts_dupe;"
+---------+---------+------------------+-----------------+-------------------+
| base_c0 | base_c1 | base_cardinality | our_cardinality | their_cardinality |
+---------+---------+------------------+-----------------+-------------------+
| 1 | 1 | 10 | 6 | 8 |
+---------+---------+------------------+-----------------+-------------------+
This PR also contains changes that reimplements dolt conflicts resolve --ours | --theirs
through the SQL path.show create table
call dolt_checkout()
not playing nice.Published by github-actions[bot] over 2 years ago
dolt_tags
system table and dolt_tag()
proceduredolt_tags
system table and DOLT_TAG()
procedure.--track
flag to dolt checkout--track
flag for dolt checkout.dolt checkout --track origin/feature
will create new branch named feature
and set its upstream to origin/feature
remote branchdolt checkout -b branch1 --track origin/feature
will create new branch named branch1
and set its upstream to origin/feature
remote branchdolt checkout -b branch1 origin/feature
will guess remote branch. If remote branch origin/feature
exists, it will set upstream to it.our_diff_type
and their_diff_type
to dolt_conflicts_table_name
our_diff_type
and their_diff_type
reports the row diff between the base and our/their rows. It is one of added
, modified
, or removed
.show create table
DefaultColumn
values in the plan.Values
expression tuples and updates the analyzer rules to parse and resolve ColumnDefaultValues
in those expressions.Convert
methods into smaller helper functions that can be used more precisely:
Cast
LOAD DATA ... IGNORE 1 ROWS
Published by github-actions[bot] over 2 years ago
This is a patch release, containing small bug fixes and features.
checkout
and pull
commands now behave closer to git equivalents with respect to upstream branch trackingdolt checkout new_branch
: checking out a new branch without -b
flag. If there is a remote branch with matching name, sets upstream.dolt checkout -b new_branch
: if there is a remote branch with matching name, it does not set upstream.dolt pull
and dolt pull remote_name
: each gives separate errors when run on a branch that does not have upstreamdolt pull
should match dolt_pull()
dolt_checkout()
and dolt_push()
should set upstream that persists outside of sql session (added skipped tests).dolt/sql-server.lock
that is deleted when the server is terminated.ReadOnly
mode. Bulk table import does not appear to respect read only mode, so it has an additional check.@@join_complexity_limit
to 20Published by github-actions[bot] over 2 years ago
This is a patch release containing small bug fixes and features.
information_schema
tablesAS OF
syntax appropriatelyLOAD DATA IGNORE
dolt-linux-arm64.tar.gz
artifact. I also ran the install script on an Ubuntu container and verified that it tries to download that same artifact from GitHub, then copied the new artifact over and verified that the dolt binary executes as expected.AS OF
expressions for Dolt system tablesJoinComplexityLimit
system variableNewEmptyContext()
to optimize IN
filtersuse db/branch
syntaxuse <database>/<branch>
works only from the mysql client, because it parses the use
command on the client side and sends it to the server as a different command (not a query). This means this syntax does not work with dolt sql
or with other clients that don't parse this command client side and translate it (e.g. go-sql-driver/mysql).use <database>/<branch>
can be used consistently.write_pandas
is not consistent with dolt table import