diff options
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/modules.txt | 2 | ||||
-rw-r--r-- | vendor/xorm.io/xorm/.drone.yml | 513 | ||||
-rw-r--r-- | vendor/xorm.io/xorm/engine.go | 47 | ||||
-rw-r--r-- | vendor/xorm.io/xorm/session.go | 24 | ||||
-rw-r--r-- | vendor/xorm.io/xorm/session_raw.go | 4 | ||||
-rw-r--r-- | vendor/xorm.io/xorm/session_update.go | 17 |
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...)...) |