You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2017/08/11 01:50:06 UTC
[09/50] calcite-avatica-go git commit: Drop sequence in test and give
each table a unique name to prevent conflicts.
Drop sequence in test and give each table a unique name to prevent conflicts.
Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/commit/ed767485
Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/tree/ed767485
Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/diff/ed767485
Branch: refs/heads/master
Commit: ed767485838be56516d15770e3e7cba9a606b91f
Parents: aeb6fc3
Author: Francis Chuang <fr...@gmail.com>
Authored: Mon May 30 16:30:05 2016 +1000
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Aug 10 18:47:08 2017 -0700
----------------------------------------------------------------------
driver_test.go | 106 +++++++++++++++++++++++++++++-----------------------
errors.go | 2 -
wercker.yml | 4 +-
3 files changed, 62 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/ed767485/driver_test.go
----------------------------------------------------------------------
diff --git a/driver_test.go b/driver_test.go
index 62dfd89..d1dca9b 100644
--- a/driver_test.go
+++ b/driver_test.go
@@ -5,9 +5,11 @@ import (
"crypto/sha256"
"database/sql"
"fmt"
+ "github.com/satori/go.uuid"
"io/ioutil"
"os"
"path/filepath"
+ "strings"
"testing"
"time"
)
@@ -29,9 +31,14 @@ func init() {
dsn = env("AVATICA_HOST", "http://phoenix-server:8765")
}
+func generateTableName() string {
+ return "test" + strings.Replace(uuid.NewV4().String(), "-", "", -1)
+}
+
type DBTest struct {
*testing.T
- db *sql.DB
+ db *sql.DB
+ tableName string
}
func (dbt *DBTest) fail(method, query string, err error) {
@@ -73,13 +80,15 @@ func runTests(t *testing.T, dsn string, tests ...func(dbt *DBTest)) {
defer db.Close()
- db.Exec("DROP TABLE IF EXISTS test")
+ table := generateTableName()
+
+ db.Exec("DROP TABLE IF EXISTS " + table)
- dbt := &DBTest{t, db}
+ dbt := &DBTest{t, db, table}
for _, test := range tests {
test(dbt)
- dbt.db.Exec("DROP TABLE IF EXISTS test")
+ dbt.db.Exec("DROP TABLE IF EXISTS " + table)
}
}
@@ -88,13 +97,13 @@ func TestConnectionMustBeOpenedWithAutoCommitTrue(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec("CREATE TABLE test (id BIGINT PRIMARY KEY, val VARCHAR) TRANSACTIONAL=false")
+ dbt.mustExec("CREATE TABLE " + dbt.tableName + " (id BIGINT PRIMARY KEY, val VARCHAR) TRANSACTIONAL=false")
- dbt.mustExec("UPSERT INTO test VALUES (1,'A')")
+ dbt.mustExec("UPSERT INTO " + dbt.tableName + " VALUES (1,'A')")
- dbt.mustExec("UPSERT INTO test VALUES (2,'B')")
+ dbt.mustExec("UPSERT INTO " + dbt.tableName + " VALUES (2,'B')")
- rows := dbt.mustQuery("SELECT COUNT(*) FROM test")
+ rows := dbt.mustQuery("SELECT COUNT(*) FROM " + dbt.tableName)
defer rows.Close()
for rows.Next() {
@@ -120,11 +129,11 @@ func TestZeroValues(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec("CREATE TABLE test (int INTEGER PRIMARY KEY, flt FLOAT, bool BOOLEAN, str VARCHAR) TRANSACTIONAL=false")
+ dbt.mustExec("CREATE TABLE " + dbt.tableName + " (int INTEGER PRIMARY KEY, flt FLOAT, bool BOOLEAN, str VARCHAR) TRANSACTIONAL=false")
- dbt.mustExec("UPSERT INTO test VALUES (0, 0.0, false, '')")
+ dbt.mustExec("UPSERT INTO " + dbt.tableName + " VALUES (0, 0.0, false, '')")
- rows := dbt.mustQuery("SELECT * FROM test")
+ rows := dbt.mustQuery("SELECT * FROM " + dbt.tableName)
defer rows.Close()
for rows.Next() {
@@ -165,7 +174,7 @@ func TestDataTypes(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY,
uint UNSIGNED_INT,
bint BIGINT,
@@ -213,7 +222,7 @@ func TestDataTypes(t *testing.T) {
copy(binValue[:], "test")
- dbt.mustExec(`UPSERT INTO test VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
+ dbt.mustExec(`UPSERT INTO `+dbt.tableName+` VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
integerValue,
uintegerValue,
bintValue,
@@ -236,7 +245,7 @@ func TestDataTypes(t *testing.T) {
varbinValue,
)
- rows := dbt.mustQuery("SELECT * FROM test")
+ rows := dbt.mustQuery("SELECT * FROM " + dbt.tableName)
defer rows.Close()
var (
@@ -326,7 +335,7 @@ func TestLocations(t *testing.T) {
runTests(t, dsn+query, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
tm TIME PRIMARY KEY,
dt DATE,
tmstmp TIMESTAMP
@@ -344,13 +353,13 @@ func TestLocations(t *testing.T) {
tmstmpValue time.Time = time.Date(2100, 2, 1, 21, 21, 21, 222000000, loc)
)
- dbt.mustExec(`UPSERT INTO test VALUES (?, ?, ?)`,
+ dbt.mustExec(`UPSERT INTO `+dbt.tableName+` VALUES (?, ?, ?)`,
tmValue,
dtValue,
tmstmpValue,
)
- rows := dbt.mustQuery("SELECT * FROM test")
+ rows := dbt.mustQuery("SELECT * FROM " + dbt.tableName)
defer rows.Close()
var (
@@ -391,7 +400,7 @@ func TestDateAndTimestampsBefore1970(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY,
dt DATE,
tmstmp TIMESTAMP
@@ -403,13 +412,13 @@ func TestDateAndTimestampsBefore1970(t *testing.T) {
tmstmpValue time.Time = time.Date(1911, 5, 20, 21, 21, 21, 222000000, time.UTC)
)
- dbt.mustExec(`UPSERT INTO test VALUES (?, ?, ?)`,
+ dbt.mustExec(`UPSERT INTO `+dbt.tableName+` VALUES (?, ?, ?)`,
integerValue,
dtValue,
tmstmpValue,
)
- rows := dbt.mustQuery("SELECT dt, tmstmp FROM test")
+ rows := dbt.mustQuery("SELECT dt, tmstmp FROM " + dbt.tableName)
defer rows.Close()
var (
@@ -446,7 +455,7 @@ func TestStoreAndRetrieveBinaryData(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY,
bin VARBINARY
) TRANSACTIONAL=false`)
@@ -461,12 +470,12 @@ func TestStoreAndRetrieveBinaryData(t *testing.T) {
hash := sha256.Sum256(file)
- dbt.mustExec(`UPSERT INTO test VALUES (?, ?)`,
+ dbt.mustExec(`UPSERT INTO `+dbt.tableName+` VALUES (?, ?)`,
1,
file,
)
- rows := dbt.mustQuery("SELECT bin FROM test")
+ rows := dbt.mustQuery("SELECT bin FROM " + dbt.tableName)
defer rows.Close()
var receivedFile []byte
@@ -495,7 +504,7 @@ func TestCommittingTransactions(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY
) TRANSACTIONAL=true`)
@@ -505,7 +514,7 @@ func TestCommittingTransactions(t *testing.T) {
t.Fatalf("Unable to create transaction: %s", err)
}
- stmt, err := tx.Prepare(`UPSERT INTO test VALUES(?)`)
+ stmt, err := tx.Prepare(`UPSERT INTO ` + dbt.tableName + ` VALUES(?)`)
if err != nil {
t.Fatalf("Could not prepare statement: %s", err)
@@ -521,7 +530,7 @@ func TestCommittingTransactions(t *testing.T) {
}
}
- r := tx.QueryRow("SELECT COUNT(*) FROM test")
+ r := tx.QueryRow("SELECT COUNT(*) FROM " + dbt.tableName)
var count int
@@ -538,7 +547,7 @@ func TestCommittingTransactions(t *testing.T) {
// Commit the transaction
tx.Commit()
- rows := dbt.mustQuery("SELECT COUNT(*) FROM test")
+ rows := dbt.mustQuery("SELECT COUNT(*) FROM " + dbt.tableName)
var countAfterRollback int
@@ -561,7 +570,7 @@ func TestRollingBackTransactions(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY
) TRANSACTIONAL=true`)
@@ -571,7 +580,7 @@ func TestRollingBackTransactions(t *testing.T) {
t.Fatalf("Unable to create transaction: %s", err)
}
- stmt, err := tx.Prepare(`UPSERT INTO test VALUES(?)`)
+ stmt, err := tx.Prepare(`UPSERT INTO ` + dbt.tableName + ` VALUES(?)`)
if err != nil {
t.Fatalf("Could not prepare statement: %s", err)
@@ -587,7 +596,7 @@ func TestRollingBackTransactions(t *testing.T) {
}
}
- r := tx.QueryRow(`SELECT COUNT(*) FROM test`)
+ r := tx.QueryRow(`SELECT COUNT(*) FROM ` + dbt.tableName)
var count int
@@ -604,7 +613,7 @@ func TestRollingBackTransactions(t *testing.T) {
// Rollback the transaction
tx.Rollback()
- rows := dbt.mustQuery(`SELECT COUNT(*) FROM test`)
+ rows := dbt.mustQuery(`SELECT COUNT(*) FROM ` + dbt.tableName)
var countAfterRollback int
@@ -629,11 +638,11 @@ func TestFetchingMoreRows(t *testing.T) {
runTests(t, dsn+query, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY
) TRANSACTIONAL=false`)
- stmt, err := dbt.db.Prepare(`UPSERT INTO test VALUES(?)`)
+ stmt, err := dbt.db.Prepare(`UPSERT INTO ` + dbt.tableName + ` VALUES(?)`)
if err != nil {
dbt.Fatal(err)
@@ -649,7 +658,7 @@ func TestFetchingMoreRows(t *testing.T) {
}
}
- rows := dbt.mustQuery(`SELECT * FROM test`)
+ rows := dbt.mustQuery(`SELECT * FROM ` + dbt.tableName)
defer rows.Close()
count := 0
@@ -669,11 +678,11 @@ func TestExecuteShortcut(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY
) TRANSACTIONAL=false`)
- res, err := dbt.db.Exec(`UPSERT INTO test VALUES(1)`)
+ res, err := dbt.db.Exec(`UPSERT INTO ` + dbt.tableName + ` VALUES(1)`)
if err != nil {
dbt.Fatal(err)
@@ -699,11 +708,11 @@ func TestQueryShortcut(t *testing.T) {
runTests(t, dsn+query, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
int INTEGER PRIMARY KEY
) TRANSACTIONAL=false`)
- stmt, err := dbt.db.Prepare(`UPSERT INTO test VALUES(?)`)
+ stmt, err := dbt.db.Prepare(`UPSERT INTO ` + dbt.tableName + ` VALUES(?)`)
if err != nil {
dbt.Fatal(err)
@@ -719,7 +728,7 @@ func TestQueryShortcut(t *testing.T) {
}
}
- rows := dbt.mustQuery(`SELECT * FROM test`)
+ rows := dbt.mustQuery(`SELECT * FROM ` + dbt.tableName)
defer rows.Close()
count := 0
@@ -739,13 +748,13 @@ func TestOptimisticConcurrency(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
id INTEGER PRIMARY KEY,
msg VARCHAR,
version INTEGER
) TRANSACTIONAL=true`)
- stmt, err := dbt.db.Prepare(`UPSERT INTO test VALUES(?, ?, ?)`)
+ stmt, err := dbt.db.Prepare(`UPSERT INTO ` + dbt.tableName + ` VALUES(?, ?, ?)`)
if err != nil {
dbt.Fatal(err)
@@ -775,10 +784,10 @@ func TestOptimisticConcurrency(t *testing.T) {
}
// Select from first transaction
- _ = tx1.QueryRow(`SELECT MAX(version) FROM test`)
+ _ = tx1.QueryRow(`SELECT MAX(version) FROM ` + dbt.tableName)
// Modify using second transaction
- _, err = tx2.Exec(`UPSERT INTO test VALUES(?, ?, ?)`, 7, "message value 7", 7)
+ _, err = tx2.Exec(`UPSERT INTO `+dbt.tableName+` VALUES(?, ?, ?)`, 7, "message value 7", 7)
if err != nil {
dbt.Fatal(err)
@@ -791,7 +800,7 @@ func TestOptimisticConcurrency(t *testing.T) {
}
// Modify using tx1
- _, err = tx1.Exec(`UPSERT INTO test VALUES(?, ?, ?)`, 7, "message value 7", 7)
+ _, err = tx1.Exec(`UPSERT INTO `+dbt.tableName+` VALUES(?, ?, ?)`, 7, "message value 7", 7)
if err != nil {
dbt.Fatal(err)
@@ -816,7 +825,10 @@ func TestLastInsertIDShouldReturnError(t *testing.T) {
runTests(t, dsn, func(dbt *DBTest) {
// Create and seed table
- dbt.mustExec(`CREATE TABLE test (
+
+ dbt.mustExec(`DROP SEQUENCE IF EXISTS test.test_sequence`)
+
+ dbt.mustExec(`CREATE TABLE ` + dbt.tableName + ` (
id INTEGER PRIMARY KEY,
msg VARCHAR,
version INTEGER
@@ -824,7 +836,9 @@ func TestLastInsertIDShouldReturnError(t *testing.T) {
dbt.mustExec(`CREATE SEQUENCE test.test_sequence`)
- res, err := dbt.db.Exec(`UPSERT INTO test VALUES(NEXT VALUE FOR test.test_sequence, 'abc', 1)`)
+ res, err := dbt.db.Exec(`UPSERT INTO ` + dbt.tableName + ` VALUES(NEXT VALUE FOR test.test_sequence, 'abc', 1)`)
+
+ dbt.mustExec(`DROP SEQUENCE test.test_sequence`)
if err != nil {
dbt.Fatal(err)
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/ed767485/errors.go
----------------------------------------------------------------------
diff --git a/errors.go b/errors.go
index 86e3416..d704375 100644
--- a/errors.go
+++ b/errors.go
@@ -55,10 +55,8 @@ func (r ResponseError) Name() string {
// errorResponseToReponseError converts an error protocol buffer response
// to a native golang error.
func errorResponseToResponseError(message *message.ErrorResponse) ResponseError {
-
re := regexp.MustCompile(`java.sql.SQLException: ERROR (\d+) \((\d+)\)`)
codes := re.FindStringSubmatch(message.ErrorMessage)
-
errorCode, _ := strconv.Atoi(codes[1])
sqlState := codes[2]
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/ed767485/wercker.yml
----------------------------------------------------------------------
diff --git a/wercker.yml b/wercker.yml
index fd3ebf3..134bc0f 100644
--- a/wercker.yml
+++ b/wercker.yml
@@ -40,7 +40,7 @@ build:
- script:
name: go test
code: |
- go test $(go list ./... | grep -v /vendor/)
+ go test -cover -v $(go list ./... | grep -v /vendor/)
# Invoke goveralls
- script:
@@ -48,5 +48,5 @@ build:
code: |
go get -u github.com/go-playground/overalls
go get -u github.com/mattn/goveralls
- overalls -project="$WERCKER_GIT_DOMAIN/$WERCKER_GIT_OWNER/$WERCKER_GIT_REPOSITORY" -covermode=set -ignore=.git,vendor -debug
+ overalls -project="$WERCKER_GIT_DOMAIN/$WERCKER_GIT_OWNER/$WERCKER_GIT_REPOSITORY" -covermode=set -ignore=.git,vendor,message -debug
GIT_BRANCH=$WERCKER_GIT_BRANCH goveralls -coverprofile=overalls.coverprofile -service=wercker.com -repotoken $COVERALLS_TOKEN