From a076cb2a4c2f1a71f9d6bc87696f48a035b102ac Mon Sep 17 00:00:00 2001 From: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com> Date: Sun, 7 Jun 2020 06:04:00 +0200 Subject: [PATCH] Increase maximum SQLite variables count to 32766 (#11696) (#11783) * Increase maximum SQLite variables count to 32766 (#11696) per https://www.sqlite.org/limits.html Co-authored-by: techknowlogick (cherry picked from commit a5aa5c58c1bf5a0c91226e0cbbd7b95bb8f74692) * Fix missing CGO_EXTRA_FLAGS build arg for docker Co-authored-by: techknowlogick --- Dockerfile | 1 + Makefile | 13 ++++++++----- docker/Makefile | 2 +- models/issue.go | 10 ---------- 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8093853605..2f2d67f2a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ ENV GOPROXY ${GOPROXY:-direct} ARG GITEA_VERSION ARG TAGS="sqlite sqlite_unlock_notify" ENV TAGS "bindata $TAGS" +ARG CGO_EXTRA_CFLAGS #Build deps RUN apk --no-cache add build-base git nodejs npm diff --git a/Makefile b/Makefile index 1afdcf7d3f..012266418e 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,9 @@ MIN_NODE_VERSION := 010013000 ifeq ($(HAS_GO), GO) GOPATH ?= $(shell $(GO) env GOPATH) export PATH := $(GOPATH)/bin:$(PATH) + + CGO_EXTRA_CFLAGS := -DSQLITE_MAX_VARIABLE_NUMBER=32766 + CGO_CFLAGS ?= $(shell $(GO) env CGO_CFLAGS) $(CGO_EXTRA_CFLAGS) endif @@ -499,7 +502,7 @@ check: test .PHONY: install $(TAGS_PREREQ) install: $(wildcard *.go) - $(GO) install -v -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' + CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) install -v -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' .PHONY: build build: frontend backend @@ -515,7 +518,7 @@ generate: $(TAGS_PREREQ) CC= GOOS= GOARCH= $(GO) generate -mod=vendor -tags '$(TAGS)' $(GO_PACKAGES) $(EXECUTABLE): $(GO_SOURCES) $(TAGS_PREREQ) - $(GO) build -mod=vendor $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ + CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build -mod=vendor $(GOFLAGS) $(EXTRA_GOFLAGS) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@ .PHONY: release release: frontend generate release-windows release-linux release-darwin release-copy release-compress release-sources release-check @@ -528,7 +531,7 @@ release-windows: | $(DIST_DIRS) @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ $(GO) get -u src.techknowlogick.com/xgo; \ fi - GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION) . + CGO_CFLAGS="$(CGO_CFLAGS)" GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION) . ifeq ($(CI),drone) cp /build/* $(DIST)/binaries endif @@ -538,7 +541,7 @@ release-linux: | $(DIST_DIRS) @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ $(GO) get -u src.techknowlogick.com/xgo; \ fi - GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'linux/amd64,linux/386,linux/arm-5,linux/arm-6,linux/arm64,linux/mips64le,linux/mips,linux/mipsle' -out gitea-$(VERSION) . + CGO_CFLAGS="$(CGO_CFLAGS)" GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'linux/amd64,linux/386,linux/arm-5,linux/arm-6,linux/arm64,linux/mips64le,linux/mips,linux/mipsle' -out gitea-$(VERSION) . ifeq ($(CI),drone) cp /build/* $(DIST)/binaries endif @@ -548,7 +551,7 @@ release-darwin: | $(DIST_DIRS) @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ $(GO) get -u src.techknowlogick.com/xgo; \ fi - GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin/*' -out gitea-$(VERSION) . + CGO_CFLAGS="$(CGO_CFLAGS)" GO111MODULE=off xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin/*' -out gitea-$(VERSION) . ifeq ($(CI),drone) cp /build/* $(DIST)/binaries endif diff --git a/docker/Makefile b/docker/Makefile index 7824847e54..bd4cb176bd 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -11,4 +11,4 @@ docker: .PHONY: docker-build docker-build: - docker run -ti --rm -v $(CURDIR):/srv/app/src/code.gitea.io/gitea -w /srv/app/src/code.gitea.io/gitea -e TAGS="bindata $(TAGS)" LDFLAGS="$(LDFLAGS)" webhippie/golang:edge make clean build + docker run -ti --rm -v $(CURDIR):/srv/app/src/code.gitea.io/gitea -w /srv/app/src/code.gitea.io/gitea -e TAGS="bindata $(TAGS)" LDFLAGS="$(LDFLAGS)" CGO_EXTRA_CFLAGS="$(CGO_EXTRA_CFLAGS)" webhippie/golang:edge make clean build diff --git a/models/issue.go b/models/issue.go index 82f6c926ee..1a4de26b3a 100644 --- a/models/issue.go +++ b/models/issue.go @@ -76,7 +76,6 @@ var ( const issueTasksRegexpStr = `(^\s*[-*]\s\[[\sxX]\]\s.)|(\n\s*[-*]\s\[[\sxX]\]\s.)` const issueTasksDoneRegexpStr = `(^\s*[-*]\s\[[xX]\]\s.)|(\n\s*[-*]\s\[[xX]\]\s.)` const issueMaxDupIndexAttempts = 3 -const maxIssueIDs = 950 func init() { issueTasksPat = regexp.MustCompile(issueTasksRegexpStr) @@ -1114,9 +1113,6 @@ func (opts *IssuesOptions) setupSession(sess *xorm.Session) { } if len(opts.IssueIDs) > 0 { - if len(opts.IssueIDs) > maxIssueIDs { - opts.IssueIDs = opts.IssueIDs[:maxIssueIDs] - } sess.In("issue.id", opts.IssueIDs) } @@ -1360,9 +1356,6 @@ func getIssueStatsChunk(opts *IssueStatsOptions, issueIDs []int64) (*IssueStats, Where("issue.repo_id = ?", opts.RepoID) if len(opts.IssueIDs) > 0 { - if len(opts.IssueIDs) > maxIssueIDs { - opts.IssueIDs = opts.IssueIDs[:maxIssueIDs] - } sess.In("issue.id", opts.IssueIDs) } @@ -1446,9 +1439,6 @@ func GetUserIssueStats(opts UserIssueStatsOptions) (*IssueStats, error) { cond = cond.And(builder.In("issue.repo_id", opts.RepoIDs)) } if len(opts.IssueIDs) > 0 { - if len(opts.IssueIDs) > maxIssueIDs { - opts.IssueIDs = opts.IssueIDs[:maxIssueIDs] - } cond = cond.And(builder.In("issue.id", opts.IssueIDs)) }