Hide not allowed Reactions (#9387)
* Hide not allowed Reactions * filter in query :D * use ` Co-Authored-By: Alexey 〒erentyev <axifnx@gmail.com> * update xorm v0.8.0 -> v0.8.1
This commit is contained in:
		
							parent
							
								
									3b4682e172
								
							
						
					
					
						commit
						6d811bcb14
					
				
					 10 changed files with 156 additions and 478 deletions
				
			
		
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							|  | @ -111,5 +111,5 @@ require ( | |||
| 	strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251 | ||||
| 	xorm.io/builder v0.3.6 | ||||
| 	xorm.io/core v0.7.2 | ||||
| 	xorm.io/xorm v0.8.0 | ||||
| 	xorm.io/xorm v0.8.1 | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
								
							|  | @ -791,3 +791,5 @@ xorm.io/core v0.7.2 h1:mEO22A2Z7a3fPaZMk6gKL/jMD80iiyNwRrX5HOv3XLw= | |||
| xorm.io/core v0.7.2/go.mod h1:jJfd0UAEzZ4t87nbQYtVjmqpIODugN6PD2D9E+dJvdM= | ||||
| xorm.io/xorm v0.8.0 h1:iALxgJrX8O00f8Jk22GbZwPmxJNgssV5Mv4uc2HL9PM= | ||||
| xorm.io/xorm v0.8.0/go.mod h1:ZkJLEYLoVyg7amJK/5r779bHyzs2AU8f8VMiP6BM7uY= | ||||
| xorm.io/xorm v0.8.1 h1:4f2KXuQxVdaX3RdI3Fw81NzMiSpZeyCZt8m3sEVeIkQ= | ||||
| xorm.io/xorm v0.8.1/go.mod h1:ZkJLEYLoVyg7amJK/5r779bHyzs2AU8f8VMiP6BM7uY= | ||||
|  |  | |||
|  | @ -26,7 +26,6 @@ func TestAPIIssuesReactions(t *testing.T) { | |||
| 	session := loginUser(t, owner.Name) | ||||
| 	token := getTokenForLoggedInUser(t, session) | ||||
| 
 | ||||
| 	user1 := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User) | ||||
| 	user2 := models.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) | ||||
| 	urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/reactions?token=%s", | ||||
| 		owner.Name, issue.Repo.Name, issue.Index, token) | ||||
|  | @ -61,17 +60,12 @@ func TestAPIIssuesReactions(t *testing.T) { | |||
| 	DecodeJSON(t, resp, &apiReactions) | ||||
| 	expectResponse := make(map[int]api.ReactionResponse) | ||||
| 	expectResponse[0] = api.ReactionResponse{ | ||||
| 		User:     user1.APIFormat(), | ||||
| 		Reaction: "zzz", | ||||
| 		Created:  time.Unix(1573248002, 0), | ||||
| 	} | ||||
| 	expectResponse[1] = api.ReactionResponse{ | ||||
| 		User:     user2.APIFormat(), | ||||
| 		Reaction: "eyes", | ||||
| 		Created:  time.Unix(1573248003, 0), | ||||
| 	} | ||||
| 	expectResponse[2] = apiNewReaction | ||||
| 	assert.Len(t, apiReactions, 3) | ||||
| 	expectResponse[1] = apiNewReaction | ||||
| 	assert.Len(t, apiReactions, 2) | ||||
| 	for i, r := range apiReactions { | ||||
| 		assert.Equal(t, expectResponse[i].Reaction, r.Reaction) | ||||
| 		assert.Equal(t, expectResponse[i].Created.Unix(), r.Created.Unix()) | ||||
|  |  | |||
|  | @ -69,6 +69,7 @@ func findReactions(e Engine, opts FindReactionsOptions) ([]*Reaction, error) { | |||
| 	reactions := make([]*Reaction, 0, 10) | ||||
| 	sess := e.Where(opts.toConds()) | ||||
| 	return reactions, sess. | ||||
| 		In("reaction.`type`", setting.UI.Reactions). | ||||
| 		Asc("reaction.issue_id", "reaction.comment_id", "reaction.created_unix", "reaction.id"). | ||||
| 		Find(&reactions) | ||||
| } | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							|  | @ -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 | ||||
|  |  | |||
							
								
								
									
										527
									
								
								vendor/xorm.io/xorm/.drone.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										527
									
								
								vendor/xorm.io/xorm/.drone.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -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,10 +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 | ||||
| 
 | ||||
| - name: test-end | ||||
|   pull: default | ||||
|   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: | ||||
|   - echo "go1.10 build end" | ||||
|   when: | ||||
|     event: | ||||
|     - push | ||||
|  | @ -127,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 | ||||
|  | @ -161,175 +178,6 @@ services: | |||
|     - 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 | ||||
|   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" | ||||
|   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 | ||||
|  | @ -339,264 +187,11 @@ 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: matrix-3 | ||||
| 
 | ||||
| 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.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 | ||||
|   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: go1.13 | ||||
| 
 | ||||
| platform: | ||||
|   os: linux | ||||
|   arch: amd64 | ||||
| 
 | ||||
| workspace: | ||||
|   base: /go | ||||
|   path: src/gitea.com/xorm/xorm | ||||
| 
 | ||||
| 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: | ||||
|  | @ -604,6 +199,7 @@ steps: | |||
|     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 | ||||
|  | @ -769,3 +383,12 @@ services: | |||
|     - push | ||||
|     - tag | ||||
|     - pull_request | ||||
| 
 | ||||
| - name: tidb | ||||
|   pull: default | ||||
|   image: pingcap/tidb:v3.0.3 | ||||
|   when: | ||||
|     event: | ||||
|     - push | ||||
|     - tag | ||||
|     - pull_request | ||||
							
								
								
									
										45
									
								
								vendor/xorm.io/xorm/engine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/xorm.io/xorm/engine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -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 { | ||||
|  |  | |||
							
								
								
									
										24
									
								
								vendor/xorm.io/xorm/session.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/xorm.io/xorm/session.go
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -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
 | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/xorm.io/xorm/session_raw.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/xorm.io/xorm/session_raw.go
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -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() { | ||||
|  |  | |||
							
								
								
									
										17
									
								
								vendor/xorm.io/xorm/session_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/xorm.io/xorm/session_update.go
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -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...)...) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue