From e6889891afb9c92fae05fdf6d54d81a3d603d717 Mon Sep 17 00:00:00 2001 From: Andy Arthur Date: Tue, 19 May 2020 14:42:58 -0500 Subject: [PATCH 1/3] fix panic --- bats/sql.bats | 6 +++++- go/go.mod | 10 +++++----- go/go.sum | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/bats/sql.bats b/bats/sql.bats index f4337b0c93..d3eb462efd 100755 --- a/bats/sql.bats +++ b/bats/sql.bats @@ -650,8 +650,12 @@ SQL @test "sql divide by zero does not panic" { run dolt sql -q "select 1/0 from dual" [ $status -ne 0 ] - skip "Divide by zero panics dolt right now" + [[ "$output" =~ "error processing results: divide by zero" ]] || false [[ ! "$output" =~ "panic: " ]] || false + + run dolt sql -q "select 1.0/0.0 from dual" + [ $status -eq 0 ] + [[ "$output" =~ " +Inf " ]] || false } @test "sql delete all rows in table" { diff --git a/go/go.mod b/go/go.mod index 8fcf35532d..997329403a 100644 --- a/go/go.mod +++ b/go/go.mod @@ -26,7 +26,7 @@ require ( github.com/go-sql-driver/mysql v1.5.0 github.com/gocraft/dbr/v2 v2.7.0 github.com/gogo/protobuf v1.3.1 // indirect - github.com/golang/protobuf v1.4.0 + github.com/golang/protobuf v1.4.2 github.com/golang/snappy v0.0.1 github.com/google/go-cmp v0.4.0 github.com/google/uuid v1.1.1 @@ -44,7 +44,7 @@ require ( github.com/kch42/buzhash v0.0.0-20160816060738-9bdec3dec7c6 github.com/kr/pretty v0.2.0 // indirect github.com/liquidata-inc/dolt/go/gen/proto/dolt/services/eventsapi v0.0.0-20200320155049-a8e482faeffd - github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200508170854-b74c3414aebf + github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28 github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 github.com/liquidata-inc/mmap-go v1.0.3 github.com/liquidata-inc/sqllogictest/go v0.0.0-20200320151923-b11801f10e15 @@ -74,10 +74,10 @@ require ( go.mongodb.org/mongo-driver v1.3.0 // indirect go.uber.org/zap v1.14.1 golang.org/x/crypto v0.0.0-20200320145329-97fc981609be - golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5 - golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3 + golang.org/x/net v0.0.0-20200519113804-d87ec0cfa476 + golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 google.golang.org/api v0.20.0 - google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84 // indirect + google.golang.org/genproto v0.0.0-20200519141106-08726f379972 // indirect google.golang.org/grpc v1.29.1 gopkg.in/square/go-jose.v2 v2.4.1 gopkg.in/src-d/go-errors.v1 v1.0.0 diff --git a/go/go.sum b/go/go.sum index 80db671093..5cb9c93e51 100644 --- a/go/go.sum +++ b/go/go.sum @@ -240,6 +240,9 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0 h1:oOuy+ugB+P/kBdUnG5QaMXSIyJ1q38wWSojYCb3z5VQ= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= @@ -391,6 +394,10 @@ github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-b github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200508170854-b74c3414aebf h1:zgJXH8Lk9gMobF523ZySkdFAuoPcgnIwbBfjrtGuJJ0= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200508170854-b74c3414aebf/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192611-b9ddaacae7b5 h1:+Wo2nBuV5oe2F5/+chvmNxekcDMGejXAeIU+y/xI7Tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192611-b9ddaacae7b5/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28 h1:yzYcvE5uZ+/qWfohTiLEFBb004NRnRrr1EqfOf6XrM4= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 h1:phMgajKClMUiIr+hF2LGt8KRuUa2Vd2GI1sNgHgSXoU= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0/go.mod h1:YC1rI9k5gx8D02ljlbxDfZe80s/iq8bGvaaQsvR+qxs= github.com/liquidata-inc/mmap-go v1.0.3 h1:2LndAeAtup9rpvUmu4wZSYCsjCQ0Zpc+NqE+6+PnT7g= @@ -749,6 +756,8 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5 h1:WQ8q63x+f/zpC8Ac1s9wLElVoHhm32p6tudrU72n1QA= golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200519113804-d87ec0cfa476 h1:E7ct1C6/33eOdrGZKMoyntcEvs2dwZnDe30crG5vpYU= +golang.org/x/net v0.0.0-20200519113804-d87ec0cfa476/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -806,6 +815,8 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3 h1:5B6i6EAiSYyejWfvc5Rc9BbI3rzIsrrXfAQBWnYfn+w= golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -902,6 +913,8 @@ google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84 h1:pSLkPbrjnPyLDYUO2VM9mDLqo2V6CFBY84lFSZAfoi4= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200519141106-08726f379972 h1:6ydLqG65DIMNJf6p97WudGsmd1w3Ickm/LiZnBrREPI= +google.golang.org/genproto v0.0.0-20200519141106-08726f379972/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -924,6 +937,9 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0 h1:qdOKuR/EIArgaWNjetjgTzgVTAZ+S/WXVrq9HW9zimw= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20150924051756-4e86f4367175/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From a6cd9a14eaf3c3423169778a0cf4f1c7567d9785 Mon Sep 17 00:00:00 2001 From: Andy Arthur Date: Tue, 19 May 2020 15:47:19 -0500 Subject: [PATCH 2/3] changed divide by zero error to return NULL --- bats/sql.bats | 4 ++-- go/go.mod | 2 +- go/go.sum | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bats/sql.bats b/bats/sql.bats index d3eb462efd..235ff9fae9 100755 --- a/bats/sql.bats +++ b/bats/sql.bats @@ -649,8 +649,8 @@ SQL @test "sql divide by zero does not panic" { run dolt sql -q "select 1/0 from dual" - [ $status -ne 0 ] - [[ "$output" =~ "error processing results: divide by zero" ]] || false + [ $status -eq 0 ] + [[ "$output" =~ " NULL " ]] || false [[ ! "$output" =~ "panic: " ]] || false run dolt sql -q "select 1.0/0.0 from dual" diff --git a/go/go.mod b/go/go.mod index 997329403a..e9475fa75e 100644 --- a/go/go.mod +++ b/go/go.mod @@ -44,7 +44,7 @@ require ( github.com/kch42/buzhash v0.0.0-20160816060738-9bdec3dec7c6 github.com/kr/pretty v0.2.0 // indirect github.com/liquidata-inc/dolt/go/gen/proto/dolt/services/eventsapi v0.0.0-20200320155049-a8e482faeffd - github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28 + github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740 github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 github.com/liquidata-inc/mmap-go v1.0.3 github.com/liquidata-inc/sqllogictest/go v0.0.0-20200320151923-b11801f10e15 diff --git a/go/go.sum b/go/go.sum index 5cb9c93e51..de4e95ed66 100644 --- a/go/go.sum +++ b/go/go.sum @@ -398,6 +398,8 @@ github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192611-b9ddaacae7b5 h1 github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192611-b9ddaacae7b5/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28 h1:yzYcvE5uZ+/qWfohTiLEFBb004NRnRrr1EqfOf6XrM4= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740 h1:ZkwvX2H1xv5s3WStJ/yeG2aHLpYUv3R+hktvvWUKVvI= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 h1:phMgajKClMUiIr+hF2LGt8KRuUa2Vd2GI1sNgHgSXoU= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0/go.mod h1:YC1rI9k5gx8D02ljlbxDfZe80s/iq8bGvaaQsvR+qxs= github.com/liquidata-inc/mmap-go v1.0.3 h1:2LndAeAtup9rpvUmu4wZSYCsjCQ0Zpc+NqE+6+PnT7g= @@ -980,6 +982,7 @@ modernc.org/mathutil v1.1.0/go.mod h1:Jip3gBlE32vJMsD4RJ5qzniC0pvRnCxrlwmKPZrrLX modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc= modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= +pcloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 62a55cd8b59d81abb1113e2bf38790c801605c2d Mon Sep 17 00:00:00 2001 From: Andy Arthur Date: Tue, 19 May 2020 16:39:26 -0500 Subject: [PATCH 3/3] added test for 1 div 0 --- bats/sql.bats | 8 ++++++-- go/go.mod | 2 +- go/go.sum | 6 ++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/bats/sql.bats b/bats/sql.bats index 235ff9fae9..211639bcdd 100755 --- a/bats/sql.bats +++ b/bats/sql.bats @@ -652,10 +652,14 @@ SQL [ $status -eq 0 ] [[ "$output" =~ " NULL " ]] || false [[ ! "$output" =~ "panic: " ]] || false - run dolt sql -q "select 1.0/0.0 from dual" [ $status -eq 0 ] - [[ "$output" =~ " +Inf " ]] || false + [[ "$output" =~ " NULL " ]] || false + [[ ! "$output" =~ "panic: " ]] || false + run dolt sql -q "select 1 div 0 from dual" + [ $status -eq 0 ] + [[ "$output" =~ " NULL " ]] || false + [[ ! "$output" =~ "panic: " ]] || false } @test "sql delete all rows in table" { diff --git a/go/go.mod b/go/go.mod index e9475fa75e..6d02cca235 100644 --- a/go/go.mod +++ b/go/go.mod @@ -44,7 +44,7 @@ require ( github.com/kch42/buzhash v0.0.0-20160816060738-9bdec3dec7c6 github.com/kr/pretty v0.2.0 // indirect github.com/liquidata-inc/dolt/go/gen/proto/dolt/services/eventsapi v0.0.0-20200320155049-a8e482faeffd - github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740 + github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519213537-130e749c2a7d github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 github.com/liquidata-inc/mmap-go v1.0.3 github.com/liquidata-inc/sqllogictest/go v0.0.0-20200320151923-b11801f10e15 diff --git a/go/go.sum b/go/go.sum index de4e95ed66..be1bc813cf 100644 --- a/go/go.sum +++ b/go/go.sum @@ -400,6 +400,12 @@ github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28 h1 github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519192958-0ef939e99b28/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740 h1:ZkwvX2H1xv5s3WStJ/yeG2aHLpYUv3R+hktvvWUKVvI= github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519204047-b7e795acb740/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519211853-4d572069f9cc h1:Shv5XNmFaqwGNpaJiQR6UMKn/ezoQU08kjwdX967FcE= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519211853-4d572069f9cc/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519213302-a9c1ec864fbb h1:pH+Wvzv27OQolBsMwUa8gKJ8AfkdeWkNW8pIof+NDJg= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519213302-a9c1ec864fbb/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519213537-130e749c2a7d h1:j2x7fCcQcibMFdXzPkUG3+0aWUvqL6+9W7Iga555A14= +github.com/liquidata-inc/go-mysql-server v0.5.1-0.20200519213537-130e749c2a7d/go.mod h1:Qo0l83LdX5Z77p0tTLyJTrttZywFm0S+RYo6Shi97tw= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0 h1:phMgajKClMUiIr+hF2LGt8KRuUa2Vd2GI1sNgHgSXoU= github.com/liquidata-inc/ishell v0.0.0-20190514193646-693241f1f2a0/go.mod h1:YC1rI9k5gx8D02ljlbxDfZe80s/iq8bGvaaQsvR+qxs= github.com/liquidata-inc/mmap-go v1.0.3 h1:2LndAeAtup9rpvUmu4wZSYCsjCQ0Zpc+NqE+6+PnT7g=