Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
1aff5a1
Added ComPreparedParsed to Handler
zachmu Dec 19, 2023
5b0d1e6
New handler method
zachmu Dec 20, 2023
a11f114
Merge branch 'main' into zachmu/prepared
zachmu Dec 20, 2023
e00984a
More functionality for handler
zachmu Dec 21, 2023
8ba1b0b
Refactoring the giant query method
zachmu Dec 22, 2023
43a4a39
Bug fix
zachmu Dec 22, 2023
331d93e
more bug fixes from missing errors
zachmu Dec 22, 2023
62c0123
Small refactoring of prepare logic
zachmu Dec 22, 2023
decf189
preparedStatement method
zachmu Dec 22, 2023
375b868
First pass at ComBind
zachmu Dec 22, 2023
a49346d
More experimental glue code
zachmu Dec 28, 2023
afdaa83
First pass at full solution
zachmu Dec 28, 2023
b415b43
Fixed up interface changes
zachmu Dec 28, 2023
a68d8d6
New interface
zachmu Dec 28, 2023
e25faf4
Refactoring for new interface
zachmu Jan 3, 2024
73fa70a
Better error messages
zachmu Jan 3, 2024
0ca3ec1
Added missing return
zachmu Jan 3, 2024
c57157e
Added types to bindvars in inserts
zachmu Jan 5, 2024
44d56df
Set bindvar types for comparisons
zachmu Jan 5, 2024
4cf0c81
[ga-format-pr] Run ./format_repo.sh to fix formatting
zachmu Jan 5, 2024
964cf18
Extract bindvar logic to a method
zachmu Jan 10, 2024
d161b3d
pull origin
zachmu Jan 10, 2024
73c2328
Merge branch 'main' into zachmu/prepared
zachmu Jan 10, 2024
38deb69
[ga-format-pr] Run ./format_repo.sh to fix formatting
zachmu Jan 10, 2024
9c787e4
Added update statement support for bindvar type assignment
zachmu Jan 10, 2024
708e2d7
Merge branch 'zachmu/prepared' of github.com:dolthub/go-mysql-server …
zachmu Jan 10, 2024
1eabd60
Development branch for vitess
zachmu Jan 10, 2024
1add8e8
upgrade vitess
zachmu Jan 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
372 changes: 235 additions & 137 deletions engine.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ require (
github.com/dolthub/go-icu-regex v0.0.0-20230524105445-af7e7991c97e
github.com/dolthub/jsonpath v0.0.2-0.20230525180605-8dc13778fd72
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81
github.com/dolthub/vitess v0.0.0-20240104220048-4b296d3a3d8b
github.com/dolthub/vitess v0.0.0-20240110233415-e46007d964c0
github.com/go-kit/kit v0.10.0
github.com/go-sql-driver/mysql v1.7.2-0.20231213112541-0004702b931d
github.com/gocraft/dbr/v2 v2.7.2
Expand Down
8 changes: 2 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,8 @@ github.com/dolthub/jsonpath v0.0.2-0.20230525180605-8dc13778fd72 h1:NfWmngMi1CYU
github.com/dolthub/jsonpath v0.0.2-0.20230525180605-8dc13778fd72/go.mod h1:ZWUdY4iszqRQ8OcoXClkxiAVAoWoK3cq0Hvv4ddGRuM=
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81 h1:7/v8q9XGFa6q5Ap4Z/OhNkAMBaK5YeuEzwJt+NZdhiE=
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81/go.mod h1:siLfyv2c92W1eN/R4QqG/+RjjX5W2+gCTRjZxBjI3TY=
github.com/dolthub/vitess v0.0.0-20240103005833-78fa0d3c4815 h1:3mVQUpOVp6pLTE2kgvn8yolJ8SgTgyWEgVNIoVd/Hko=
github.com/dolthub/vitess v0.0.0-20240103005833-78fa0d3c4815/go.mod h1:IwjNXSQPymrja5pVqmfnYdcy7Uv7eNJNBPK/MEh9OOw=
github.com/dolthub/vitess v0.0.0-20240103190516-a3640a70c939 h1:kciLntsnQPtDSQOUfSwmPj7TsAR2bzP8GUwuWnGvCTo=
github.com/dolthub/vitess v0.0.0-20240103190516-a3640a70c939/go.mod h1:IwjNXSQPymrja5pVqmfnYdcy7Uv7eNJNBPK/MEh9OOw=
github.com/dolthub/vitess v0.0.0-20240104220048-4b296d3a3d8b h1:isS4RQQIxNGku8NV/SrVGSyBoHtrgpYt0fd/zv53ix4=
github.com/dolthub/vitess v0.0.0-20240104220048-4b296d3a3d8b/go.mod h1:IwjNXSQPymrja5pVqmfnYdcy7Uv7eNJNBPK/MEh9OOw=
github.com/dolthub/vitess v0.0.0-20240110233415-e46007d964c0 h1:P8wb4dR5krirPa0swEJbEObc/I7GaAM/01nOnuQrl0c=
github.com/dolthub/vitess v0.0.0-20240110233415-e46007d964c0/go.mod h1:IwjNXSQPymrja5pVqmfnYdcy7Uv7eNJNBPK/MEh9OOw=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
Expand Down
27 changes: 6 additions & 21 deletions server/extension.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,20 +92,13 @@ type Chain interface {
// Note the contents of the query slice may change after
// the first call to callback. So the Handler should not
// hang on to the byte slice.
ComQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) error

// ComParsedQuery is called when a connection receives a
// query that has already been parsed. Note the contents
// of the query slice may change after the first call to
// callback. So the Handler should not hang on to the byte
// slice.
ComParsedQuery(c *mysql.Conn, query string, parsed sqlparser.Statement, callback func(res *sqltypes.Result, more bool) error) error
ComQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) error

// ComMultiQuery is called when a connection receives a query and the
// client supports MULTI_STATEMENT. It should process the first
// statement in |query| and return the remainder. It will be called
// multiple times until the remainder is |""|.
ComMultiQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) (string, error)
ComMultiQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) (string, error)

// ComPrepare is called when a connection receives a prepared
// statement query.
Expand All @@ -121,15 +114,11 @@ type chainInterceptor struct {
c Chain
}

func (ci *chainInterceptor) ComQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) error {
func (ci *chainInterceptor) ComQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) error {
return ci.i.Query(ci.c, c, query, callback)
}

func (ci *chainInterceptor) ComParsedQuery(c *mysql.Conn, query string, parsed ast.Statement, callback func(res *sqltypes.Result, more bool) error) error {
return ci.i.ParsedQuery(ci.c, c, query, parsed, callback)
}

func (ci *chainInterceptor) ComMultiQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) (string, error) {
func (ci *chainInterceptor) ComMultiQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) (string, error) {
return ci.i.MultiQuery(ci.c, c, query, callback)
}

Expand Down Expand Up @@ -158,15 +147,11 @@ func (ih *interceptorHandler) ComInitDB(c *mysql.Conn, schemaName string) error
return ih.h.ComInitDB(c, schemaName)
}

func (ih *interceptorHandler) ComQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) error {
func (ih *interceptorHandler) ComQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) error {
return ih.c.ComQuery(c, query, callback)
}

func (ih *interceptorHandler) ComParsedQuery(c *mysql.Conn, query string, parsed ast.Statement, callback func(res *sqltypes.Result, more bool) error) error {
return ih.c.ComParsedQuery(c, query, parsed, callback)
}

func (ih *interceptorHandler) ComMultiQuery(c *mysql.Conn, query string, callback func(res *sqltypes.Result, more bool) error) (string, error) {
func (ih *interceptorHandler) ComMultiQuery(c *mysql.Conn, query string, callback mysql.ResultSpoolFn) (string, error) {
return ih.c.ComMultiQuery(c, query, callback)
}

Expand Down
4 changes: 2 additions & 2 deletions server/golden/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ func (h MySqlProxy) ConnectionClosed(c *mysql.Conn) {
func (h MySqlProxy) ComMultiQuery(
c *mysql.Conn,
query string,
callback func(*sqltypes.Result, bool) error,
callback mysql.ResultSpoolFn,
) (string, error) {
conn, err := h.getConn(c.ConnectionID)
if err != nil {
Expand All @@ -189,7 +189,7 @@ func (h MySqlProxy) ComMultiQuery(
func (h MySqlProxy) ComQuery(
c *mysql.Conn,
query string,
callback func(*sqltypes.Result, bool) error,
callback mysql.ResultSpoolFn,
) error {
conn, err := h.getConn(c.ConnectionID)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions server/golden/validator.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func (v Validator) ConnectionClosed(c *mysql.Conn) {
func (v Validator) ComMultiQuery(
c *mysql.Conn,
query string,
callback func(*sqltypes.Result, bool) error,
callback mysql.ResultSpoolFn,
) (string, error) {
ag := newResultAggregator(callback)
var remainder string
Expand Down Expand Up @@ -122,7 +122,7 @@ func (v Validator) ComMultiQuery(
func (v Validator) ComQuery(
c *mysql.Conn,
query string,
callback func(*sqltypes.Result, bool) error,
callback mysql.ResultSpoolFn,
) error {
ag := newResultAggregator(callback)
eg, _ := errgroup.WithContext(context.Background())
Expand Down
Loading