Merged PRs
dolt
- 2623: Fixed UUID type inference
This change reorders the type inference rules to attempt to match a UUID before a timestamp. This is necessary because many valid UUIDs will parse as MySQL time strings as well. - 2616: sysbench changes
- 2612: get the index for a key within a map
- 2607: benchmark/perf_tools: Added local sysbench script
- 2605: store/type: fix dropped test errors
This fixes dropped test errors instore/type
and its subpackageedits
. - 2601: Rewrite portion of the import path to better support partials
This pr addresses #2586 and adds additional test cases for partial updates - 2597: Lazily load column defaults
- 2593: add \G vertical query format
- 2572: Simplify dolt dump to use the sql engine and purge old data mover code
This pr- Rewrites dolt dump to use the sql engine
- Removes table_data_loc and DataMover abstractions
- Factors out a data mover pipeline used by export and dump.
go-mysql-server
- 739: /sql/analyzer: Remove reentrant locking from Catalog
- 736: Fixed bug for JSON values in CASE expressions
- 735: server/context.go: getOrCreateSession: Use a safer .mu.Unlock construct in case s.NewSession panics.
- 734: Fixed example in README
Fix mysql command line mismatch the example code - 733: add JSON_MERGE_PRESERVE() function
- 731: Revert groupby change for partitionless agg functions
GroupBy can't switch it's execution runtime to the same as Window without a significant perf hit forselect count(primary_key) from table
. We could simplify group by iter/its aggregation functions now that it's just a for loop off a child iter. - 729: Lazy evaluation for column defaults
- 728: Adding SRID and Axis Options for WKT and WKB functions
- 727: Ensures that check constraints cant be added to table that violate th…
…e rule - 726: add int uint conversion
- 724:
GroupBy
window framing refactor
This PR adds:- design for window framing
- new agg functions for window frames
GroupBy
refactor using framing (frame = partition)
Aggregations
will have two execution paths while I am swapping out theWindow
execution layer:- In
GroupBy
node, agg functions will use window frame setup - In
Window
nodes, agg functions will continue to useAggregationBuffer
Other: - The
aggregation
package is a bit of a mess right now. I will delete all of the old aggregation and window code during the window refactor. - I was 50/50 on whether or not we should use a special iterator for groupBy. It was not too hard to extend the
windowBlockIterator
, which should drop-in work for regular windows.
- 722: Bug fix for using TRIM function in CHECK constraints
- 721: Adding Support for SRID
Adds srid field to existing spatial types, andst_srid
function: https://dev.mysql.com/doc/refman/8.0/en/gis-general-property-functions.html#function_st-srid.
Will add SRID option to wkb and wkt function in separate PR. - 718: Adding Well Known Binary Conversion Functions
Functions:st_asbinary
st_aswkb
st_pointfromwkb
st_linefromwkb
st_polyfromwkb
st_geomfromwkb
- 711: Adding Well Known Text Conversions
These are functions that allow a user to create spatial types using the Well Known Text (WKT) format.
Functions:point_from_text
line_from_text
poly_from_text
geom_from_text
as_text
as_wkt
- 710: Adding functions ST_X and ST_Y
These are spatial type functions that work specifically with point. - 704: Basic CREATE USER implementation
This adds the minimum for theCREATE USER
statement to work, in that we have an in-memory representation of the grant tables, which may be accessed either directly (by themysql
database) or through the user statements (of which we only haveCREATE USER
for now). - 695: Add SQL func time_format
Add SQL func time_format
Also took the time to refactor time parsing to match MySQL behavior closer, even its weirdest parts.
Fixes a bug in Time.Convert that led single-digit micro-second times to be parsed as tenth of seconds, e.g. 14:00:00.00007 was parsed as 14:00:00.7.
Note: I'm trying to achieve minimum compatibility with Metabase's MySQL connector, which required some functions (see #694) - 694: Add Locate SQL function
Add Locate SQL function.
I'm trying to achieve minimum compatibility with Metabase's MySQL connector, and it requires a couple new functions, so you'll see a few more PRs from me.
Reference: https://www.w3schools.com/sql/func_mysql_locate.asp