summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
Diffstat (limited to 'vendor')
-rw-r--r--vendor/modules.txt2
-rw-r--r--vendor/xorm.io/xorm/.drone.yml513
-rw-r--r--vendor/xorm.io/xorm/engine.go47
-rw-r--r--vendor/xorm.io/xorm/session.go24
-rw-r--r--vendor/xorm.io/xorm/session_raw.go4
-rw-r--r--vendor/xorm.io/xorm/session_update.go17
6 files changed, 144 insertions, 463 deletions
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 34b0f6c6e8..901f06c98e 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -609,5 +609,5 @@ strk.kbt.io/projects/go/libravatar
xorm.io/builder
# xorm.io/core v0.7.2
xorm.io/core
-# xorm.io/xorm v0.8.0
+# xorm.io/xorm v0.8.1
xorm.io/xorm
diff --git a/vendor/xorm.io/xorm/.drone.yml b/vendor/xorm.io/xorm/.drone.yml
index c373975df6..b2198e380a 100644
--- a/vendor/xorm.io/xorm/.drone.yml
+++ b/vendor/xorm.io/xorm/.drone.yml
@@ -1,11 +1,6 @@
---
kind: pipeline
-name: matrix-1
-
-platform:
- os: linux
- arch: amd64
-
+name: go1.10-test
workspace:
base: /go
path: src/gitea.com/xorm/xorm
@@ -15,9 +10,7 @@ steps:
pull: default
image: golang:1.10
commands:
- - go get -t -d -v ./...
- - go get -u xorm.io/core
- - go get -u xorm.io/builder
+ - go get -t -d -v
- go build -v
when:
event:
@@ -27,8 +20,9 @@ steps:
- name: test-sqlite
pull: default
image: golang:1.10
+ depends_on:
+ - build
commands:
- - 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"
when:
@@ -39,6 +33,8 @@ steps:
- name: test-mysql
pull: default
image: golang:1.10
+ depends_on:
+ - build
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
@@ -50,6 +46,8 @@ steps:
- name: test-mysql-utf8mb4
pull: default
image: golang:1.10
+ depends_on:
+ - test-mysql
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
@@ -61,6 +59,8 @@ steps:
- name: test-mymysql
pull: default
image: golang:1.10
+ depends_on:
+ - test-mysql-utf8mb4
commands:
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
@@ -72,6 +72,8 @@ steps:
- name: test-postgres
pull: default
image: golang:1.10
+ depends_on:
+ - build
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
@@ -83,6 +85,8 @@ steps:
- name: test-postgres-schema
pull: default
image: golang:1.10
+ depends_on:
+ - build
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
@@ -94,6 +98,8 @@ steps:
- name: test-mssql
pull: default
image: golang:1.10
+ depends_on:
+ - build
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"
@@ -105,213 +111,30 @@ steps:
- name: test-tidb
pull: default
image: golang:1.10
+ depends_on:
+ - build
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- - 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
- - pull_request
-
-services:
-- name: mysql
- pull: default
- image: mysql:5.7
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: yes
- MYSQL_DATABASE: xorm_test
- when:
- event:
- - push
- - tag
- - pull_request
-
-- name: tidb
- pull: default
- image: pingcap/tidb:v3.0.3
- when:
- event:
- - push
- - tag
- - pull_request
-
-- name: pgsql
- pull: default
- image: postgres:9.5
- environment:
- POSTGRES_DB: xorm_test
- POSTGRES_USER: postgres
- when:
- event:
- - push
- - tag
- - pull_request
-
-- name: mssql
- pull: default
- image: microsoft/mssql-server-linux:latest
- environment:
- ACCEPT_EULA: Y
- SA_PASSWORD: yourStrong(!)Password
- MSSQL_PID: Developer
- when:
- event:
- - push
- - tag
- - pull_request
-
----
-kind: pipeline
-name: matrix-2
-
-platform:
- os: linux
- arch: amd64
-
-workspace:
- base: /go
- path: src/gitea.com/xorm/xorm
-
-steps:
-- name: build
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "off"
- commands:
- - go get -t -d -v ./...
- - go get -u xorm.io/core
- - go get -u xorm.io/builder
- - go build -v
- when:
- event:
- - push
- - pull_request
-
-- name: build-gomod
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - go build -v
- when:
- event:
- - push
- - pull_request
-
-- name: test-sqlite
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "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"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mysql
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mysql-utf8mb4
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mymysql
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-postgres
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
-- name: test-postgres-schema
+- name: test-end
pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mssql
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- 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: test-tidb
- pull: default
- image: golang:1.11
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
+ image: golang:1.10
+ depends_on:
+ - test-sqlite
+ - test-mysql
+ - test-mysql-utf8mb4
+ - test-mymysql
+ - test-postgres
+ - test-postgres-schema
+ - test-mssql
+ - test-tidb
commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- - go get 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 coverage7-1.txt coverage7-2.txt > coverage.txt
+ - echo "go1.10 build end"
when:
event:
- push
@@ -330,15 +153,6 @@ services:
- tag
- pull_request
-- name: tidb
- pull: default
- image: pingcap/tidb:v3.0.3
- when:
- event:
- - push
- - tag
- - pull_request
-
- name: pgsql
pull: default
image: postgres:9.5
@@ -364,175 +178,6 @@ services:
- tag
- pull_request
----
-kind: pipeline
-name: matrix-3
-
-platform:
- os: linux
- arch: amd64
-
-workspace:
- base: /go
- path: src/gitea.com/xorm/xorm
-
-steps:
-
-- name: build
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "off"
- commands:
- - go get -t -d -v ./...
- - go get -u xorm.io/core
- - go get -u xorm.io/builder
- - go build -v
- when:
- event:
- - push
- - pull_request
-
-- name: build-gomod
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - go build -v
- when:
- event:
- - push
- - pull_request
-
-- name: test-sqlite
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "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"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mysql
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mysql-utf8mb4
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mymysql
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-postgres
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-postgres-schema
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
- when:
- event:
- - push
- - pull_request
-
-- name: test-mssql
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- 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: test-tidb
- pull: default
- image: golang:1.12
- environment:
- GO111MODULE: "on"
- GOPROXY: "https://goproxy.cn"
- commands:
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- - go get 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 coverage7-1.txt coverage7-2.txt > coverage.txt
- when:
- event:
- - push
- - pull_request
-
-services:
-- name: mysql
- pull: default
- image: mysql:5.7
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: yes
- MYSQL_DATABASE: xorm_test
- when:
- event:
- - push
- - tag
- - pull_request
-
- name: tidb
pull: default
image: pingcap/tidb:v3.0.3
@@ -542,68 +187,19 @@ services:
- tag
- pull_request
-- name: pgsql
- pull: default
- image: postgres:9.5
- environment:
- POSTGRES_DB: xorm_test
- POSTGRES_USER: postgres
- when:
- event:
- - push
- - tag
- - pull_request
-
-- name: mssql
- pull: default
- image: microsoft/mssql-server-linux:latest
- environment:
- ACCEPT_EULA: Y
- SA_PASSWORD: yourStrong(!)Password
- MSSQL_PID: Developer
- when:
- event:
- - push
- - tag
- - pull_request
-
---
kind: pipeline
-name: go1.13
-
-platform:
- os: linux
- arch: amd64
-
-workspace:
- base: /go
- path: src/gitea.com/xorm/xorm
-
+name: go1.13-test
steps:
-
- name: build
pull: default
image: golang:1.13
environment:
- GO111MODULE: "off"
- commands:
- - go get -t -d -v ./...
- - go get -u xorm.io/core
- - go get -u xorm.io/builder
- - go build -v
- when:
- event:
- - push
- - pull_request
-
-- name: build-gomod
- pull: default
- image: golang:1.13
- environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- go build -v
+ - go vet
when:
event:
- push
@@ -640,6 +236,8 @@ steps:
- name: test-mysql-utf8mb4
pull: default
image: golang:1.13
+ depends_on:
+ - test-mysql
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
@@ -654,6 +252,8 @@ steps:
- name: test-mymysql
pull: default
image: golang:1.13
+ depends_on:
+ - test-mysql-utf8mb4
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
@@ -716,6 +316,28 @@ steps:
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
+ when:
+ event:
+ - push
+ - pull_request
+
+- name: merge_coverage
+ pull: default
+ image: golang:1.13
+ environment:
+ GO111MODULE: "on"
+ GOPROXY: "https://goproxy.cn"
+ depends_on:
+ - build
+ - test-sqlite
+ - test-mysql
+ - test-mysql-utf8mb4
+ - test-mymysql
+ - test-postgres
+ - test-postgres-schema
+ - test-mssql
+ - test-tidb
+ commands:
- go get 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 coverage7-1.txt coverage7-2.txt > coverage.txt
when:
@@ -724,6 +346,7 @@ steps:
- pull_request
services:
+
- name: mysql
pull: default
image: mysql:5.7
@@ -736,15 +359,6 @@ services:
- tag
- pull_request
-- name: tidb
- pull: default
- image: pingcap/tidb:v3.0.3
- when:
- event:
- - push
- - tag
- - pull_request
-
- name: pgsql
pull: default
image: postgres:9.5
@@ -768,4 +382,13 @@ services:
event:
- push
- tag
+ - pull_request
+
+- name: tidb
+ pull: default
+ image: pingcap/tidb:v3.0.3
+ when:
+ event:
+ - push
+ - tag
- pull_request \ No newline at end of file
diff --git a/vendor/xorm.io/xorm/engine.go b/vendor/xorm.io/xorm/engine.go
index 4ed0f77a92..a7e52ea484 100644
--- a/vendor/xorm.io/xorm/engine.go
+++ b/vendor/xorm.io/xorm/engine.go
@@ -207,25 +207,46 @@ func (engine *Engine) QuoteTo(buf *strings.Builder, value string) {
return
}
- quotePair := engine.dialect.Quote("")
+ quoteTo(buf, engine.dialect.Quote(""), value)
+}
- if value[0] == '`' || len(quotePair) < 2 || value[0] == quotePair[0] { // no quote
+func quoteTo(buf *strings.Builder, quotePair string, value string) {
+ if len(quotePair) < 2 { // no quote
_, _ = buf.WriteString(value)
return
- } else {
- prefix, suffix := quotePair[0], quotePair[1]
-
- _ = buf.WriteByte(prefix)
- for i := 0; i < len(value); i++ {
- if value[i] == '.' {
- _ = buf.WriteByte(suffix)
- _ = buf.WriteByte('.')
- _ = buf.WriteByte(prefix)
+ }
+
+ prefix, suffix := quotePair[0], quotePair[1]
+
+ i := 0
+ for i < len(value) {
+ // start of a token; might be already quoted
+ if value[i] == '.' {
+ _ = buf.WriteByte('.')
+ i++
+ } else if value[i] == prefix || value[i] == '`' {
+ // Has quotes; skip/normalize `name` to prefix+name+sufix
+ var ch byte
+ if value[i] == prefix {
+ ch = suffix
} else {
+ ch = '`'
+ }
+ i++
+ _ = buf.WriteByte(prefix)
+ for ; i < len(value) && value[i] != ch; i++ {
+ _ = buf.WriteByte(value[i])
+ }
+ _ = buf.WriteByte(suffix)
+ i++
+ } else {
+ // Requires quotes
+ _ = buf.WriteByte(prefix)
+ for ; i < len(value) && value[i] != '.'; i++ {
_ = buf.WriteByte(value[i])
}
+ _ = buf.WriteByte(suffix)
}
- _ = buf.WriteByte(suffix)
}
}
@@ -330,7 +351,7 @@ func (engine *Engine) Ping() error {
return session.Ping()
}
-// logging sql
+// logSQL save sql
func (engine *Engine) logSQL(sqlStr string, sqlArgs ...interface{}) {
if engine.showSQL && !engine.showExecTime {
if len(sqlArgs) > 0 {
diff --git a/vendor/xorm.io/xorm/session.go b/vendor/xorm.io/xorm/session.go
index b33955fdce..8307193550 100644
--- a/vendor/xorm.io/xorm/session.go
+++ b/vendor/xorm.io/xorm/session.go
@@ -57,6 +57,7 @@ type Session struct {
//beforeSQLExec func(string, ...interface{})
lastSQL string
lastSQLArgs []interface{}
+ showSQL bool
ctx context.Context
sessionType sessionType
@@ -72,6 +73,7 @@ func (session *Session) Clone() *Session {
func (session *Session) Init() {
session.statement.Init()
session.statement.Engine = session.engine
+ session.showSQL = session.engine.showSQL
session.isAutoCommit = true
session.isCommitedOrRollbacked = false
session.isAutoClose = false
@@ -226,6 +228,16 @@ func (session *Session) Cascade(trueOrFalse ...bool) *Session {
return session
}
+// MustLogSQL means record SQL or not and don't follow engine's setting
+func (session *Session) MustLogSQL(log ...bool) *Session {
+ if len(log) > 0 {
+ session.showSQL = log[0]
+ } else {
+ session.showSQL = true
+ }
+ return session
+}
+
// NoCache ask this session do not retrieve data from cache system and
// get data from database directly.
func (session *Session) NoCache() *Session {
@@ -842,7 +854,17 @@ func (session *Session) slice2Bean(scanResults []interface{}, fields []string, b
func (session *Session) saveLastSQL(sql string, args ...interface{}) {
session.lastSQL = sql
session.lastSQLArgs = args
- session.engine.logSQL(sql, args...)
+ session.logSQL(sql, args...)
+}
+
+func (session *Session) logSQL(sqlStr string, sqlArgs ...interface{}) {
+ if session.showSQL && !session.engine.showExecTime {
+ if len(sqlArgs) > 0 {
+ session.engine.logger.Infof("[SQL] %v %#v", sqlStr, sqlArgs)
+ } else {
+ session.engine.logger.Infof("[SQL] %v", sqlStr)
+ }
+ }
}
// LastSQL returns last query information
diff --git a/vendor/xorm.io/xorm/session_raw.go b/vendor/xorm.io/xorm/session_raw.go
index 67648ef130..a929829670 100644
--- a/vendor/xorm.io/xorm/session_raw.go
+++ b/vendor/xorm.io/xorm/session_raw.go
@@ -27,7 +27,9 @@ func (session *Session) queryRows(sqlStr string, args ...interface{}) (*core.Row
session.queryPreprocess(&sqlStr, args...)
- if session.engine.showSQL {
+ if session.showSQL {
+ session.lastSQL = sqlStr
+ session.lastSQLArgs = args
if session.engine.showExecTime {
b4ExecTime := time.Now()
defer func() {
diff --git a/vendor/xorm.io/xorm/session_update.go b/vendor/xorm.io/xorm/session_update.go
index c5c65a452a..231163e063 100644
--- a/vendor/xorm.io/xorm/session_update.go
+++ b/vendor/xorm.io/xorm/session_update.go
@@ -377,10 +377,23 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
return 0, errors.New("No content found to be updated")
}
- sqlStr = fmt.Sprintf("UPDATE %v%v SET %v %v",
+ var tableAlias = session.engine.Quote(tableName)
+ var fromSQL string
+ if session.statement.TableAlias != "" {
+ switch session.engine.dialect.DBType() {
+ case core.MSSQL:
+ fromSQL = fmt.Sprintf("FROM %s %s ", tableAlias, session.statement.TableAlias)
+ tableAlias = session.statement.TableAlias
+ default:
+ tableAlias = fmt.Sprintf("%s AS %s", tableAlias, session.statement.TableAlias)
+ }
+ }
+
+ sqlStr = fmt.Sprintf("UPDATE %v%v SET %v %v%v",
top,
- session.engine.Quote(tableName),
+ tableAlias,
strings.Join(colNames, ", "),
+ fromSQL,
condSQL)
res, err := session.exec(sqlStr, append(args, condArgs...)...)