Bot releases are visible (Hide)
Published by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes and features.
dolt status
now contains remote tracking infodescribe
on viewsuse
with a /
in a database name without quoting the identifierdolt_force_transaction_commit
is false, then rollback the transaction if any constraint violations are encountered.dolt status
outputs whether the local branch is ahead of, behind, diverged from or up-to-date with the tracked remote branch.SELECT CONSTRAINTS_VERIFY_ALL
and DOLT_VERIFY_CONSTRAINTS_ALL
--all
has been added to the remaining SQL function and procedure.--output-only
support for SQL<database>/<branch>
) either through a connection or use
statement, it tracks metadata for that database+branch and shows the entry as a database in show databases
. If that branch is deleted or renamed, the metadata isn't cleaned up and can cause the server to stop working correctly in any query that causes all databases to be searched (e.g. using information_schema
, calling a stored procedure, calling `show procedure status).cherry-pick: commit with ALTER TABLE rename table name
flaky bats test.doltdb.UnionTableNames()
method returns inconsistent/randomized ordered array of table names. Renaming table is not tracked when merging, so that it becomes the old name table being dropping and the new table being added. If the tableNames array has old table name first, then the error case is caught, but if the tableNames array has the new table name first, then MergeRoots try to add the exact same table, which returns error of same column tags.doltdb.UnionTableNames()
method now returns unique table names present in order of RootValues passed in.dolt merge
unique key violation behavior. Implement unique key violations for new format.
CALL DOLT_MERGE
conflicts
column returns 1 if the post-merge root contains conflicts or violations:conflicts
column would only return 1 if the merge produced new conflicts. Now it returns 1 regardless if whether the conflicts in the root are new or from a previous merge.dolt merge
or the stored-procedure equivalent CALL DOLT_MERGE
may produce unique key violations even when those violations did not exist in either the target or source branches.-- in the ancestor
CREATE TABLE t (pk int PRIMARY KEY, col1 int UNIQUE);
INSERT INTO t VALUES (1, 1);
-- on the right, this is valid
INSERT INTO t VALUES (2, 2);
/*
Query OK, 1 row affected
*/
-- on the left, this is valid
UPDATE t set col1 = 2 where pk = 1;
/*
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
*/
-- in the post merge state col1 has the duplicate value 2
SELECT * from t;
/*
+----+------+
| pk | col1 |
+----+------+
| 1 | 2 |
| 2 | 2 |
+----+------+
*/
Prior to this PR only PK 2 would be returned as a constraint violations:
SELECT * from dolt_constraint_violations_t;
/*
+----------------+----+------+---------------------------------------+
| violation_type | pk | col1 | violation_info |
+----------------+----+------+---------------------------------------+
| unique index | 2 | 2 | {"Columns": ["col1"], "Name": "col1"} |
+----------------+----+------+---------------------------------------+
*/
After this PR both PK 1 and 2 are returned as constraint violations:
SELECT * from dolt_constriant_violations_t;
/*
+----------------+----+------+---------------------------------------+
| violation_type | pk | col1 | violation_info |
+----------------+----+------+---------------------------------------+
| unique index | 1 | 2 | {"Columns": ["col1"], "Name": "col1"} |
| unique index | 2 | 2 | {"Columns": ["col1"], "Name": "col1"} |
+----------------+----+------+---------------------------------------+
*/
2. Rows that violate a unique key constraint during merge are no longer filtered. They are allowed to persist into the left:-- post-merge state
SELECT * from t;
/*
+----+------+
| pk | col1 |
+----+------+
| 1 | 2 |
+----+------+
*/
After this PR, we do see PK 2:
-- post-merge state
SELECT * from t;
/*
+----+------+
| pk | col1 |
+----+------+
| 1 | 2 |
| 2 | 2 |
+----+------+
*/
sql.StatisticsTable
interfaceNULLIF()
, were returning the null type (sql.Null
) when they should have been returning a null value (nil
in Go). This has been fixed.describe
works on viewsinformation_schema.column_statistics
table.sql.Histogram
struct that contains the column stats; the contents and format of sql.Histogram
come from a mixture of Cockroach and MySQL.use 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.PRIMARY
.dolt sql --result-format csv
returns empty values for bit columnssql-server
modePublished by github-actions[bot] over 2 years ago
This is a patch release, containing bug fixes and improvements
GEOMETRY
valuesdolt sql
dolt dump
mysqldump
uses the --no-autocommit
flag which wraps each table with a SET AUTOCOMMIT=0
and COMMIT=1
dolt cherry-pick
- version 1cherry-pick
support.
Published by github-actions[bot] over 2 years ago
This is a patch release with bug fixes and performance improvements.
dolt_diff
system table and null values.max_connections
system variabledolt table import
dolt_diff
resultsREADME
to be more database-centricREGEXP
expressionsdolt dump
output involving string literalsdolt_diff
system table was returning literal "NULL"
strings instead of nil
values. This worked in the enginetests, but when they get printed out in a shell they couldn't be converted into a datetime and produced an error.max_connections
in server yamlmax_connections
variable was defined in config file either through yaml file or on command line, it should use that value, if not it uses default value. We check for persistence behavior. If it's set to load
, then use the value of global max_connections
variable, otherwise use value set in server config, which can either be default or user defined value.geom_db> create table t (p polygon);
geom_db> insert into t values (polygon(linestring(point(1,1),point(2,2),point(3,3),point(1,1)),linestring(point(1,1),point(2,2),point(3,3),point(1,1)));
Query OK, 1 row affected
geom_db> select * from t;
panic in ExchangeIterPartitionRows: runtime error: slice bounds out of range [260:140]
fix was just a typo multiplying the index to be way out of rangeDECIMAL
, ENUM
, SET
, and TIME
have all been simplified to return a consistent and expected value type (which cleanly maps to storage). This lets us bypass type checking in some places. In addition, we now have consistency between the output of CLI commands and a client's output when connected to the server (these were different in some scenarios).dolt table import
NOW()
does not have prefix (
but has suffix )
REGEXP
args to be convertedType.SQL()
function by running the output of a sql.RowIter
(gathered from the directly querying the engine) through the Type.SQL()
function and ensuring it matches.MEDIUMINT
returning an int32
. Other types, such as DECIMAL
, passed around strings, which necessitated conversions for integrators to be able to properly persist the values. Not only that, there is currently no guarantee that a row's values each have their best fit type (a BIGINT
can work with an int8
, but it should be able to always expect int64
). To make these guarantees, I'm adding a check at all GMS-integrator junctions that pass a sql.Row
and verifying that the value types are exactly what that column expects.SELECT
statement for integrators. As a SELECT
statement simply returns a sql.RowIter
, additional logic will be needed to convert all values to their canonical MySQL representation. This can easily be achieved by passing all values through Type.SQL()
before display.CREATE TABLE
statements for both sql shell and importing dumps.show create view
dolt table import
should print a warning message if there is a schema mis-matchPublished by github-actions[bot] over 2 years ago
REGEXP
args to be convertedPublished by github-actions[bot] over 2 years ago
This is a patch release with small bug fixes and features.
dolt backup
command.sync-url
to the backup command as a way to backup a database without having to add a backup. This is useful in sql-server mode where you cannot add named backups.sql.Type
as stringPublished by github-actions[bot] over 2 years ago
This is a patch release with small bug fixes:
dolt_diff
system tableBIT
types during importdolt_diff
system tablePublished by github-actions[bot] over 2 years ago
This is a patch release with features and bug fixes.
DOLT_MERGE
procedureinformation_schema
tablesdolt init
with name and emaildolt_diff
matches columns across schema revisionsno_conflicts
column returned by CALL DOLT_MERGE
and SELECT DOLT_MERGE
has been replaced with a simpler conflicts
column. CALL DOLT_MERGE
additionally returns a fast_forward
column which indicates if the merge was a fast-forward. If fast_forward
is 0
, then you must perform a commit to reach a clean working set state.SELECT DOLT_MERGE
with CALL DOLT_MERGE
in the engine tests. Both the sql function and procedure have similar test coverage. We currently don't support multiple return columns with sql functions, so the change was made to test the fast_forward column.t
with the following schema:
CREATE TABLE t (
pk int PRIMARY KEY,
a text
);
In commit1 we insert the following row:
INSERT INTO T VALUES (1, 'one');
In commit2 we rename col1 to col2:
ALTER TABLE T RENAME col1 TO col2
In the old behavior, we would see the following diffs.+ (1, 'one')
No diff between commit1 and commit2.+ (1, NULL)
No diff between commit1 and commit2. (We actually do expect to see ~ (1, 'one')
here but this is a TODO and known issue.)diff_table
now implements sql.IndexedTable
interface and uses dolt lookups.to_
columns as primary key, so index lookups on work on those.enginetest/enginetest.go
into initialization.go
and evaluation.go
. The intent is to leave only test banks in enginetest.go
call dolt_merge()
needs to return two things: fast-forward (yes/no) and conflicts (yes/no)call dolt_commit('-am', ...)
not committing all changes or call dolt_merge()
leaves dirty working set on fast forwarddolt init --user --email
isn't respected in succeeding commitsPublished by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes and features.
DOLT_BRANCH
procedureDOLT_MERGE
procedureSRID
in column definition for spatial columnsmysql
database in sql shellMODIFY COLUMN
on keysinformation_schema.columns
tableMOD()
functionUUID()
valuesdolt_branch
dolt_branch
functionality, cleaned up the code a little bit, and fixed a few other gaps in functionality I came across (e.g. --force option wasn't always being honored).DoltEnv
struct and we don't have a good way to get that from within a SQL function/procedure. I was able to change the interfaces a bit to not require DoltEnv
, but I did still have to do one weird thing in order to get a DoltCLIConfig
struct, but I was able to keep it pretty isolated and clearly documented in one place in the code. Happy to hear feedback if there's a better way to tackle that.*sql.Context
, so theCALL DOLT_MERGE
returns 0
if conflicts OR constraint violations exist. Previously it only returned 0
if conflicts existed, although it seems as though the intention was to also return 0
for constraint violations.CALL DOLT_MERGE
and dolt merge
to only report conflicts / constraint violations if those inconsistencies where generated in the merge. Existing inconsistencies shouldn't be reported. (We may show a warning in the CLI case).mysql
database when in dolt shellmysql.db
file present in current directory.User.Attributes
aren't being loaded/storedglobal_dynamic
privileges aren't being loaded/storedcolumn_key
, character_maximum_length
, data_type
and column_type
column values of information_schema.columns
tablemod()
functionSRID
for spatial type column definitiongrant_tables
to mysql_db
CheckpointHarness
and analyzer mutexesSRID
SRID
value.SQLType()
function to evaluate types that are capitalized strings and added tests for itNULL
column option in formatting and added tests for itdolt_branch()
SQL functionuuid()
returns the same value for all uses in a statementcommit
or commit_date
appear as NULL in the dolt_diff_{table_name}
system table.SRID
syntax needs to be supported for geometry typesPublished by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes and features:
dolt_backup
stored procedureSHOW CREATE PROCEDURE
for native procedures which broke on some JDBC connectionsCREATE PROCEDURE
. It seems that Java's JDBC checks that the procedure creation statement is a valid statement, regardless of whether the statement remotely matches that of a stored procedure. So rather than returning a random statement, we return a "valid" CREATE PROCEDURE
statement.Published by github-actions[bot] over 2 years ago
This is a patch release with small bug fixes and improvements.
dolt clean
command to mirror git clean
dolt_clean
stored procedure--dry-run
to avoid persisting the result root.Published by github-actions[bot] over 2 years ago
This is a patch release with minor bug fixes and features.
--disable-fk-checks
in the dolt table import
commandPublished by github-actions[bot] over 2 years ago
This is a minor release with bug fixes and features.
dolt reset --hard
with an in-progress mergedolt conflicts cat
missing some conflictsSHOW CREATE TABLE
DEFAULT NULL
syntax for BLOB
columnsSIGNED
keyworddolt reset --hard
is called, it now clears the merge state if set.> call dbranch('-b', 'new')
> call dadd('.');
> call dcommit('-am', 'message');
> call dreset('--hard', 'main')
dolt conflicts cat
failing to show conflicted rows in the union-ed schema between left, right, and base.first-hour-db
database, which is slightly modified version of MySQL Sakila DB to fit current Dolt version.COLLATE
to SHOW CREATE TABLE
validateCreateTrigger
.SIGNED
keyword for numeric type column definitionsSIGNED
is the default, so specifying it is allowed in SQL, but is a no-op.analyze table t
analyze
statements: https://dev.mysql.com/doc/refman/8.0/en/analyze-table.html
create trigger
to reference non-existent table in trigger_bodydolt reset --hard
should clear merge stateSHOW CREATE TABLE
is missing COLLATE
SHOW CREATE TABLE
, dolt schema show
, dolt table export
, and dolt dump
outputPublished by github-actions[bot] over 2 years ago
This is a minor release with bug fixes, performance improvements, and new features.
SELECT INTO
syntaxdolt conflicts
should be used to investigate and resolve any conflicts.-> dolt merge right
Updating j2pj08g8rkm8o348fr13vbo9fafv0ck8..rbdk7ovdugbnsnimrjjqq6rbq09idh7p
Auto-merging t
CONFLICT (content): Merge conflict in t
Automatic merge failed; fix conflicts and then commit the result.
-> dolt merge right
error: Merging is not possible because you have unmerged tables.
hint: Fix them up in the working tree, and then use 'dolt add <table>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
After:
-> dolt merge right
Updating j2pj08g8rkm8o348fr13vbo9fafv0ck8..rbdk7ovdugbnsnimrjjqq6rbq09idh7p
Auto-merging t
CONFLICT (content): Merge conflict in t
Automatic merge failed; 1 table(s) are unmerged.
Use 'dolt conflicts' to investigate and resolve conflicts.
-> dolt merge right
error: A merge is already in progress, 1 table(s) are unmerged due to conflicts or constraint violations.
hint: Fix them up in the working tree, and then use 'dolt add <table>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
fatal: Use 'dolt conflicts' to investigate and resolve conflicts.
message
to abstract flatbuffers details
Message
to abstract Flatbuffers message serialization. The intent is to store different prolly tree implementations with different Flatbuffers messages.AddressMap
as a chunked alternative to RefMap
. Rather than store name keys as [string]
, AddressMap
uses a key array ([ubyte]
) with offsets ([uin16]
) to store keys in less space.@@dolt_allow_commit_conflicts
to false, and changed how merge conflicts that happen incidentally on commit are handled.@@dolt_allow_commit_conflicts
.dolt_merge()
can be committed by setting @@dolt_allow_commit_conflicts = on
to allow others to collaborate on resolving the conflicts. By default, attempting to commit a working set with merge conflicts will result in a rollback, as above.mergeTableData
function for the new storage format. Any conflicts will throw an error. Cell-wise merge is implemented.SHOW CREATE ... AS OF ...
prepared statementsparseColumnDefaults
rule is repeated because ColumnDefaults are unresolved after unresolveTables
and setTargetSchemas
, for some reason this only happens when using a DoltHarness
.SELECT ... INTO
syntaxSELECT ... INTO
syntaxINTO
clause can only be used in one place, but it can come in different positions, before [FROM ...]
or after the whole SELECT statement but beforing locking. (mysql recommends it after locking options)INTO OUTFILE ...
and INTO DUMPFILE ...
are not included yet.Published by github-actions[bot] over 2 years ago
This is a patch release with bug fixes and behavior changes.
dolt diff
to show data for created and dropped tables (instead of "new table")CURRENT
keyworddolt diff
commanddolt diff
command was previously omitting schema and data diffs if tables were created or dropped within the commit range, and only outputting diff summary information with tabular output. This change causes the schema changes and data changes to be included in tabular output.❯ dolt diff mhgva1kfcljign82ntcmr6ftmpbmemko j6n5727at9652tri8ncsa02v794h1fi4
diff --dolt a/a b/a
added table
❯ dolt diff mhgva1kfcljign82ntcmr6ftmpbmemko ccm9bfiv6jhft1tmeu1cqd0ghduhg4v7
diff --dolt a/a b/a
added table
❯ dolt diff qd507o2jjlckjgmn2polsmiifk62vo8n js1bb2cvdr7h4tdj2d3m33jhp9rc9ee9
diff --dolt a/a b/a
deleted table
New behavior:
❯ dolt diff mhgva1kfcljign82ntcmr6ftmpbmemko j6n5727at9652tri8ncsa02v794h1fi4
diff --dolt a/a b/a
added table
+CREATE TABLE `a` (
+ `n` int NOT NULL,
+ PRIMARY KEY (`n`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+-----+---+
| | n |
+-----+---+
+-----+---+
❯ dolt diff mhgva1kfcljign82ntcmr6ftmpbmemko ccm9bfiv6jhft1tmeu1cqd0ghduhg4v7
diff --dolt a/a b/a
added table
+CREATE TABLE `a` (
+ `n` int NOT NULL,
+ PRIMARY KEY (`n`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+-----+---+
| | n |
+-----+---+
| + | 1 |
| + | 2 |
+-----+---+
❯ dolt diff qd507o2jjlckjgmn2polsmiifk62vo8n js1bb2cvdr7h4tdj2d3m33jhp9rc9ee9
diff --dolt a/a b/a
deleted table
-CREATE TABLE `a` (
- `n` int NOT NULL,
- PRIMARY KEY (`n`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+-----+---+
| | n |
+-----+---+
| - | 1 |
| - | 2 |
| - | 3 |
+-----+---+
XOR
MySQL logic operatorTriggerRollback
node if there is a trigger present. This new node will make a savepoint right before execution, and will return to normal if something breaks.SELECT * FROM current
query failingDISABLE_PREPARED_STATEMENTS
errorsdolt pull
fails when other branch exists in the repoPublished by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes.
CREATE PROCEDURE
statementsUnresolvedFunction
in fds
to avoid panicsst_asgeojson
st_aswkb
st_aswkt
st_astext
st_dimension
st_latitude
st_longitude
st_swapxy
st_x
st_y
Published by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes and performance improvements.
oltp_delete
caused by the above PR.tableReader
from table_reader.go
, previously held a copy of the chunk hash prefixes while also holding the table file index itself. In the above PR, the copy of the chunk hash prefixes were removed and instead the accesses were relayed to the table file index.onHeapTableIndex
holds the serialized bytes of the table file index, so each access requires deserialization work. Namely, a multiplication and the deserialization of 8 bytes into a uint64 prefix value.v0.39.0
.st_asgeojson
st_aswkb
st_aswkt
st_astext
st_dimension
st_latitude
st_longitude
st_swapxy
st_x
st_y
Published by github-actions[bot] over 2 years ago
This is a patch release with a new feature.
INT
to a BIGINT
.Published by github-actions[bot] over 2 years ago
This is a patch release containing bug fixes, performance improvements, and features.
dolt_
SQL functions now implemented as stored procedures as wellLOAD DATA
statementsdolt checkout
TRADITIONAL
sql mode now parses correctlyok result
CREATE VIEW
statementsdolt checkout 400435pip70vh165ggsq4etmggdh6h5i
error: could not find 400435pip70vh165ggsq4etmggdh6h5
We instead show:
dolt checkout 400435pip70vh165ggsq4etmggdh6h5i
dolt does not support a detached head state. To create a branch at this commit instead, run:
dolt checkout 400435pip70vh165ggsq4etmggdh6h5i -b {new_branch_name}
ErrBranchNotFound
fileTableReader
dolt dump
should include views, triggers, and proceduresn
sized buffer to hold the offsets, allocate a n - n/2
sized buffer and recycle the unused lengths region of memory.mmap_table_reader.go
-> file_table_reader.go
mmap_table_reader_test.go
-> file_table_reader_test.go
dolt pull
should do dolt fetch
beforereadSequence()
functions is called on valueDecoder with nil VRW977: Foreign keys now allow limited type changing
It seems that, specifically when using the string types, you may lengthen a field, but you may not change any other properties (cannot change character set or collation). Non-string types don't seem to allow lengthening, as you can't change an INT to a BIGINT.
The implemented behavior is actually an approximation of MySQL's, as you cannot cross some length thresholds due to how MySQL stores strings. From what I can gather for MySQL, as long as the on-disk data does not change AND does not need to be checked, it is allowed. I'm sure more type changes are allowed, but it's not documented, and therefore would require a ton of trial and error, so just shipping this for now.
974: Fixed LOAD DATA errors
There are three core issues with LOAD DATA
that have been fixed:
\r\n
).interface{}
s.971: support handling join table between parentheses
Allow handling join tables in parentheses. It causes the JoinTableExpr to be wrapped in ParenTableExpr in the parser, so it needs to be unwrapped to get the JoinTableExpr inside
Fixes https://github.com/dolthub/dolt/issues/3254
970: Changed all DDL nodes to return an OkResult
This is important for compatibility with certain SQL clients (notably C connector).
969: Improving Error Message for Inserting Strings that are too Long
includes the string that failed and for which column
helps for: https://github.com/dolthub/dolt/issues/3270
968: Expanded AddColumn tests to include some writes on the new table
967: add TRADITIONAL to sql_mode set
Added TRADITIONAL
option to sql_mode
set.
Fixes https://github.com/dolthub/dolt/issues/3230
966: Arithmetic .Type() Perf Improvement
SQL Logictests were timing out on huge CASE statements with ~40
nodes. This fixes the computational blowup, which I think was
somehow exponential before.
965: Bug Fix: FilterTable pushdown to aliased tables
Fixes: https://github.com/dolthub/go-mysql-server/issues/808
Max – Tagging you for your analyzer expertise. Could you check this out and see if you see a better approach to solving this? I saw a couple ways to address this, but this seemed like the least intrusive approach.
964: support more than 1 byte characters to insert for char()/varchar() types
Allows inserting strings with 'exact number of character but consists of more bytes' values to char() or varchar() types
Fixes https://github.com/dolthub/dolt/issues/3233
961: Fix underspecified insert tests
No inserts were not being run with prepareds. A lot of them were broken, but should be running in GMS now at least.
Edit: These pass Dolt also.
960: Parse charset introducer for string literals for expressions
Fixes parsing charset introducer in front of string literals for handling some expressions such as column default expressions.
Allows only utf8mb4
, utf8mb3
and utf8
charsets. If other charsets are used, gives unsupported charset error.
958: Added variable to hide external stored procedures
957: Allow conversion of strings and hex to geometry types
fix for: https://github.com/dolthub/dolt/issues/3231
we should be able to read mysql dumps produced using the --hex-blob
flag.
956: Fixing Point method to actually print string
Fix for: https://github.com/dolthub/dolt/issues/3228
Allows the use of point()
, linestring()
, and polygon()
for default values for columns of type point
, linestring
, polygon
, and geometry
.
952: Remove checks for unique index
We should follow up with an implementation for a unique index for the memory table. Will take a crack at this in a future edit.
795: ComPrepare saves partial query plan
Prepared statements hidden behind enable_prepared_statements
config.
Lacking:
select * asof '2021-03-21
)). I fixed the panics, but many asof tests return incorrect results.lag(x,?)
)LIKE
function
LIKE
functionSELECT * FROM current
query failingCREATE VIEW
statementALGORITHM=...
, DEFINER=...
, SQL SECURITY DEFINER|INVOKER
syntaxes for CREATE VIEW
statement.account_name
instead of ID
to support parsing of user@locahost
syntax.VIEW
(non-reserved keyword) from non-reserved to reserved as non-reserved keywords are used for account_name parsing, so it creates shift/reduce conflict for view
.dolt checkout {commit_hash}
should ask the user for a new branch namecurrent
errorsdolt_procedures
, dolt_schema_fragments
tables cannot be importeddolt pull
should do dolt fetch
under the hoodPublished by github-actions[bot] over 2 years ago
This is a minor release with bug fixes and performance improvements.
dolt login
is now configurable for different remotes, not just DoltHubdolt clone
now works with local file URLs to other dolt repositoriesAUTO_INCREMENT
columns can now accept negative numbersinformation_schema
tables have better support for column default valuesdolt login
command configurable, can authenticate against different remotes--auth-endpoint
, --login-url
, and --insecure
arguments to the dolt login
command so that it can authenticate against remotes beyond doltremoteapi.dolthub.com:443
. This supports dolt login
's use with DoltLab instances. It also adds a dolt config option doltlab.insecure
, which if true
will establish an insecure gRPC connection to the remote authentication server (currently required for DoltLab's remote auth server).dolt login
will continue to use doltremoteapi.dolthub.com:443
as the default remote authEndpoint
and https://www.dolthub.com/settings/credentials
as the loginUrl
opened by the browser.remotes.default_host
and remotes.default_port
, the values specified in the config will be used over the defaults. If creds.add_url
is set in the config file, its value will be used instead of the default loginUrl
. All values supplied with the command line arguments take precedence over the config file values.# login to dolthub.com
dolt login
# login to doltlab.dolthub.com
dolt login -i -e doltlab.dolthub.com:50051 -url http://doltlab.dolthub.com/settings/credentials
# login to doltlab.dolthub.com with config
dolt config --global --add remotes.default_host doltlab.dolthub.com
dolt config --global --add remotes.default_port 50051
dolt config --global --add creds.add_url http://doltlab.dolthub.com/settings/credentials
dolt config --global --add doltlab.insecure true
dolt login
EmptyWorkingSet()
(which has a TODO for it to be deleted/modified), instead of srcDB.ResolveWorkingSet()
./c/...
before path on windows or it'll translate it to C:\c\Users\...
> dolt sql -q "SELECT column_name, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'mytable'" -r csv
column_name,is_nullable,column_default
i,NO,""
s,YES,""""""
somecol,YES,""
col4,YES,""
for table with schema:
CREATE TABLE `mytable` (
`i` bigint NOT NULL,
`s` varchar(20) DEFAULT "",
`somecol` int,
`col4` bigint,
PRIMARY KEY (`i`)
)
reflect
package). The other primary consideration was to expect a specific function signature that takes a map[string]interface{}
representing each parameter, and there'd be another map[string]sql.Type
returned in the loading function that specifies the type of each parameter. I didn't like that the types were interfaces, and their definitions declared elsewhere, as I'd rather the engine handle as much as possible. I'd prefer to have this all statically-enforced, but Go's type system is sadly not flexible enough, so this is the next best thing.auto_increment
columnsauto_increment
logic when value provided is less than the Zero()
value for column.memory/table.go
to stop incrementing the current autoIncVal
when the provided value is strictly less than the current autoIncVal
.column_default
that represents the formatted string version of the column default. This correct representation is essential as tools (like table editors) use this column to generate representation of a table or their alter statements.validateJoinDepth
that errors if we count more than 12 join leaves. Opaque node counting could be done more carefully.create view
parsing and added definer
var for create trigger
stmtCREATE VIEW
parsing supporting algorithm
, definer
, security
syntaxes, but does not support the functionality or affect create view
query statement.enable_prepared_statements
config.select * asof '2021-03-21
)). I fixed the panics, but many asof tests return incorrect results.lag(x,?)
)CREATE VIEW
statementALGORITHM=...
, DEFINER=...
, SQL SECURITY DEFINER|INVOKER
syntaxes for CREATE VIEW
statement.account_name
instead of ID
to support parsing of user@locahost
syntax.VIEW
(non-reserved keyword) from non-reserved to reserved as non-reserved keywords are used for account_name parsing, so it creates shift/reduce conflict for view
.show create table <table> as of <asof>
show create table <table> as of <asof>
.OnTable
field in Show struct that was duplicating the Table
field.CREATE VIEW
syntaxcolumn_default
column value of information_schema.columns
table is incorrectCREATE DEFINER=
for Procedures and TriggersPublished by github-actions[bot] over 2 years ago
This is a minor feature release, containing new features, bug fixes, and performance improvements.
describe table as of <version>
show create table as of <version>
GEOMETRY
typeauto_increment
on non-primary key columnsinformation_schema
table supportPlease note: This release is backwards incompatible with older versions of dolt. Older versions of dolt are unable to read databases written by this version until they upgrade to this version or later.
show create table as of <version>
.Geometry
typevalidateJoinDepth
that errors if we count more than 12 join leaves. Opaque node counting could be done more carefully.auto_increment
on non-primary key columnssql.Schema
and sql.Column
, we need to check if there are any valid indexes defined over the columns we want to mark as auto_increment
.auto_increment
adds NOT NULL
constraint tooalter table t add column j int unique
firstauto_incremented
show create table <table> as of <version>
show create table <table> as of <version>
to go-mysql-server_example/main.go
work as expectedtype TransformNodeFunc func(Node) (Node, bool, error)
type TransformExprFunc func(Expression) (Expression, bool, error)
type Transformer func(TransformContext) (sql.Node, bool, error)
TransformUp's implementation uses the modification information to avoidBenchmarkTransformOld
BenchmarkTransformOld-12 396544 2782 ns/op 3000 B/op 51 allocs/op
BenchmarkTransformOldNoEdit
BenchmarkTransformOldNoEdit-12 407797 2731 ns/op 2936 B/op 50 allocs/op
BenchmarkTransformNew
BenchmarkTransformNew-12 4584258 254.1 ns/op 96 B/op 5 allocs/op
BenchmarkTransformNewNoEdit
BenchmarkTransformNewNoEdit-12 4782098 237.8 ns/op 96 B/op 5 allocs/op
We use plan.InspectUp
when possible, and then plan.TransformUp
plan.TransformUpCtx
plan.TransformUpCtxSchema
only when necessary.main
changes to manage conflicts.show create table <table> as of <asof>
show create table <table> as of <asof>
.OnTable
field in Show struct that was duplicating the Table
field.describe <table> as of <asof>
and show columns from <table> as of <asof>