From 9210f9b513835eb53ea5688755e32ee76abb991d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 16 Apr 2018 15:07:29 +0800 Subject: [PATCH 01/19] add cockroach support --- dialect_postgres.go | 21 +++++++++++++++++---- engine.go | 11 +++++++++-- test_cockroach.sh | 1 + 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100755 test_cockroach.sh diff --git a/dialect_postgres.go b/dialect_postgres.go index 3df682e8..11254c44 100644 --- a/dialect_postgres.go +++ b/dialect_postgres.go @@ -1019,8 +1019,8 @@ WHERE c.relkind = 'r'::char AND c.relname = $1%s AND f.attnum > 0 ORDER BY f.att col.Nullable = (isNullable == "YES") - switch dataType { - case "character varying", "character": + switch strings.ToLower(dataType) { + case "character varying", "character", "string": col.SQLType = core.SQLType{Name: core.Varchar, DefaultLength: 0, DefaultLength2: 0} case "timestamp without time zone": col.SQLType = core.SQLType{Name: core.DateTime, DefaultLength: 0, DefaultLength2: 0} @@ -1032,10 +1032,19 @@ WHERE c.relkind = 'r'::char AND c.relname = $1%s AND f.attnum > 0 ORDER BY f.att col.SQLType = core.SQLType{Name: core.Bool, DefaultLength: 0, DefaultLength2: 0} case "time without time zone": col.SQLType = core.SQLType{Name: core.Time, DefaultLength: 0, DefaultLength2: 0} + case "bytes": + col.SQLType = core.SQLType{Name: core.Binary, DefaultLength: 0, DefaultLength2: 0} case "oid": col.SQLType = core.SQLType{Name: core.BigInt, DefaultLength: 0, DefaultLength2: 0} default: - col.SQLType = core.SQLType{Name: strings.ToUpper(dataType), DefaultLength: 0, DefaultLength2: 0} + startIdx := strings.Index(strings.ToLower(dataType), "string(") + if startIdx != -1 && strings.HasSuffix(dataType, ")") { + length := dataType[startIdx+8 : len(dataType)-1] + l, _ := strconv.Atoi(length) + col.SQLType = core.SQLType{Name: "STRING", DefaultLength: l, DefaultLength2: 0} + } else { + col.SQLType = core.SQLType{Name: strings.ToUpper(dataType), DefaultLength: 0, DefaultLength2: 0} + } } if _, ok := core.SqlTypes[col.SQLType.Name]; !ok { return nil, nil, fmt.Errorf("Unknown colType: %v", dataType) @@ -1124,6 +1133,10 @@ func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) if err != nil { return nil, err } + + if indexName == "primary" { + continue + } indexName = strings.Trim(indexName, `" `) if strings.HasSuffix(indexName, "_pkey") { continue @@ -1145,7 +1158,7 @@ func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) index := &core.Index{Name: indexName, Type: indexType, Cols: make([]string, 0)} for _, colName := range colNames { - index.Cols = append(index.Cols, strings.Trim(colName, `" `)) + index.Cols = append(index.Cols, strings.TrimSpace(strings.Replace(colName, `"`, "", -1))) } index.IsRegular = isRegular indexes[index.Name] = index diff --git a/engine.go b/engine.go index f04c702e..e992679f 100644 --- a/engine.go +++ b/engine.go @@ -398,12 +398,19 @@ func (engine *Engine) DBMetas() ([]*core.Table, error) { } table.Indexes = indexes + var seq int for _, index := range indexes { for _, name := range index.Cols { - if col := table.GetColumn(name); col != nil { + parts := strings.Split(name, " ") + if len(parts) > 1 { + if parts[1] == "DESC" { + seq = 1 + } + } + if col := table.GetColumn(parts[0]); col != nil { col.Indexes[index.Name] = index.Type } else { - return nil, fmt.Errorf("Unknown col %s in index %v of table %v, columns %v", name, index.Name, table.Name, table.ColumnsSeq()) + return nil, fmt.Errorf("Unknown col %s seq %d, in index %v of table %v, columns %v", name, seq, index.Name, table.Name, table.ColumnsSeq()) } } } diff --git a/test_cockroach.sh b/test_cockroach.sh new file mode 100755 index 00000000..ea6a844b --- /dev/null +++ b/test_cockroach.sh @@ -0,0 +1 @@ +go test -db=postgres -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" \ No newline at end of file From 326e4ca4a5dcb9333d5045bb018e2e09b3cdb3f5 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 09:39:33 +0800 Subject: [PATCH 02/19] add cockroach test to circleci --- circle.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 circle.yml diff --git a/circle.yml b/circle.yml new file mode 100644 index 00000000..61d5bf23 --- /dev/null +++ b/circle.yml @@ -0,0 +1,46 @@ +dependencies: + override: + # './...' is a relative pattern which means all subdirectories + - go get -t -d -v ./... + - go get -t -d -v github.com/go-xorm/tests + - go get -u github.com/go-xorm/core + - go get -u github.com/go-xorm/builder + - go build -v + +database: + override: + - mysql -u root -e "CREATE DATABASE xorm_test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" + - mysql -u root -e "CREATE DATABASE xorm_test1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" + - mysql -u root -e "CREATE DATABASE xorm_test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" + - mysql -u root -e "CREATE DATABASE xorm_test3 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" + - createdb -p 5432 -e -U postgres xorm_test + - createdb -p 5432 -e -U postgres xorm_test1 + - createdb -p 5432 -e -U postgres xorm_test2 + - createdb -p 5432 -e -U postgres xorm_test3 + - psql xorm_test postgres -c "create schema xorm" + +test: + override: + # './...' is a relative pattern which means all subdirectories + - go get -u github.com/wadey/gocovmerge + - go test -v -race -db="sqlite3" -conn_str="./test.db" -coverprofile=coverage1-1.txt -covermode=atomic + - go test -v -race -db="sqlite3" -conn_str="./test.db" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic + - go test -v -race -db="mysql" -conn_str="root:@/xorm_test" -coverprofile=coverage2-1.txt -covermode=atomic + - go test -v -race -db="mysql" -conn_str="root:@/xorm_test" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic + - go test -v -race -db="mymysql" -conn_str="xorm_test/root/" -coverprofile=coverage3-1.txt -covermode=atomic + - go test -v -race -db="mymysql" -conn_str="xorm_test/root/" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic + - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -coverprofile=coverage4-1.txt -covermode=atomic + - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic + - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic + - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic + - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz + - cp -i cockroach-v2.0.0.linux-amd64/cockroach /usr/local/bin + - cockroach start --insecure --host=localhost & + - cockroach sql --execute="create database xorm_test" + - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic + - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt> coverage.txt + - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh + - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./mysql.sh + - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./postgres.sh + post: + - bash <(curl -s https://codecov.io/bash) \ No newline at end of file From 99f1f87526fa5992238329c05f49182c83f8a6af Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 10:13:32 +0800 Subject: [PATCH 03/19] fix run cockroach --- circle.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index 61d5bf23..8820afea 100644 --- a/circle.yml +++ b/circle.yml @@ -34,9 +34,8 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - - cp -i cockroach-v2.0.0.linux-amd64/cockroach /usr/local/bin - - cockroach start --insecure --host=localhost & - - cockroach sql --execute="create database xorm_test" + - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost & + - ./cockroach-v2.0.0.linux-amd64/cockroach sql --execute="create database xorm_test" - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt> coverage.txt - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh From 574ada28a80fa2b3c8d975bf990565f8676a611f Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 10:31:28 +0800 Subject: [PATCH 04/19] fix test --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 8820afea..668adc25 100644 --- a/circle.yml +++ b/circle.yml @@ -35,7 +35,7 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost & - - ./cockroach-v2.0.0.linux-amd64/cockroach sql --execute="create database xorm_test" + - ./cockroach-v2.0.0.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt> coverage.txt - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh From 2e224f2db7d39d20af0b8eb09890f925bd39aae2 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 10:54:44 +0800 Subject: [PATCH 05/19] run cockroach backround --- circle.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 668adc25..52a6b286 100644 --- a/circle.yml +++ b/circle.yml @@ -34,7 +34,9 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost & + - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost + background: true + - sleep 5 - ./cockroach-v2.0.0.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt> coverage.txt From 96cb0ee0edef53d3bfeef74e62dc5ef8b49810d5 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 10:57:06 +0800 Subject: [PATCH 06/19] run cockroach backround --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 52a6b286..8cfb87f8 100644 --- a/circle.yml +++ b/circle.yml @@ -34,7 +34,7 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost + - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost: background: true - sleep 5 - ./cockroach-v2.0.0.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" From 711f1221f5f971b26d04474633f5fc7889e61488 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 17 Apr 2018 21:29:02 +0800 Subject: [PATCH 07/19] run cockroach background --- circle.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 8cfb87f8..a51a8a8e 100644 --- a/circle.yml +++ b/circle.yml @@ -34,8 +34,7 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --host=localhost: - background: true + - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --background --host=localhost - sleep 5 - ./cockroach-v2.0.0.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic From e822936eff270cb6816bedc651ac81b057a9342e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 20 Oct 2018 09:40:01 +0800 Subject: [PATCH 08/19] add drone ci --- .drone.yml | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 6001ec59..5bae2b3f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -505,8 +505,24 @@ steps: commands: - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" + when: + event: + - push + - pull_request + +- name: init_cockroach + pull: default + image: cockroachdb/cockroach:v2.0.6 + commands: + - cockroach sql --insecure --execute="create database xorm_test" + +- name: test-cockroach + image: golang:1.12 + commands: + - go test -v -race -db="postgres" -conn_str="postgres://postgres:@cockroach/xorm_test?sslmode=disable" -schema=xorm -coverprofile=coverage7-1.txt -covermode=atomic + - go test -v -race -db="postgres" -conn_str="postgres://postgres:@cockroach/xorm_test?sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage7-2.txt -covermode=atomic - go get -u github.com/wadey/gocovmerge - - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt > coverage.txt + - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt when: event: - push @@ -548,4 +564,10 @@ services: event: - push - tag - - pull_request \ No newline at end of file + - pull_request + +- name: cockroach + pull: default + image: cockroachdb/cockroach:v2.0.6 + when: + event: [push, tag, pull_request] From 9d13e047d5e45d6cc8590bdb10b63aa6c02aa02b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 20 Oct 2018 10:00:29 +0800 Subject: [PATCH 09/19] add trace on error --- dialect_postgres.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialect_postgres.go b/dialect_postgres.go index 11254c44..ffc4c9e7 100644 --- a/dialect_postgres.go +++ b/dialect_postgres.go @@ -1047,7 +1047,7 @@ WHERE c.relkind = 'r'::char AND c.relname = $1%s AND f.attnum > 0 ORDER BY f.att } } if _, ok := core.SqlTypes[col.SQLType.Name]; !ok { - return nil, nil, fmt.Errorf("Unknown colType: %v", dataType) + return nil, nil, fmt.Errorf("Unknown colType: %s - %s", dataType, col.SQLType.Name) } col.Length = maxLen From 5276a7286d5d45d5003524c866b83517ed14ce18 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 23 Dec 2018 20:40:56 +0800 Subject: [PATCH 10/19] upgrade cockroach version --- circle.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index a51a8a8e..8cacf5eb 100644 --- a/circle.yml +++ b/circle.yml @@ -33,10 +33,10 @@ test: - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic - go test -v -race -db="postgres" -conn_str="dbname=xorm_test sslmode=disable" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic - - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.0.0.linux-amd64.tgz | tar xvz - - ./cockroach-v2.0.0.linux-amd64/cockroach start --insecure --background --host=localhost + - wget -qO- https://binaries.cockroachdb.com/cockroach-v2.1.3.linux-amd64.tgz | tar xvz + - ./cockroach-v2.1.3.linux-amd64/cockroach start --insecure --background --host=localhost - sleep 5 - - ./cockroach-v2.0.0.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" + - ./cockroach-v2.1.3.linux-amd64/cockroach sql --insecure --execute="create database xorm_test" - go test -v -race -db="postgres" -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" -coverprofile=coverage6-1.txt -covermode=atomic - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt> coverage.txt - cd /home/ubuntu/.go_workspace/src/github.com/go-xorm/tests && ./sqlite3.sh From c694b3a0416cde1569defbfac4d1e4580a9db2f1 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 23 Jan 2019 14:19:28 +0800 Subject: [PATCH 11/19] move circle ci to 2.0 --- .circleci/config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c8f64282..483ec492 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,6 +30,8 @@ jobs: - image: pingcap/tidb:v2.1.2 + - image: cockroachdb/cockroach:v2.1.4 + working_directory: /go/src/github.com/go-xorm/xorm steps: - checkout @@ -56,6 +58,8 @@ jobs: - run: go test -v -race -db="mssql" -conn_str="server=localhost;user id=sa;password=yourStrong(!)Password;database=xorm_test" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic - - run: gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -coverprofile=coverage8-1.txt -covermode=atomic + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage8-2.txt -covermode=atomic + - run: gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt coverage8-1.txt coverage8-2.txt > coverage.txt - run: bash <(curl -s https://codecov.io/bash) \ No newline at end of file From 5f935bace8122c3c8605d6495d99421e5687c73b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 23 Jan 2019 15:06:13 +0800 Subject: [PATCH 12/19] add cockroach start command --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 483ec492..1cb2de59 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,6 +31,7 @@ jobs: - image: pingcap/tidb:v2.1.2 - image: cockroachdb/cockroach:v2.1.4 + command: start --insecure working_directory: /go/src/github.com/go-xorm/xorm steps: From 5ab71ea7f506c4a02e61c530dfdfe2999377b78e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 23 Jan 2019 15:12:07 +0800 Subject: [PATCH 13/19] fix circle ci for cockroach --- test_cockroach.sh | 2 +- xorm_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test_cockroach.sh b/test_cockroach.sh index ea6a844b..27c61089 100755 --- a/test_cockroach.sh +++ b/test_cockroach.sh @@ -1 +1 @@ -go test -db=postgres -conn_str="postgresql://root@localhost:26257/xorm_test?sslmode=disable" \ No newline at end of file +go test -db=postgres -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" \ No newline at end of file diff --git a/xorm_test.go b/xorm_test.go index c0302df3..64fa4584 100644 --- a/xorm_test.go +++ b/xorm_test.go @@ -58,7 +58,7 @@ func createEngine(dbType, connStr string) error { if err != nil { return err } - rows, err := db.Query(fmt.Sprintf("SELECT 1 FROM pg_database WHERE datname = 'xorm_test'")) + rows, err := db.Query("SELECT 1 FROM pg_database WHERE datname = 'xorm_test'") if err != nil { return fmt.Errorf("db.Query: %v", err) } From a29ee7735cc445efa287bd8fb3974fa52a065e0f Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 23 Jan 2019 15:18:57 +0800 Subject: [PATCH 14/19] fix postgres ci --- xorm_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xorm_test.go b/xorm_test.go index 64fa4584..3bb9fb51 100644 --- a/xorm_test.go +++ b/xorm_test.go @@ -70,6 +70,12 @@ func createEngine(dbType, connStr string) error { } } if *schema != "" { + db.Close() + db, err = sql.Open(dbType, connStr) + if err != nil { + return err + } + defer db.Close() if _, err = db.Exec("CREATE SCHEMA IF NOT EXISTS " + *schema); err != nil { return fmt.Errorf("CREATE SCHEMA: %v", err) } From b061cb4f2fb13481694249f3baf363b7993d3776 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 1 Feb 2019 11:17:08 +0800 Subject: [PATCH 15/19] use sql_sequence when testing --- test_cockroach.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_cockroach.sh b/test_cockroach.sh index 27c61089..2d5fa788 100755 --- a/test_cockroach.sh +++ b/test_cockroach.sh @@ -1 +1 @@ -go test -db=postgres -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" \ No newline at end of file +go test -db=postgres -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" \ No newline at end of file From 7772aa4702ee0db26a8e0b07d081b605321d54c6 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 1 Feb 2019 11:28:15 +0800 Subject: [PATCH 16/19] add param on circleci --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1cb2de59..79c04f96 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -59,8 +59,8 @@ jobs: - run: go test -v -race -db="mssql" -conn_str="server=localhost;user id=sa;password=yourStrong(!)Password;database=xorm_test" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic - - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -coverprofile=coverage8-1.txt -covermode=atomic - - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage8-2.txt -covermode=atomic + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" -coverprofile=coverage8-1.txt -covermode=atomic + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" -cache=true -coverprofile=coverage8-2.txt -covermode=atomic - run: gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt coverage8-1.txt coverage8-2.txt > coverage.txt - run: bash <(curl -s https://codecov.io/bash) \ No newline at end of file From 0ae5909800098eb69226da551525145c9709b576 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 1 Feb 2019 11:45:02 +0800 Subject: [PATCH 17/19] fix tests --- xorm_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xorm_test.go b/xorm_test.go index 3bb9fb51..ef7c3739 100644 --- a/xorm_test.go +++ b/xorm_test.go @@ -54,7 +54,7 @@ func createEngine(dbType, connStr string) error { db.Close() *ignoreSelectUpdate = true case core.POSTGRES: - db, err := sql.Open(dbType, connStr) + db, err := sql.Open(dbType, strings.Replace(connStr, "xorm_test", "postgres", -1)) if err != nil { return err } From 6c4e9c4b633a2232510649a592ea807e5cff2b8f Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 21 Feb 2019 15:40:07 +0800 Subject: [PATCH 18/19] update --- test_cockroach.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_cockroach.sh b/test_cockroach.sh index 2d5fa788..27c61089 100755 --- a/test_cockroach.sh +++ b/test_cockroach.sh @@ -1 +1 @@ -go test -db=postgres -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" \ No newline at end of file +go test -db=postgres -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" \ No newline at end of file From 49667154be8e240f07e02547f9cef3f695628cb4 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 17 Apr 2019 22:03:31 +0800 Subject: [PATCH 19/19] remove experiment feature --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 79c04f96..416df2e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,7 +30,7 @@ jobs: - image: pingcap/tidb:v2.1.2 - - image: cockroachdb/cockroach:v2.1.4 + - image: cockroachdb/cockroach:v2.1.6 command: start --insecure working_directory: /go/src/github.com/go-xorm/xorm @@ -59,8 +59,8 @@ jobs: - run: go test -v -race -db="mssql" -conn_str="server=localhost;user id=sa;password=yourStrong(!)Password;database=xorm_test" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic - run: go test -v -race -db="mysql" -conn_str="root:@tcp(localhost:4000)/xorm_test" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic - - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" -coverprofile=coverage8-1.txt -covermode=atomic - - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable experimental_serial_normalization=sql_sequence" -cache=true -coverprofile=coverage8-2.txt -covermode=atomic + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -coverprofile=coverage8-1.txt -covermode=atomic + - run: go test -v -race -db="postgres" -conn_str="user=root port=26257 dbname=xorm_test sslmode=disable" -cache=true -coverprofile=coverage8-2.txt -covermode=atomic - run: gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt coverage8-1.txt coverage8-2.txt > coverage.txt - run: bash <(curl -s https://codecov.io/bash) \ No newline at end of file