This is a patch release. It addresses several bugs:
- Problems with column defaults causing errors and panics
- Support for window frame definitions (ROWS PRECEDING and ROWS FOLLOWING)
- Fix for certain GROUP BY expressions involving aliases
- Fix for JSON_OBJECT()
Additionally, --batch mode is now disabled by default for dolt sql
when piping SQL scripts to the dolt
command. Use --batch
to enable it when running SQL import scripts. Also new is the --file
argument to dolt sql
, useful for environment where it is difficult to redirect STDIN.
Merged PRs
dolt
- 2699: Add CreateTagOnDB and DeleteTagsOnDB
Closes #2693 - 2696: Register server the metrics with prometheus so they get published
- 2694: /go/libraries/doltcore/{doltdb/durable, sqle}: Added Format_7_18 to NomsBinFormat switch statements
Format_7_18
is still used inld
in some cases - 2685: Disable --batch mode for
dolt sql
by default
--batch mode fordolt sql
has issues in when it flushes to disk which make it incompatible with some SQL scripts. It's now only enabled when asked for explicitly.
As part of this work, also made multiple statements in a single -q block work by default (used to require --batch or --disable-batch, the latter of which is retired)
Finally, added a --file option todolt sql
, useful for environments where it's hard to redirect STDIN. - 2677: fix vertical format printing issue
row numbering was incorrect - 2611: Spatial types actually stored as spatial types
The ReadPoint, ReadLine, and ReadPolygon methods just use ReadString and convert to correct types.
Able to call st_methods on column types now. - 2609: Andy/prolly indexes
This PR adds a second implementation ofdurable.Index
and attempts to refactor pkgsqle
to usedurable.Index
in place oftypes.Map
. This is a major refactor in the SQL engine with the aim of supporting both the existing storage format and the new-and-improved™ storage format. As a measure of progress roughly 70% of the engine tests are passing againstsqle
while using the new format.
Various changes were made in pkgval
in order to support the SQL types/encodings need for sysbench. Some of these encodings are experimental and will change in the future.
go-mysql-server
- 769: Fixed a bug (just introduced) in resolving default column expressions
Unbreaks dolt
The reason that this bug didn't break the in-memory implementation is it keeps its column defaults reified as Expressions, so it doesn't really use most of the related analyzer machinery - 768: go.mod,.github: Bump to 1.17.
- 766: Fix panics and errors introduced by recent changes to column default resolution
This will fix #2659 when picked up by dolt - 764: Window frame support
This PR adds sql.WindowFrame and sql.WindowFramers to represent
window frames from AST -> plan -> exec.
Every unique and valid combination of window frame
Start and End bounds has a plan node (sql.WindowFrame)
and a framer (sql.WindowFramer) pair. The frames, framers,
and constructor functions that map from AST -> plan and
plan -> exec are generated by optgen. - 759: Revert "add ability to override logger (#758)"
This reverts commit 2a4f3ea458b57c97bc3f1b70d697e103f62be6ef. - 758: add ability to override logger
- 756: Adding support for non-string key types in JSON_OBJECT
Resolves: #2626 - 755: sql/expression/function: json_{array,object}.go: Fix to handle JSONValue subexpressions as well.
- 749: GroupBy normalization rule maintains parent Projection dependencies
We flatten GroupBy aggregations to isolation agg functions, but in the process lose nested column dependencies. The downstreamqualifyColumns
rule was erroring, but without passthrough projections binary expressions likeArithemtic(Sum(x.i), y.i)
will fail at execution time without a full set of input dependencies.
For this query:`
We correctly identify that the GroupBy node has one primary aggregation, Sum, and project the Arithmetic separately.select sum(x.i) + y.i from mytable as x, mytable as y where x.i = y.i GROUP BY x.i
TheGroupBy -> Sum(x.i) + y.i -> ... TableScan (x,y) => Project (Arithmetic(sum(x.i) + (y.i)))-> GroupBy(Sum(x.i)) -> ...
Project
node fails downstream trying to lookup they.i
dependency we discarded in the transform. This PR adds dependencies back to cover the new parentProject
forGroupBy
flattening.GroupBy -> Sum(x.i) + y.i -> ... TableScan (x,y) => Project (Arithmetic(sum(x.i) + (y.i)))-> GroupBy(Sum(x.i), y.i) -> ...
- 737: Adding functions
st_asgeojson
andst_geomfromgeojson
- 732: Allow conversion of zero values of other types to date / timestamp values
This is for compatibility with postgres dumps and other tools that expect it
vitess
- 115: go.mod: Bump to go 1.17.
- 114: Remove a bunch of unused stuff.
- 113: .github,go: Cleanup workflows. Fix all tests to work under -race. Fix fragile prototext assertions in tests.
- 112: go,go/vt/proto: Regenerate pb message implementations, upgrade to APIv2.
- 111: go/vt/sqlparser: Get rid of partially parsed statements and {,ddl_}skip_to_end.